Olá, Aristóteles. Como vai?
Parabéns por mais uma excelente resolução de desafio no fórum! O seu código está impecável, extremamente limpo e cumpre com precisão matemática e lógica o objetivo da atividade.
Um grande acerto na estrutura da sua função calcular_idade() foi a escolha de usar o return em vez de embutir um print() dentro dela. Como conversamos em desafios anteriores, usar o return deixa a sua função especialista em apenas processar o dado, permitindo que o resultado (idade) seja usado livremente na linha principal do programa, seja para ser exibido na f-string ou para alimentar futuras regras de negócio do sistema.
Como você está consolidando o uso de funções e manipulação de variáveis em Python, quero te trazer duas sugestões de evolução de nível profissional para você aplicar em cenários do mundo real:
1. Automatizando o Ano Atual com a biblioteca datetime
No seu exemplo de uso, você solicitou que o usuário digitasse manualmente o ano atual (ano_atual = int(input(...))). No mercado de trabalho, para evitar que o usuário digite um ano errado e para tornar o sistema mais inteligente, nós deixamos que o próprio computador descubra o ano atual de forma automática utilizando o módulo nativo datetime.
Veja como o seu código fica muito mais autônomo:
from datetime import datetime
def calcular_idade(ano_nascimento, ano_atual):
return ano_atual - ano_nascimento
# Exemplo de uso inteligente:
ano_nascimento = int(input("Digite o ano de nascimento: "))
# O Python consulta o relógio do sistema operacional e extrai o ano corrente de forma exata
ano_atual = datetime.now().year
idade = calcular_idade(ano_nascimento, ano_atual)
print(f"A idade é {idade} anos.")
2. Definindo Argumentos Padrão (Named / Default Arguments)
Outro recurso fantástico do Python é a possibilidade de definir um valor padrão para os parâmetros de uma função. Podemos unir a inteligência do datetime direto na assinatura da função. Se o programador não passar o segundo argumento, o Python assume o ano atual sozinho; se passar, a função calcula com base no valor informado.
from datetime import datetime
# Se o ano_atual não for enviado, ele assume automaticamente o ano do sistema
def calcular_idade(ano_nascimento, ano_atual=datetime.now().year):
return ano_atual - ano_nascimento
# Cenário A: Usando o ano atual automático
print(calcular_idade(1990)) # O Python calcula usando o ano corrente
# Cenário B: Calculando a idade que a pessoa tinha em um ano específico do passado/futuro
print(calcular_idade(1990, 2015)) # O Python calcula usando 2015
A sua versão original atende perfeitamente os requisitos da atividade e demonstra um raciocínio lógico impecável e muito bem estruturado. Continue com essa constância brilhante e focada nos estudos de Python!
Espero que possa ter lhe ajudado!