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ção | Output | Descrição |
---|---|---|
“Boa tarde. “+ “Olá a todos” | “Boa tarde. Olá a todos” | Concatenação |
‘viva’ * 4 | “vivavivavivaviva” | Repetição |
“y” in “Python | True | Pertença |
for x in “Python” : print(x) | Python | Iteraçã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étodo | Descriçã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. |
capitalize()
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"
count()
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
endswith()
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
find()
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
isalnum()
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
isalpha()
Retorna True se todos os caracteres da string forem letras.
Exemplo:
str = "Lisboa"
res = str.isalpha()
print(res) #Output: True
isascii()
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
isdigit()
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
islower()
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
isspace()
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
isupper()
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
join()
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"
lower()
Converte todos os caracteres de uma string para minúsculas.
Exemplo:
str = "Ola BOA tarde"
print(str.lower()) #Saída: "ola boa tarde"
lstrip()
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"
replace()
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
rstrip()
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"
split()
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']
startswith()
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
strip()
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"
upper()
Converte todos os caracteres de uma string para maiúsculas.
Exemplo:
str = "Ola BOA tarde"
print(str.upper()) #Saída: "OLA BOA TARDE"