1
resposta

Qual a diferença entre: (idades) ou ( )

Olá! Estava tentando entender e comparar os dois exemplos dados na vídeo aula, entre eles onde usamos o for fora da função e dentro da função.

Fora da função, entendi a ideia toda, a função é chamada pelo comando dentro do for que vai pegando um parâmetro de cada vez dentro da lista idades!

No segundo caso eu não consegui entender especificamente o porque na função utilizamos o parâmetro IDADES conforme abaixo (mudei o nome do parâmetro idade para N para ficar mais claro minha dúvida)

def verifica_se_pode_dirigir(idades):
  for n in idades:
    if n >= 18:
      print(f'{n} anos de idade, TEM permissão para dirigir!')
    else:
      print(f'{n} anos de idade, NÃO TEM permissão para dirigir!')

verifica_se_pode_dirigir(idades)

Pois não entendo por que causa, motivo, razão ou circunstância declaramos ele dessa forma e fazendo o teste abaixo a função realiza o trabalho da mesma forma:

def verifica_se_pode_dirigir():
  for n in idades:
    if n >= 18:
      print(f'{n} anos de idade, TEM permissão para dirigir!')
    else:
      print(f'{n} anos de idade, NÃO TEM permissão para dirigir!')

verifica_se_pode_dirigir()

Isso é algo de boas práticas? Ou não é o caso e como não faz diferença é preferência? Alguém consegue me ajudar a ter certeza a respeito disso?

1 resposta

Estevam, tudo bom?

Python tem essa característica que outras linguagens não possuem, você pode fazer a leitura de uma variável global dentro da função sem passar ela como parâmetro, mas não pode modificá-la. Foi exatamente o que aconteceu no seu exemplo.

Sim, por questões de legibilidade do código passar o parâmetro é mais indicado.

O post abaixo tem uma explicação mais completa (e longa) sobre isso.

https://giovannireisnunes.wordpress.com/2017/07/28/variaveis-globais-em-python/

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software