1
resposta

[Projeto] A forma que criei o algoritmo

from datetime import datetime

def calcular_idade(data_nascimento: list) -> list:
    """
        Pega a data de nascimento e calcula a idade, checando se a pessoa já completou ano.
    """
    
    hoje = datetime.today()
    
    idade = hoje.year - data_nascimento.year
    
    #checando se já completou ano
    if(hoje.month, hoje.day) < (data_nascimento.month, data_nascimento.day):
        idade -= 1
    
    return idade

def pegar_data():
    try:
        data_str = input("Digite sua data de nascimento (DD/MM/AAAA): ")
        data_nascimento = datetime.strptime(data_str, "%d/%m/%Y")
        
        return data_nascimento
        
    except ValueError: 
        print("Digite a data no formato correto!")
        return None

def mostrar_idade(idade):
    print(f"Você tem {idade} anos.")
    
while True:
    data = pegar_data()
    
    if data:
        idade = calcular_idade(data)
        mostrar_idade(idade)
        break
1 resposta

Oi, Paulo, como vai?

Seu projeto ficou muito interessante porque você expandiu bastante a proposta inicial da atividade. Além de calcular a idade, você implementou validação de entrada, separou responsabilidades em funções diferentes e utilizou corretamente o módulo datetime para trabalhar com datas reais.

Sua lógica para verificar se a pessoa já fez aniversário no ano atual ficou muito boa. A comparação entre (hoje.month, hoje.day) e (data_nascimento.month, data_nascimento.day) é uma solução bastante utilizada para esse tipo de cálculo. Também foi interessante o uso do try/except para tratar entradas inválidas. Isso ajuda bastante na experiência de quem utiliza o programa.

Parabéns por ir além do exercício proposto e explorar conceitos mais avançados durante a implementação. Isso contribui bastante para desenvolver organização e reutilização de código. O fórum está à disposição para acompanhar sua evolução.

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