1
resposta

[Dúvida] Seria sim ou não uma boa pratica de codigo

Reparei que eu repetindo o mesmo nome que eu declarei no () no DEF, coloquei os mesmos nomes nos input, e quando criei o "resultado " para obter o resultado, aconteceu que duplicou os nomes? O codigo roda normalmente porém fiquei com essa dúvida

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

def acertar_idade (ano_atual, ano_nascimento):
return ano_atual - ano_nascimento

ano_nascimento = int (input("Em que ano você nasceu ? "))
ano_atual = int (input("Qual o ano atual ? "))

somar = acertar_idade (ano_atual,ano_nascimento)
print(f"Você tem {somar} de idade")

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Olá Gabriel.
Otima pergunta.
Isso é muito relativo e varia de acordo com a equipe que está desenvolvendo o projeto.
Vamos analisar com calma o que acontece no seu código:

def acertar_idade(ano_atual, ano_nascimento):
    return ano_atual - ano_nascimento

ano_nascimento = int(input("Em que ano você nasceu? "))
ano_atual = int(input("Qual o ano atual? "))

somar = acertar_idade(ano_atual, ano_nascimento)
print(f"Você tem {somar} de idade")

Você usou os mesmos nomes ano_atual e ano_nascimento tanto dentro da função quanto fora dela.
Mas isso não causa conflito porque:

  • Os nomes dentro da função (ano_atual, ano_nascimento) são parâmetros locais . Eles só existem dentro da função.
  • Os nomes fora da função (ano_atual, ano_nascimento) são variáveis globais (no escopo principal do programa).

Quando você chama:

somar = acertar_idade(ano_atual, ano_nascimento)

O Python faz o seguinte:

  1. Pega o valor das variáveis de fora.
  2. Passa esses valores para dentro da função.
  3. Lá dentro, os parâmetros recebem cópias desses valores (ou referências, no caso de objetos mutáveis).

Mesmo que os nomes sejam iguais, o Python entende o contexto (escopo) de onde eles estão sendo usados.
Então:

  • Fora da função: ano_atual = valor digitado pelo usuário
  • Dentro da função: ano_atual = parâmetro local usado no cálculo

Esses dois podem ter o mesmo nome, mas são variáveis diferentes.
Usar os mesmos nomes não é errado, mas às vezes pode confundir quem lê o código.
Uma boa prática é variar um pouco os nomes e de preferencia ir se habituando a utilizar o ingles.
Qualquer duvida comente ai .
Bons estudos.