Python: Busca e Validação de Strings

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.

Tags: Python Strings manipulação-de-strings find isdigit

Publicado em 6-24 21:01