Parâmetros e argumentos
Objetivo da aula
Passar dados para funções de forma explícita.
Regra desta aula: vamos assumir que você nunca viu este assunto antes. Nenhum termo importante será usado sem explicação e todo exemplo deve ser entendido linha por linha, não apenas copiado.
Começando do zero
Parâmetros permitem que uma função trabalhe com valores diferentes sem precisar de uma cópia da função para cada caso. O parâmetro é o nome declarado na definição; o argumento é o valor fornecido na chamada. A função recebe esses valores e executa sua regra.
Uma imagem mental para entender
Imagine um molde de etiqueta com um espaço chamado “nome”. O molde é o mesmo, mas você pode preencher Ana, Bruno ou Carla. O parâmetro é o espaço do molde; o argumento é o valor colocado naquele espaço em cada uso.
Conceitos essenciais, sem pular etapas
Parâmetro
Nome que aparece na assinatura da função, como nome em def saudar(nome):.
Argumento
Valor usado na chamada, como "Ana" em saudar("Ana").
Mais de um parâmetro
Uma função pode receber vários valores separados por vírgula, como quantidade e preço.
Argumentos posicionais
Na forma simples, a ordem importa: o primeiro argumento vai para o primeiro parâmetro.
Argumentos nomeados
Também podemos escrever calcular(preco=10, quantidade=3) para tornar a associação explícita quando a função permite.
Modelo mental
DEFINIÇÃO COM PARÂMETROS → CHAMADA COM ARGUMENTOS → VALORES LOCAIS → REGRA
Exemplo 1 — primeiro veja o programa inteiro
def calcular_total(quantidade, preco_unitario):
total = quantidade * preco_unitario
print(f"Total: R$ {total:.2f}")
calcular_total(3, 12.50)
calcular_total(2, 5.00)
Agora vamos ler linha por linha
- A função é definida uma vez com dois parâmetros.
- Na primeira chamada,
quantidaderecebe 3 epreco_unitariorecebe 12.50. - A variável
totalé criada dentro da função para aquele cálculo. - A segunda chamada reutiliza a mesma regra com outros argumentos.
Saída esperada
Total: R$ 37.50
Total: R$ 10.00
Exemplo 2 — o mesmo conceito em outra situação
def apresentar(nome, curso):
print(f"{nome} está estudando {curso}.")
apresentar(curso="FT-002", nome="Lia")
Argumentos nomeados deixam a associação explícita. Ainda assim, não abuse deles para esconder funções com parâmetros demais; muitas entradas podem sinalizar responsabilidade excessiva.
Experimento guiado
Não pule esta parte. Programação só começa a fazer sentido quando você prevê um resultado, executa e compara a previsão com o que realmente aconteceu.
- Crie uma função
somar(a, b)que mostre a soma e chame com valores diferentes. - Inverta propositalmente argumentos posicionais em uma função em que a ordem muda o sentido.
- Reescreva uma chamada usando argumentos nomeados.
- Explique com suas palavras a diferença entre parâmetro e argumento.
Mini desafio
Crie mostrar_produto(nome, quantidade) e use-a para exibir dois produtos diferentes.
Solução comentada
def mostrar_produto(nome, quantidade):
print(f"Produto: {nome} | Quantidade: {quantidade}")
mostrar_produto("Caderno", 3)
mostrar_produto("Caneta", 10)
Depois de executar a solução, altere pelo menos um valor e explique por que o novo resultado mudou. Se você só copiou e não consegue explicar cada linha, refaça o desafio em uma versão menor.
Erros comuns e por que acontecem
- Chamar com quantidade errada de argumentos e obter
TypeError. - Confundir parâmetro com variável global e não perceber que o valor é fornecido pela chamada.
- Usar muitos parâmetros em uma função que está fazendo responsabilidades demais.
- Trocar a ordem de argumentos posicionais sem notar que os tipos ainda permitem execução.
Cheque se você realmente entendeu
Onde o parâmetro aparece?
Resposta: Na definição da função.
Onde o argumento aparece?
Resposta: Na chamada da função.
A mesma função pode ser chamada com argumentos diferentes?
Resposta: Sim; essa é uma das principais razões para usar parâmetros.
Resumo em linguagem simples
Nesta aula, o ponto central foi Parâmetros e argumentos. Tente explicar o modelo DEFINIÇÃO COM PARÂMETROS → CHAMADA COM ARGUMENTOS → VALORES LOCAIS → REGRA sem olhar a tela. Depois, escreva um exemplo próprio menor que os apresentados. Esse exercício de explicação é parte do aprendizado, não um extra.
Conexão com a próxima aula
Na próxima aula, return versus print, vamos aproveitar exatamente o que foi construído aqui. Você não precisa memorizar tudo; precisa conseguir reconhecer o conceito e reconstruí-lo com raciocínio e testes.