1
resposta

[Dúvida] Praticando Python - Faça como eu fiz: calculando a idade

No caso do exercício vendo a opinião do instrutor, entendi melhor que era somente para retornar o valor e não criar uma função que 'englobaria' todas
as variáveis.
Mesmo assim, fazer o código desse jeito seria o "certo" mesmo sem o 'return' do valor ?

def calcular_idade():
    ano_de_nascimento = int(input("Digite o ano de nascimento: "))
    ano_atual = int(input("Digite o ano atual: "))
    idade = ano_atual - ano_de_nascimento
    print(f'A sua idade é: {idade}')

calcular_idade()
1 resposta

Oii, Vitor! Tudo bem?

Excelente pergunta! É muito comum ter essa dúvida quando estamos começando a trabalhar com funções.

A resposta curta é: Sim, o seu código funciona! A lógica matemática está correta e ele atinge o objetivo de mostrar a idade na tela. Para scripts simples e de aprendizado inicial, não há nada de "errado" em fazer assim.

Porém, o exemplo do instrutor segue uma "boa prática" muito importante na programação chamada Separação de Responsabilidades. Vou te explicar o porquê de usarmos o return e separarmos o input da função:

1. Reutilização do código (flexibilidade)
Imagine que amanhã você decida criar um site ou um aplicativo de celular com esse mesmo cálculo.

  • No seu código: A função calcular_idade() obriga o usuário a digitar no terminal (input) e mostra o resultado no terminal (print). Ela não funcionaria num site, pois lá não existe terminal.
  • No código do instrutor: A função apenas calcula. Ela não sabe de onde vem o número (pode vir de um formulário de site, de um banco de dados, de um arquivo) e não sabe para onde vai o resultado. Isso torna a função "universal".

2. Testes automáticos
Em empresas, usamos programas para testar se nossas funções estão certas. É muito difícil testar uma função que pede interação humana (input). Já uma função que apenas recebe números e devolve (return) um resultado é super fácil de testar automaticamente!

Mas, o seu jeito não tá errado para o exercício, mas o jeito do instrutor prepara você para escrever códigos profissionais, onde cada "peça" (função) faz apenas uma coisa bem feita (neste caso, calcular), deixando a interação com o usuário para outra parte do programa.

Continue assim, questionar essas diferenças é o que vai te fazer um programador melhor.

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