Domine o Método String.find() do Python: Sintaxe, Exemplos e Alternativas
O que é Python String.find()?
O método String.find() em Python retorna o índice da primeira ocorrência de uma substring especificada dentro de uma string. Se a substring não for encontrada, ele retorna graciosamente -1 em vez de lançar uma exceção, tornando-o uma escolha conveniente para buscas de substring.
Neste guia, você aprenderá como usar find() efetivamente, explorar seus parâmetros, compará-lo com métodos relacionados e até contar quantas vezes uma substring aparece.
- Entendendo String.find()
- Sintaxe e parâmetros
- Usando argumentos padrão
- Especificando índice inicial
- Definindo intervalo de início e fim
- Encontrando posições de substrings
- Comparando com rfind()
- Comparando com index()
- Contando ocorrências de substring
Sintaxe do Python string find()
A assinatura do método é direta:
string.find(substring, inicio, fim)
Parâmetros
- substring – O texto que você está procurando.
- inicio (opcional) – Índice onde a busca começa; padrão
0. - fim (opcional) – Índice onde a busca termina; padrão para o comprimento da string.
Usando find() com Valores Padrão
Quando nenhum inicio ou fim é fornecido, find() escaneia toda a string do início. Retorna o índice da primeira correspondência ou -1 se nenhuma for encontrada.
Exemplo:
minha_string = "Conheça Guru99 Tutoriais Site. Melhor site para Tutoriais Python!"
print("A posição de Tutoriais está em:", minha_string.find("Tutoriais"))
Saída:
A posição de Tutoriais está em: 12
Especificando um Índice Inicial
Fornecer um argumento inicio limita a busca para começar nessa posição, estendendo até o fim da string.
Exemplo:
minha_string = "Conheça Guru99 Tutoriais Site. Melhor site para Tutoriais Python!"
print("A posição de Tutoriais está em:", minha_string.find("Tutoriais", 20))
Saída:
A posição de Tutoriais está em: 48
Definindo um Intervalo de Início e Fim
Fornecendo tanto inicio quanto fim, você pode confinar a busca a uma fatia específica da string.
Exemplo:
minha_string = "Conheça Guru99 Tutoriais Site. Melhor site para Tutoriais Python!"
print("A posição de Tutoriais está em:", minha_string.find("Tutoriais", 5, 30))
Saída:
A posição de Tutoriais está em: 12
Encontrando Posições e Lidando com Substrings Ausentes
Aqui está como find() se comporta quando a substring está presente e quando está ausente.
Exemplo:
minha_string = "Conheça Guru99 Tutoriais Site. Melhor site para Tutoriais Python!"
print("A posição de Melhor site está em:", minha_string.find("Melhor site", 5, 40))
print("A posição de Guru99 está em:", minha_string.find("Guru99", 20))
Saída:
A posição de Melhor site está em: 27 A posição de Guru99 está em: -1
Comparando com rfind()
rfind() é similar a find() mas retorna o índice mais alto onde a substring ocorre. Se a substring não estiver presente, ambos métodos retornam -1.
Exemplo:
minha_string = "Conheça Guru99 Tutoriais Site. Melhor site para Tutoriais Python!"
print("A posição de Tutoriais usando find(): ", minha_string.find("Tutoriais"))
print("A posição de Tutoriais usando rfind(): ", minha_string.rfind("Tutoriais"))
Saída:
A posição de Tutoriais usando find(): 12 A posição de Tutoriais usando rfind(): 48
Comparando com index()
O método index() se comporta como find() mas lança um ValueError quando a substring está ausente.
Exemplo:
minha_string = "Conheça Guru99 Tutoriais Site. Melhor site para Tutoriais Python!"
print("A posição de Tutoriais usando find(): ", minha_string.find("Tutoriais"))
print("A posição de Tutoriais usando index(): ", minha_string.index("Tutoriais"))
Saída:
A posição de Tutoriais usando find(): 12 A posição de Tutoriais usando index(): 12
Quando a substring não é encontrada:
minha_string = "Conheça Guru99 Tutoriais Site. Melhor site para Tutoriais Python!"
print("A posição de Teste usando find(): ", minha_string.find("teste"))
print("A posição de Teste usando index(): ", minha_string.index("teste"))
Saída:
A posição de Teste usando find(): -1 Traceback (most recent call last): File "task1.py", line 3, inprint("A posição de Teste usando index(): ", minha_string.index("teste")) ValueError: substring not found
Contando Ocorrências de Substring
Para contar quantas vezes uma substring aparece, itere pela string e chame repetidamente find() com um índice inicial atualizado.
Exemplo:
minha_string = "teste string teste, teste string testando, teste string teste string"
indice_inicio = 0
contagem = 0
for _ in range(len(minha_string)):
k = minha_string.find('teste', indice_inicio)
if k != -1:
indice_inicio = k + 1
contagem += 1
print("A contagem total da substring teste é:", contagem)
Saída:
A contagem total da substring teste é: 6
Principais Conclusões
find()retorna o primeiro índice correspondente ou-1se ausente.- Parâmetros:
substring,inicioopcional (padrão 0),fimopcional (padrão comprimento da string). - Use
iniciopara começar a busca em uma posição específica. - Use
inicioefimpara limitar a busca a uma fatia da string. rfind()retorna o último índice correspondente.index()é mais estrito, lançando erro quando a substring está ausente.- Loop com
find()pode contar ocorrências totais.
python
- Método Java String length(): Como Obter o Tamanho de uma String (Exemplo)
- Dominando o Método strip() do Python: Guia Completo e Exemplos Práticos
- Domine o str.count() do Python: Como Contar Caracteres e Substrings com Exemplos
- Domine Strings format() em Python com Exemplos Claros
- Python len(): Guia Prático para Medir Comprimento de Objetos
- Dominando Funções Lambda em Python: Exemplos Práticos e Boas Práticas
- Função round() em Python Explicada com Exemplos Práticos
- Dominando a Função map() do Python: Sintaxe, Exemplos e Boas Práticas
- Python timeit(): Medindo Tempo de Execução com Exemplos Práticos
- Entendendo type() e isinstance() em Python: Exemplos Práticos