1
resposta

[Projeto] Resposta desse caso

Nesse caso, o código meio que quebrava toda vez que a receita tinha mais de um tipo de número como entrada. Levando isso em conta, cheguei nisso daqui:

import re

description = input("Insira a descrição da receita: ").strip()
digits = re.findall(r"\d+", description) # pra ver se ele gera uma lista ao invés de me dar só o primeiro caso válido

if digits:
    for i in digits:
        print(f"O número da receita é: {i}.")  # nisso ele me entrega todos os números de receita possíveis (não sendo da forma mais eficiente possível)
else:
    print("Não existem dígitos numéricos na descrição. Tente novamente.")
1 resposta

Olá! Como vai?

O seu código está funcionando bem para extrair todos os números de uma descrição. No entanto, o objetivo do exercício é um pouco diferente: você deve extrair apenas um único número, já que a descrição sempre contém apenas um número de receita.

Para resolver isso, você pode simplificar o seu código para pegar apenas o primeiro número encontrado na descrição. Aqui está uma sugestão de como você pode fazer isso:

import re

description = input("Insira a descrição da receita: ").strip()
match = re.search(r"\d+", description)  # Usamos re.search para encontrar apenas o primeiro número

if match:
    print(f"O número da receita é: {match.group()}.")  # match.group() retorna o número encontrado
else:
    print("Não existem dígitos numéricos na descrição. Tente novamente.")

Neste código, re.search é usado para encontrar a primeira ocorrência de um número na string. Se um número for encontrado, match.group() retorna esse número. Isso atende ao requisito do exercício de não precisar trabalhar com listas ou loops.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.