Módulo 13 - Funções
Parâmetros: as entradas da função
10 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 01/07/2026
O que você vai aprender
- Declarar parâmetros nos parênteses da definição.
- Chamar funções passando um, dois ou vários valores.
- Diferenciar parâmetro (na definição) de argumento (na chamada).
- Criar parâmetros opcionais com valores padrão.
Ouvir o resumo desta aula
Um recap de cerca de 2 minutos na voz do Valim, para ouvir no trânsito ou na academia.
Ler a transcrição do resumo
Resumo da aula: Parâmetros: as entradas da função.
Os objetivos desta aula. Declarar parâmetros nos parênteses da definição. Chamar funções passando um, dois ou vários valores. Diferenciar parâmetro (na definição) de argumento (na chamada). Criar parâmetros opcionais com valores padrão.
Veja o essencial, parte por parte.
A função que recebe dados. Parâmetro é a entrada da função: um nome declarado nos parênteses do def.
Dois ou mais parâmetros: a ordem manda. Uma função aceita quantos parâmetros você declarar, separados por vírgula.
Valores padrão: parâmetros opcionais. Quando existe um valor que serve para a maioria das chamadas, como a saudação Olá.
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
A função que recebe dados
A função saudar da aula passada imprime sempre a mesma frase, para todo mundo. Útil, mas limitada. O salto de qualidade vem quando a função aceita informações de fora e adapta o comportamento a elas. Você já viu isso mil vezes do lado de quem usa: print aceita o texto a mostrar, len aceita o que medir. Agora você vai fazer o mesmo nas suas funções, e o mecanismo se chama parâmetro: um nome declarado entre os parênteses do def, que se comporta como uma variável de entrada.
def saudar(nome):
print(f"Olá, {nome}! Bom te ver por aqui.")
saudar("Maria")
saudar("João")
# Olá, Maria! Bom te ver por aqui.
# Olá, João! Bom te ver por aqui.Um parâmetro, duas chamadas, duas saídas diferentes. A função virou um molde.
Acompanhe o fluxo da primeira chamada: o Python encontra saudar("Maria"), pula para a função e entrega o texto Maria ao parâmetro nome. Dentro do corpo, nome vale Maria, e a f-string do módulo 12 monta a frase. Na segunda chamada, nome vale João. O parâmetro é uma variável que nasce a cada chamada, com o valor recebido, e morre quando a função termina. Ele só existe dentro do corpo: tentar usar nome fora da função gera NameError, porque lá fora esse nome nunca existiu.
Dois ou mais parâmetros: a ordem manda
Uma função aceita quantos parâmetros você declarar, separados por vírgula. Na chamada, os argumentos preenchem os parâmetros na ordem: o primeiro argumento vai para o primeiro parâmetro, o segundo para o segundo, e assim por diante. Ordem trocada não gera erro nenhum; gera resultado errado, que é pior.
def apresentar(nome, idade):
print(f"{nome} tem {idade} anos.")
apresentar("Ana", 30)
apresentar(30, "Ana")
# Ana tem 30 anos.
# 30 tem Ana anos.A segunda chamada roda sem erro e sai absurda. O Python obedece a ordem, não a intenção.
Aproveite para acertar o vocabulário, sem pedantismo: parâmetro é o nome na definição (nome, idade); argumento é o valor na chamada (Ana, 30). Na conversa do dia a dia, muita gente usa as duas palavras como sinônimo e todo mundo se entende. Vale conhecer a diferença porque mensagens de erro do Python usam o termo argument: quando você chamar apresentar("Ana") esquecendo a idade, o erro dirá missing 1 required positional argument, ou seja, faltou 1 argumento obrigatório. Agora você sabe ler isso.
| Termo | Onde aparece | Exemplo |
|---|---|---|
| Parâmetro | Na definição, entre os parênteses do def | def apresentar(nome, idade): |
| Argumento | Na chamada, entre os parênteses | apresentar("Ana", 30) |
Parâmetro é o molde; argumento é o material que preenche o molde.
Valores padrão: parâmetros opcionais
Às vezes um parâmetro tem um valor óbvio na maioria das chamadas, e obrigar todo mundo a repeti-lo é chato. Para isso existe o valor padrão: você declara o parâmetro com um sinal de igual e o valor de reserva. Se a chamada não enviar aquele argumento, o padrão entra em cena; se enviar, o valor enviado vence.
def saudar(nome, saudacao="Olá"):
print(f"{saudacao}, {nome}!")
saudar("Maria")
saudar("Maria", "Bom dia")
# Olá, Maria!
# Bom dia, Maria!Sem o segundo argumento, vale o padrão Olá. Com ele, vale o que foi enviado.
Você usa isso há tempo sem perceber: o print aceita um parâmetro opcional chamado end, que por padrão vale uma quebra de linha; por isso cada print escreve numa linha nova sem você pedir. Uma regra de escrita para fechar: parâmetros com valor padrão vêm depois dos obrigatórios na definição. Escrever def saudar(saudacao="Olá", nome): gera SyntaxError, porque o Python não saberia decidir, numa chamada com um argumento só, qual parâmetro preencher.
Teste rápido
Com def saudar(nome, saudacao="Olá") definida, o que a chamada saudar("Pedro") imprime?
Perguntas frequentes
- Qual é a diferença entre parâmetro e argumento, afinal?
- Parâmetro é o nome declarado na definição da função, entre os parênteses do def. Argumento é o valor real enviado na chamada. Em def saudar(nome) e saudar('Maria'), nome é o parâmetro e 'Maria' é o argumento. No dia a dia as palavras se misturam, e tudo bem; a distinção ajuda a ler mensagens de erro.
- Quantos parâmetros uma função pode ter?
- Tecnicamente, muitos; na prática, quanto menos, melhor. Funções com até três ou quatro parâmetros são fáceis de usar sem consultar a definição. Acima disso, as chamadas viram adivinhação de ordem. Se a lista crescer, costuma ser sinal de que a função acumulou tarefas demais.
- Posso passar uma variável como argumento em vez de um valor direto?
- Pode, e é o caso mais comum. Em saudar(nome_digitado), o Python entrega o valor atual da variável ao parâmetro da função. O nome da variável de fora não precisa ser igual ao nome do parâmetro: o que viaja é o valor, não o nome.
- O que acontece se eu passar argumentos a mais ou a menos?
- O Python interrompe com um TypeError bem descritivo: missing 1 required positional argument quando falta, e takes 2 positional arguments but 3 were given quando sobra. É um erro fácil de corrigir: confira a definição da função e ajuste a chamada.
- Posso nomear os argumentos na chamada, tipo saudar(nome='Maria')?
- Pode: são os argumentos nomeados, ou keyword arguments. Eles deixam a chamada mais legível e permitem fugir da ordem: saudar(saudacao='Boa noite', nome='Ana') funciona. Neste curso básico usamos principalmente a forma posicional, mas você vai cruzar com argumentos nomeados em muito código por aí.
- Um parâmetro pode receber uma lista?
- Pode receber qualquer tipo do Python: número, texto, booleano, lista, dicionário. A função calcular_media da prática deste módulo recebe exatamente uma lista de notas e trabalha com ela usando sum e len, como qualquer lista do módulo 10.
Fontes
Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.