Busca de Substrings com .find()
frase = "Olá mundo. Meu nome é João Silva"
posicao = frase.find("João Silva") # Retorna 14, indicando o início da substring
print(posicao)
posicao2 = frase.find("João Silva123") # Retorna -1 quando a substring não é encontrada
print(posicao2)
posicao3 = frase.index("João Silva123") # Gera erro quando a substring não existe
print(posicao3)
print("João Silva" in frase) # Pode ser usado em condições
print("João Silva" not in frase) # Verifica se a substring não existe
Observe no exemplo a seguir:
Mesmo que "mundo" apareça múltiplas vezes, o método find() retorna apenas a primeira ocorrência:
texto = "Olá, mundo! Este é um teste.mundo! mundo! mundo! "
indice = texto.find("mundo") # Busca a substring "mundo"
print(indice) # Apenas: 4
Para buscar todas as ocorrências, podemos usar um loop:
texto = "Olá, mundo! Este é um mundo teste.mundo!mundo!mundo!"
inicio = 0
while True:
indice = texto.find("mundo", inicio)
if indice == -1:
break
print(f"Encontrado 'mundo' no índice {indice}")
inicio = indice + 1
Saída:
Encontrado 'mundo' no índice 4
Encontrado 'mundo' no índice 21
Encontrado 'mundo' no índice 32
Encontrado 'mundo' no índice 38
Encontrado 'mundo' no índice 44
Validação de Strings
Verificar início e fim de strings: .startswith() e .endswith()
nome = input("Digite seu nome:")
# Verifica se o sobrenome é Silva
if nome.startswith("Silva"): # Verifica se a string começa com "Silva", endswith() para fim
print("Seu sobrenome é Silva")
else:
print("Seu sobrenome não é Silva")
Verifciar se é número: .isdigit()
isdigit() é um método de string que verifica se todos os caracteres são dígitos. Se a string contiver apenas caracteres numéricos (0-9), retorna True; caso contrário, retorna False.
string1 = "12345"
string2 = "42.5"
string3 = "Python123"
print(string1.isdigit()) # Saída: True
print(string2.isdigit()) # Saída: False
print(string3.isdigit()) # Saída: False
No exemplo acima, string1 contém apenas dígitos, então string1.isdigit() retorna True. string2 contém um ponto decimal, portanto não é composta apenas por dígitos, reusltando em False. string3 contém letras, então também retorna False.
O método .isdigit() é frequentemente usado para validar entradas do usuário, garantindo que contenham apenas números.
Comprimento de Strings
Para obter o comprimento de uma string, usamos a função len():
texto = "olá"
print(len(texto)) # Resultado: 3
Assim como int, float e bool, len é uma função embutida do Python.