4
respostas

Dúvida com utilização do Parâmetro

Prezados, boa noite.

Tenho uma dúvida pq utilizar o parametro? É qual momento se faz necessario sua utilização.

Exemplo no código abaixo, utilizando ou não o parâmetro idade o resultado e o mesmo.

idade = input('Qual sua idade? ')
idade = int(idade)

def verifica_permissão_para_dirigir(idade):
  if idade >= 18:
    print("Pode dirigir")
  else:
    print('Não pode dirigir')

verifica_permissão_para_dirigir(idade)
4 respostas

Se entendi bem, a dúvida seria o porquê de usar parâmetros em funções, correto? Se for isso mesmo vou tentar ajudar. Eu acho que existe um motivo principal que é a organização do código. Em um código simples realmente não faz sentido, mas pense em um código grande, com 20, 30, 40 ou mais funções, objetos, classes. E pior, pense com 3, 4, 5 programadores trabalhando em cima do mesmo programa, cada um fazendo um pedaço, uma classe, etc. Se as coisas não forem escritas de uma maneira legível, você perde muito tempo para primeiro tentar entender o que foi escrito para só depois começar a agir. Quando seu código é legível fica muito mais fácil atuar em cima dele.

Bem, acho que é isso.

olá, apesar da explicação, que faz todo sentido, ainda estou com dúvidas em relação à utilização e objetivo do parâmetro.

Por quê e quando devo usá-los? Além disso, ele poderá ser utilizado em outras funções além da principal, digo, se eu quiser passar mais de um nome, como ele saberá qual imprimir?

Obrigada!

Que bom que pude ajudar um pouco. Tentando ajudar um poquito mais vou explicar de uma outra maneira. Acho que estamos confundindo parâmetros com variáveis

Parâmetro é o modo de eu falar para uma função que ele vai receber um ou mais valores, e quais valores ele vai devolver para mim. Quando falo parâmetros em python eu faço um link direto com funções

No primeiro exemplo do Alan Cordeiro ele fala que se não usar o parâmetro idade o código roda do mesmo modo, mas não, sem o parâmetro idade a função não tem como receber o valor para comparar:

idade = input('Qual sua idade? ')
idade = int(idade)

def verifica_permissão_para_dirigir():
  if idade >= 18:
    print("Pode dirigir")
  else:
    print('Não pode dirigir')

verifica_permissão_para_dirigir(idade)

Veja que eu tirei o parâmetro idade da linha "def verificapermissãoparadirigir():" . Se você tentar rodar o código, a variável idade (que está dentro da função) não recebe nenhum valor porque a função não entrou com nenhum valor.

Para tentar tornar mais claro pense na estrutura básica da função como ENTRADA >> PROCESSAMENTO >> SAÍDA, e a sintaxe (que é o modo de escrever a função) assim:

def nome_da_funcao(local onde vc fala para a função quais os dados que ela vai usar nessa função):
        [local onde o processamento da função ocorre]
        [nessas linhas vc faz o que quiser com os valores recebidos nos parêntesis da linha def...]

        return linha_q_vc_fala_para_a_função_o_que_ela_deve_retornar

Agora olhe o código abaixo:

def verifica_permissão_para_dirigir(idade):
  if idade >= 18:
    print("Pode dirigir")
  else:
    print('Não pode dirigir')

verifica_permissão_para_dirigir(22)

Nesse código eu eliminei a variável idade do código fora da função, ou seja, ao invés de usar uma variável, eu passei um valor direto para a função, nesse caso o meu 22 é o valor que eu passei no parâmetro da função, esse código sim vai funcionar sem a variável.

Agora para entender um pouco mais da importância das variáveis, basta analisar a funcionalidade do código acima. Se eu quiser colocar outro valor sem ser o 22, como eu faria?

Lembre-se que na maioria massiva das vezes o código não é escrito para o programador usar, mas sim o usuário, então o programador não tem noção do valor a ser recebido, na verdade, os código receberão vários valores ao longo do tempo, por isso usamos variáveis para representar os valores que ainda estão por vir.

Alan, no seu exemplo não há sentido utilizar parâmetros pelo único motivo que a referência de "valor" que a função precisa para operar, está contida em uma variável GLOBAL, ou seja, qualquer código baixo da declaração dela, pode acessar seu valor. (Recomendo leitura sobre diferença entre variável local e global para melhor entendimento).

Por AGORA, eu lhe digo que seu parâmetro está anulado por ter o MESMO NOME da variável global declarada acima (idade). Então, troque o nome do parâmetro e reformule a função e veja como funciona (ou use meu exemplo abaixo):

idade = input('Qual sua idade? ')
idade = int(idade)

def verifica_permissao_para_dirigir(ABACATE):
  if ABACATE >= 18:
    print("Pode dirigir")
  else:
    print('Não pode dirigir')

verifica_permissao_para_dirigir(idade)