Strings

Strings são sequências imutáveis de caracteres, ou seja, uma vez criadas, não podem ser alteradas diretamente. Qualquer modificação gera uma nova string.

Os caracteres de uma string são indexados, sendo o índice do primeiro elemento o zero.

Criação de uma string

Para criar uma string basta atribuirmos um valor textual literal a uma variável. Esse literal pode estar entre pelicas, aspas ou pelicas triplas:

str1 = 'Linha de texto 1'

str2 = "linha de texto 2"

str3 = '''linha de texto 3'''

Ao atribuirmos uma string com pelicas triplas, podemos espalhar o texto por várias linhas:

str3 = '''linha
de


texto 3'''

Aceder aos caracteres de uma string

Podemos aceder aos caracteres de uma string através dos seus índices. Cada caractere de uma string em um índice que começa em zero.

str = "Python"

print(str[0])  #Saída: P
print(str[-1]) #Saída: n

Fatiamento (slicing)

Podemos obter partes de uma string através de fatiamento:

str = "Python"

print(str[1:4])  # Saída: yth
print(str[:2])   # Saída: Py
print(str[2:])   # Saída: thon

Desempacotamento

O desempacotamento de strings em Python consiste em atribuir cada caractere da string a uma variável diferente, usando a mesma sintaxe do desempacotamento de listas ou tuples. Por exemplo:

s = "abc"
a, b, c = s
print(a)  # Saída: a
print(b)  # Saída: b
print(c)  # Saída: c

Cada variável recebe um caractere da string, na ordem. O número de variáveis deve ser igual ao número de caracteres da string, senão ocorre erro.

No entanto, é possível usar o operador * para capturar vários caracteres de uma lista:

s = "python"
a, *meio, b = s
print(a)     # Saída: p
print(meio)  # Saída: ['y', 't', 'h', 'o']
print(b)     # Saída: n

Podemos usar o underscore (_) para ignorar variáveis:

str = "ola"
a, _, b = str

print(a + b)    #Saída: "oa"

Tamanho de uma string

A função len() permite-nos obter o tamanho de uma string:

texto = "Python"
print(len(texto))  # Saída: 6

Percorrer uma string

Podemos percorrer uma string usando uma repetição for:

str = "Python"

for ch in str:
    print(ch)

Saída:

P

y

t

h

o

n

Operações com strings

As operações com strings são as operações básicas que se usam com sequências, e são as seguintes:

OperaçãoOutputDescrição
“Boa tarde. “+ “Olá a todos”“Boa tarde. Olá a todos”Concatenação
‘viva’ * 4“vivavivavivaviva”Repetição
“y” in “PythonTruePertença
for x in “Python” : print(x)PythonIteração

Funções com strings

max()

Retorna o elemento da string com o maior valor.

str = "Boa viagem"

print(max(str))    #Saída: "v"

min()

Retorna o elemento da string com o menor valor.

str = "Boa viagem"

print(min(str))    #Saída: " "

Métodos

MétodoDescrição
capitalize()Converte o 1º caractere em maiúscula.
count()Retorna o nr. de vezes que uma substring ocorre na string.
endswith()Retorna true se a string termina por um determinado valor.
find()Retorna a posição de uma substring na string.
isalnum()Retorna true se todos os caracteres da string forem alfanuméricos.
isalpha()Retorna true se todos os caracteres da string forem alfabéticos.
isascii()Retorna true se todos os caracteres da string forem caracteres ascii.
isdigit()Retorna true se todos os caracteres da string forem digitos.
islower()Retorna true se todos os caracteres da string forem minúsculas.
isspace()Retorna true se todos os caracteres da string forem espaços.
isupper()Retorna true se todos os caracteres da string forem maiúsculas.
join()Converte todos os elementos de um iterável numa string.
lower()Converte todos os caracteres da string em minúsculas.
lstrip()Remove caracteres no inicio da string.
replace()Substitui uma substring da string por outra substring.
rfind()Retorna a ultima posição de uma substring na string.
rstrip()Remove caracteres no final da string.
split()Divide a string em partes por um separador e retorna uma lista.
startswith()Retorna true se a string começa por um determinado valor.
strip()Remove caracteres no inicio e no final da string.
upper()Converte todos os caracteres da string em maiúsculas.

Converte o 1º caractere em maiúscula e o restante em minúsculas:

str = "bem vindos ao Python"

x = str.capitalize()

print (x)

Output: "Bem vindos ao python"

Retorna o nr. de vezes que uma substring ocorre na string.

Sintaxe:

string.count(substr, inicio, fim)

substr: Obrigatório. Substring a ser procurada.

inicio: Opcional. Posição de inicio da busca (defeito: 0)

fim: Opcional. Posição de fim da busca (defeito fim da string)

Exemplo 1:

str = "Gosto de maçãs. A maçã é a minha fruta preferida"

s = str.count("maçã")

print(s)     #Output: 2

Exemplo 2:

str = "Gosto de maçãs. A maçã é a minha fruta preferida"

s = str.count("maçã", 12)

print(s)    #Output: 1

Retorna true se a string termina por um determinado valor.

Sintaxe:

string.endswith(substr, inicio, fim)

valor: Obrigatório. valor a verificar se é término da string.

inicio: Opcional. Posição de inicio da busca (defeito: 0)

fim: Opcional. Posição de fim da busca (defeito fim da string)

Exemplo 1:

str = "Amanhã vou à praia."

b = str.endswith(".")

print(b)    #Output:  True

Exemplo 2:

str = "Amanhã vou à praia."

b = str.endswith("praia.")

print(b)    #Output:  True

Retorna a posição da primeira ocorrência de uma substring na string. Retorna -1 se a substring não for encontrada.

Sintaxe:

string.find(substr, inicio, fim)

substr: Obrigatório. Substring a procurar..

inicio: Opcional. Posição de inicio da busca (defeito: 0)

fim: Opcional. Posição de fim da busca (defeito fim da string)

Exemplo 1:

str = "Gosto de maçãs. A maçã é a minha fruta preferida"

idx = str.find("maçã")

print(idx)    #Output: 9

Exemplo 2:

str = "Gosto de maçãs. A maçã é a minha fruta preferida"

idx = str.find("pessego")

print(idx)    #Output:  -1

Retorna true se todos os caracteres da string forem alfanuméricos (a-z, A-z, 0-9).

Exemplo 1:

str = "total9"

b = str.isalnum()

print(b)   #Output: True

Exemplo 2:

str = "total"

b = str.isalnum()

print(b)   #Output: True

Exemplo 3:

str = "total_9"

b = str.isalnum()

print(b)    #Output:  False

Retorna True se todos os caracteres da string forem letras.

Exemplo:

str = "Lisboa"

res = str.isalpha()

print(res)   #Output: True

Retorna True se todos os caracteres da string forem caracteres ASCII.

Exemplo:

str = "Capital de Portugal: Lisboa. Area: 88000 kms"

res = str.isascii()

print(res)     #Output: True

Retorna True se todos os caracteres da string forem digitos.

Exemplo 1:

str = "91473"

res = str.isdigit()

print(res)     #Output: True

Exemplo 2:

str = "91473_"

res = str.isdigit()

print(res)     #Output: False

Retorna True se todos os caracteres da string forem minusculas.

Exemplo 1:

str = "Olá"

print(str.islower())  #Saída: False

Exemplo 2:

str = "olá"

print(str.islower())  #Saída: True

Retorna True se todos os caracteres da string forem espaços.

Exemplo 1:

str = "                "

print(str.isspace())     #Saída: True

Exemplo 2:

str = "         a       "

print(str.isspace())     #Saída: False

Retorna True se todos os caracteres da string forem maiúsculass.

Exemplo 1:

str = "Olá"

print(str.isupper())  #Saída: False

Exemplo 2:

str = "OLÁ"

print(str.isupper())  #Saída: True

Junta todos os items de um iterável numa unica string.

Devemos especificar uma string como separador entre os items.

No caso de o ietrãvel ser um dicionário os items considerados são as chaves, não os valores.

Sintaxe:

string = sep.join(iteravel)

Exemplo 1:

t = ("A", "B", "C")  #Tuple

sep = "-"

s = sep.join(t)

print(s)   #Saída: "A-B-C"

Exemplo 2:

lista = ["Ana", "Rita", "Carla"]  #Lista

sep = "-"

s = sep.join(lista)

print(s)  #Saída: "Ana-Rita-Carla"

Exemplo 3:

dic = {"nome": "Carlos", "morada": "Lisboa"}  #Dicionario

sep = "-"

s = sep.join(dic)

print(s)    #Saída: "nome-morada"

Converte todos os caracteres de uma string para minúsculas.

Exemplo:

str = "Ola BOA tarde"
print(str.lower())     #Saída:  "ola boa tarde"

Remove os espaços no inicio da string:

Exemplo:

str = "     Carlos           "
str = str.lstrip()
print("Ola", str, "boa tarde")    #Saída: "Ola Carlos            boa tarde"

Substitui uma substring numa string por outra substring.

Sintaxe:

string.replace(oldsubstring, newsubstring, [count])

oldsubstring: substring a substituir

newsubstring: substring substituta

count: numero de ocorrências de oldsubtring a substituir. Por defeito são todas.

Exemplo 1:

str = "Amanhã vou à praia."

str = str.replace("praia", "discoteca")

print(str) #Saída: "Amanhã vou à discoteca."

rfind()

Retorna a posição da ultima ocorrência de uma substring na string. Retorna -1 se a substring não for encontrada.

Sintaxe:

string.rfind(substr, inicio, fim)

substr: Obrigatório. Substring a procurar..

inicio: Opcional. Posição de inicio da busca (defeito: 0)

fim: Opcional. Posição de fim da busca (defeito fim da string)

Exemplo 1:

str = "Gosto de maçãs. A maçã é a minha fruta preferida"

idx = str.rfind("maçã")

print(idx)    #Saída: 18

Exemplo 2:

str = "Gosto de maçãs. A maçã é a minha fruta preferida"

idx = str.find("pessego")

print(idx)    #Saída:  -1

Exemplo 3:

str = "Gosto de maçãs. A maçã é a minha fruta preferida"

idx = str.rfind("maçã", 5, 15) #Procura entre as posições 5 e 15

print(idx)    #Saída: 9

Remove os espaços no final da string:

Exemplo:

str = "     Carlos           "
str = str.rstrip()
print("Ola", str, "boa tarde") #Saída: "Ola Carlos boa tarde"

Divide uma string em substrings e coloca-as numa lista.

Sintaxe

string.split(separador, maxsplits)

separador: Opcional. Especifica o separador a ser usado ao dividir a string. Por defeito, o espaço é o separador.

maxsplits: Opcional. Especifica quantas divisões serão feitas. O valor de defeito é -1, que corresponde a “todas as ocorrências”.

Exemplo 1:

str = "Viva o Python"

lista = str.split()

print(lista)   #Saída: ['Viva', 'o', 'Python']

Exemplo 2:

str = "Viva|o|Python"

lista = str.split("|")

print(lista)    #Saída: ['Viva', 'o', 'Python']

Exemplo 3:

str = "Viva|o|Python"

lista = str.split("|", 1)

print(lista)    #Saída: ['Viva', 'o|Python']

Retorna true se a string começa por um determinado valor.

Sintaxe:

string.startswith(substr, inicio, fim)

valor: Obrigatório. valor a verificar se é término da string.

inicio: Opcional. Posição de inicio da busca (defeito: 0)

fim: Opcional. Posição de fim da busca (defeito fim da string)

Exemplo 1:

str = "Amanhã vou à praia."

b = str.startswith("Ama")

print(b)    #Saída:  True

Exemplo 2:

str = "Amanhã vou à praia."

b = str.startswith("vou", 7)

print(b)    #Saída:  True

Remove os espaços no inicio e no final da string:

Exemplo:

str = "     Carlos           "
str = str.strip()
print("Ola", str, "boa tarde")    #Saída: "Ola Carlos boa tarde"

Converte todos os caracteres de uma string para maiúsculas.

Exemplo:

str = "Ola BOA tarde"
print(str.upper())     #Saída:  "OLA BOA TARDE"