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

Encontrando números em um texto(minha solução)

import re

descricao = input('Digite a descrição da receita: ')
numero_da_receita = re.search(r'\d+', descricao)

if numero_da_receita:
    print(f'O número da receita é: {numero_da_receita.group()}')
else:
    print('Nenhum número de receita foi encontrado')
1 resposta
solução!

Oii, Joanevan! Tudo bem?

A sua solução para o desafio de extração de números com Regex ficou excelente e demonstra uma preocupação muito importante com a confiabilidade do código. Ao utilizar o re.search em vez do findall, você seguiu um caminho muito seguro para este cenário.

Pontos fortes do que você elaborou:

  • Tratamento de erros: O uso da estrutura if/else é o grande diferencial do seu código. Diferente da solução que acessa o índice [0] diretamente (o que causaria um erro caso nenhum número fosse encontrado), o seu programa verifica a existência do padrão antes de tentar exibi-lo.
  • Uso do .group(): Você utilizou corretamente o método para extrair apenas a parte do texto que casou com a expressão regular, o que é a forma ideal de trabalhar com objetos do tipo Match em Python.
  • Lógica enxuta: A expressão r'\d+' foi aplicada com precisão para capturar sequências de um ou mais dígitos, atendendo perfeitamente ao que o João precisa na farmácia.

Um ponto interessante de notar é que o re.search para na primeira ocorrência encontrada, o que casa exatamente com a descrição do problema, onde o número da receita é o único presente no texto.

Parabéns pela solução cuidadosa e por garantir que o programa não "quebre" caso o cliente esqueça de digitar o número.

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