Principais Métodos de Strings em Python
Vamos considerar os principais métodos de strings que podemos aplicar em nossas aplicações:
isalpha(): retornaTruese a string consiste apenas de caracteres alfabéticos.islower(): retornaTruese a string consiste apenas de caracteres em minúsculas.isupper(): retornaTruese todos os caracteres da string estão em maiúsculas.isdigit(): retornaTruese todos os caracteres da string são dígitos.isnumeric(): retornaTruese a string representa um número.startswith(str): retornaTruese a string começa com a substringstr.endswith(str): retornaTruese a string termina com a substringstr.lower(): converte todos os caracteres da string para minúsculas.upper(): converte todos os caracteres da string para maiúsculas.title(): converte para maiúscula o primeiro caractere de cada palavra na string.capitalize(): converte para maiúscula apenas o primeiro caractere da primeira palavra da string.lstrip(): remove os espaços em branco iniciais da string.rstrip(): remove os espaços em branco finais da string.strip(): remove os espaços em branco iniciais e finais da string.ljust(width): se o comprimento da string for menor que o parâmetrowidth, adiciona espaços à direita para completar o valor dewidth, alinhando a string à esquerda.rjust(width): se o comprimento da string for menor que o parâmetrowidth, adiciona espaços à esquerda para completar o valor dewidth, alinhando a string à direita.center(width): se o comprimento da string for menor que o parâmetrowidth, adiciona espaços igualmente à esquerda e à direita para completar o valor dewidth, alinhando a string ao centro.find(str[, start[, end]]): retorna o índice da substring na string. Se a substring não for encontrada, retorna-1.replace(old, new[, num]): substitui uma substring por outra na string.split([delimitador[, num]]): divide a string em substrings com base no delimitador.partition(delimitador): divide a string pelo delimitador em três partes e retorna uma tupla com três elementos: a substring antes do delimitador, o delimitador e a substring após o delimitador.join(strs): une uma sequência de strings em uma única string, inserindo um delimitador específico entre elas.
Por exemplo, se esperamos a entrada de um número pelo teclado, podemos verificar com o método isnumeric() se realmente foi digitado um número antes de convertê-lo:
num = input('Digite um número: ')
if num.isnumeric():
num = int(num)
print(f'O número digitado foi {num}')
else:
print('Você não digitou um número!')Verificando se a string começa ou termina com uma determinada substring:
file_name = "hello.py"
starts_with_hello = file_name.startswith("hello") # True
ends_with_exe = file_name.endswith("exe") # FalseRemovendo espaços em branco no início e no fim da string:
string = " hello world! "
string = string.strip()
print(string) # hello world!Complementando a string com espaços e alinhamento:
print("abc".rjust(3))
print("def".rjust(4))
print("ghi".rjust(5))abc def ghi
Pesquisa em strings
Para buscar uma substring em uma string, usamos o método find(), que retorna o índice da primeira ocorrência da substring e possui três formas:
find(str): a busca da substringstré realizada do início ao fim da string.find(str, start): o parâmetrostartdefine o índice inicial a partir do qual a busca será realizada.find(str, start, end): o parâmetroenddefine o índice final até o qual a busca será realizada.
Se a substring não for encontrada, o método retorna -1:
welcome = "Hello world! Goodbye world!"
index = welcome.find("wor")
print(index) # 6
# busca a partir do índice 10
index = welcome.find("wor", 10)
print(index) # 21
# busca do índice 10 ao 15
index = welcome.find("wor", 10, 15)
print(index) # -1Substituição em strings
Para substituir uma substring por outra, usamos o método replace():
replace(old, new): substitui todas as ocorrências da substringoldpornew.replace(old, new, num): o parâmetronumespecifica quantas ocorrências de old devem ser substituídas. Por padrão,numé -1, o que substitui todas as ocorrências.
phone = "+1-234-567-89-10"
# substituindo hífens por espaços
edited_phone = phone.replace("-", " ")
print(edited_phone) # +1 234 567 89 10
# removendo hífens
edited_phone = phone.replace("-", "")
print(edited_phone) # +12345678910
# substituindo apenas o primeiro hífen
edited_phone = phone.replace("-", "", 1)
print(edited_phone) # +1234-567-89-10Dividindo strings em substrings
O método split() divide a string em uma lista de substrings com base em um delimitador. O delimitador pode ser qualquer caractere ou sequência de caracteres. Este método possui as seguintes formas:
split(): usa o espaço como delimitador.split(delimitador): usa o delimitador especificado.split(delimitador, num): o parâmetronumespecifica quantas vezes o delimitador será aplicado. A parte restante da string é adicionada à lista sem ser dividida.
text = "Hello world, Hi people!"
# divisão por espaços
splitted_text = text.split()
print(splitted_text) # ['Hello', 'world,', 'Hi', 'people!']
print(splitted_text[3]) # people!
# divisão por vírgulas
splitted_text = text.split(",")
print(splitted_text) # ['Hello world', ' Hi people!']
print(splitted_text[1]) # Hi people!
# divisão pelos primeiros dois espaços
splitted_text = text.split(" ", 2)
print(splitted_text) # ['Hello', 'world,', 'Hi people!']
print(splitted_text[2]) # Hi people!Outro método, partition(), divide a string pelo delimitador em três partes e retorna uma tupla com três elementos: a substring antes do delimitador, o delimitador e a substring após o delimitador:
text = "Hello world, Hi people!"
text_parts = text.partition("Hi")
print(text_parts) # ('Hello world, ', 'Hi', ' people!')Se o delimitador não for encontrado na string, é retornada uma tupla contendo a string original e duas strings vazias.
Unindo strings
Além de concatenar strings usando o operador +, podemos utilizar o método join(), que une uma sequência de strings inserindo um delimitador entre elas. A string na qual o método é chamado é usada como delimitador:
words = ["Hello", "world", "Hi", "people!"]
# unindo as palavras com um espaço
text = " ".join(words)
print(text) # Hello world Hi people!
# unindo as palavras com uma barra vertical
text = "|".join(words)
print(text) # Hello|world|Hi|people!Podemos também passar uma string simples para o método join(). Nesse caso, o delimitador será inserido entre os caracteres da string:
word = "hello"
joined_word = "|".join(word)
print(joined_word) # h|e|l|l|oDocumentação oficial: