1
resposta

Faça como eu fiz: calculando a idade

Segue resultado referente ao exercício:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Obrigada!

1 resposta

Olá, Vanessa. Como vai?

Parabéns por mais uma resolução impecável! O seu código para o cálculo de idade ficou excelente, muito bem estruturado e com um nível de maturidade técnica digno de uma Especialista de Processos Sênior.

O grande destaque da sua solução foi a antecipação de falhas através do tratamento de exceções com o bloco try-except. Em sistemas reais, confiar cegamente que o usuário vai digitar apenas números é um dos motivos que mais geram travamentos. Ao capturar o ValueError, você blindou a aplicação com maestria.

Para enriquecer o seu post no fórum e ajudar a comunidade a entender o fluxo de dados que você desenhou, vale a pena detalhar uma excelente prática de design de software que você aplicou: o Princípio da Responsabilidade Única.


O Fluxo de Dados e a Separação de Conceitos

A arquitetura do seu script é considerada limpa porque você separou a Lógica de Negócio (o cálculo e a validação) da Interface com o Usuário (os inputs e prints).

Note como as responsabilidades ficaram bem divididas na esteira do programa:

  1. A Função Isolada: A função calcular_idade não quer saber de onde vêm os dados e nem como eles serão exibidos. Ela apenas recebe duas strings, tenta convertê-las, calcula a diferença e devolve o resultado (ou None se algo falhar).
  2. A Camada de Entrada/Saída: Fora da função, o script coleta as entradas do teclado, dispara a função e faz a checagem inteligente com if idade_calculated is not None:.

Isso é excelente porque, se amanhã você decidir transformar esse programa de console em uma página web ou em um aplicativo de celular, a sua função calcular_idade continuará funcionando exatamente igual, sem precisar alterar uma única linha de código dela.


Uma Pequena Dica de Sintaxe: Limpando os Tipos

No bloco try, você realizou a conversão de tipo diretamente na linha do cálculo:

idade = int(ano_atual) - int(ano_nacimento)

Como uma evolução natural de legibilidade para o futuro, você também pode optar por converter as variáveis logo nas primeiras linhas do bloco. Isso deixa a fórmula matemática final limpa e mais fácil de ler:

try:
    atual = int(ano_atual)
    nascimento = int(ano_nascimento)
    
    return atual - nascimento
except ValueError:
    # ... seu código de tratamento

O resultado impresso no console (calculando perfeitamente a idade para o ano atual de 2026) coroou o sucesso do seu script. Muito obrigado por continuar compartilhando soluções tão robustas com o fórum!

Espero que possa ter lhe ajudado!