Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Está conforme a atividade?

import re

palavra = input("Digite uma palavra: ")
#re.findall tambem funciona 
if re.search(r"\d+", palavra):
    print("A palavra contém números.")
else:
    print("A palavra não contém números.")

Não compreendi a diferença entre findall e search, pois nesta atividade ambos funcionam.
No entanto, ainda não entendi claramente em que situações cada um deve ser utilizado.

1 resposta
solução!

Oi, Samuel! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Chamou atenção o uso correto de regex com o método re.search, resolvendo a proposta da atividade de forma objetiva. A sua dúvida faz sentido, já que em situações simples os dois métodos realmente podem funcionar e gerar a mesma percepção de resultado.

Vamos entender melhor a diferença entre search e findall:

O search verifica se existe pelo menos uma ocorrência do padrão no texto e retorna apenas essa verificação, sendo útil quando você só precisa saber se algo existe.

Já o findall percorre todo o texto e retorna todas as ocorrências encontradas, em forma de lista, sendo útil quando você precisa analisar todos os resultados. Veja este exemplo:


import re

texto = "Tenho 2 gatos e 3 cachorros"
numeros = re.findall(r"\d+", texto)

print(numeros)

Esse código busca todos os números no texto e retorna uma lista com cada ocorrência encontrada.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!