Principais Métodos de Strings em Python
Vamos considerar os principais métodos de strings que podemos aplicar em nossas aplicações:
isalpha()
: retornaTrue
se a string consiste apenas de caracteres alfabéticos.islower()
: retornaTrue
se a string consiste apenas de caracteres em minúsculas.isupper()
: retornaTrue
se todos os caracteres da string estão em maiúsculas.isdigit()
: retornaTrue
se todos os caracteres da string são dígitos.isnumeric()
: retornaTrue
se a string representa um número.startswith(str)
: retornaTrue
se a string começa com a substringstr
.endswith(str)
: retornaTrue
se 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") # False
Removendo 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âmetrostart
define o índice inicial a partir do qual a busca será realizada.find(str, start, end)
: o parâmetroend
define 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) # -1
Substituição em strings
Para substituir uma substring por outra, usamos o método replace()
:
replace(old, new)
: substitui todas as ocorrências da substringold
pornew
.replace(old, new, num)
: o parâmetronum
especifica 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-10
Dividindo 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âmetronum
especifica 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|o
Documentação oficial: