Pular para o conteúdo

Como usar argumentos opcionais em Python?

[

Utilizando Argumentos Opcionais em Python ao Definir Funções

por [Seu nome]


Criando Funções em Python para Reutilizar Código

Você pode pensar em uma função como um mini programa que roda dentro de outro programa ou de outra função. O programa principal chama o mini programa e envia as informações que o mini programa vai precisar enquanto ele roda. Quando a função termina suas ações, ela pode enviar dados de volta para o programa principal que a chamou.

O objetivo principal de uma função é permitir que você reutilize o código dentro dela sempre que precisar, usando diferentes entradas se necessário.

Quando você usa funções, está expandindo seu vocabulário em Python. Isso permite que você expresse a solução para o problema de forma mais clara e concisa.

Em Python, por convenção, você deve nomear uma função usando letras minúsculas, com palavras separadas por um sublinhado, como fazer_algo(). Essas convenções são descritas no PEP 8, que é o guia de estilo do Python. Você precisará adicionar parênteses após o nome da função ao chamá-la. Como as funções representam ações, é uma prática recomendada começar os nomes das funções com um verbo para tornar o código mais legível.

Definindo Funções sem Parâmetros de Entrada

Neste tutorial, vamos usar o exemplo de um programa básico que cria e mantém uma lista de compras e a imprime quando você está pronto para ir ao supermercado.

Comece criando uma lista de compras:

lista_de_compras = {
"Pão": 1,
"Leite": 2,
"Chocolate": 1,
"Manteiga": 1,
"Café": 1,
}

Utilizando Argumentos Opcionais em Python com Valores Padrão

Em Python, é possível definir argumentos opcionais em uma função atribuindo um valor padrão a um parâmetro. Isso significa que, se nenhum valor for passado para esse parâmetro ao chamar a função, o valor padrão será usado.

Por exemplo:

def saudacao(nome=""):
if nome:
print(f"Olá, {nome}!")
else:
print("Olá, amigo!")

Nesse exemplo, a função saudacao() tem um parâmetro nome com um valor padrão vazio. Se um valor for passado ao chamar a função, esse valor será impresso junto com a saudação “Olá”. Caso nenhum valor seja passado, a saudação padrão será “Olá, amigo!“.

Você também pode alterar o valor padrão de um parâmetro em tempo de execução ao chamar a função. Por exemplo:

saudacao("Maria") # Saída: Olá, Maria!
saudacao() # Saída: Olá, amigo!

Valores Padrão Comuns de Argumentos

Alguns valores padrão de argumentos são comumente usados em funções em Python.

  • None: usado quando um valor padrão não faz sentido. Isso permite que você verifique se um argumento foi fornecido ou não.
  • [] ou {}: usado quando o argumento padrão precisa ser uma lista vazia ou um dicionário vazio, respectivamente.
  • True ou False: usado como padrão em argumentos booleanos quando você deseja que a função seja executada de diferentes maneiras, dependendo do valor passado.
  • 0: usado quando o argumento padrão precisa ser um número zero.
  • Outros valores específicos para representar um valor padrão, como uma string vazia ("") ou um número específico.

Tipos de Dados que Não Devem ser Usados como Argumentos Padrão

Alguns tipos de dados específicos não devem ser usados como argumentos padrão em uma função. Isso ocorre porque eles são mutáveis e podem causar comportamento inesperado quando compartilhados entre chamadas de função.

Os tipos de dados que não devem ser usados como argumentos padrão são:

  • Listas: em vez de usar uma lista como argumento padrão, você pode usar None ou criar uma nova lista vazia dentro da função.
  • Dicionários: em vez de usar um dicionário como argumento padrão, você pode usar None ou criar um novo dicionário vazio dentro da função.

Mensagens de Erro Relacionadas a Argumentos de Entrada

Ao trabalhar com funções e argumentos opcionais em Python, você pode encontrar mensagens de erro relacionadas a argumentos de entrada. Alguns exemplos de mensagens de erro comuns são:

  • TypeError: saudacao() takes 1 positional argument but 2 were given: essa mensagem ocorre quando você chama uma função com um número incorreto de argumentos posicionais (obrigatórios).
  • TypeError: saudacao() got an unexpected keyword argument 'idade': essa mensagem ocorre quando você chama uma função com um argumento de palavra-chave que não é esperado pela função.

Essas mensagens de erro podem ser úteis para debugar seu código e garantir que você esteja chamando suas funções corretamente.


Utilizando args e kwargs

Python também oferece uma maneira de lidar com funções que podem aceitar qualquer número de argumentos ou qualquer número de argumentos de palavras-chave. Isso é feito usando os parâmetros especiais *args e **kwargs.

Funções que Aceitam Qualquer Número de Argumentos

Você pode usar *args como parâmetro em uma função para indicar que ela pode aceitar qualquer número de argumentos posicionais.

Aqui está um exemplo:

def somar(*args):
resultado = 0
for numero in args:
resultado += numero
return resultado

Nesse exemplo, a função somar() recebe uma quantidade indeterminada de argumentos e os soma, retornando o resultado. Você pode chamar essa função com qualquer quantidade de argumentos:

print(somar(1, 2, 3)) # Saída: 6
print(somar(4, 5, 6, 7, 8)) # Saída: 30
print(somar(10)) # Saída: 10

Funções que Aceitam Qualquer Número de Argumentos de Palavras-chave

Da mesma forma, você pode usar **kwargs como parâmetro em uma função para indicar que ela pode aceitar qualquer número de argumentos de palavras-chave.

Aqui está um exemplo:

def imprimir_dicionario(**kwargs):
for chave, valor in kwargs.items():
print(f"{chave}: {valor}")

Nesse exemplo, a função imprimir_dicionario() recebe uma quantidade indeterminada de argumentos de palavras-chave e imprime cada chave e valor. Você pode chamar essa função com qualquer quantidade de argumentos de palavras-chave:

imprimir_dicionario(nome="Maria", idade=30) # Saída: nome: Maria idade: 30
imprimir_dicionario(cidade="São Paulo", estado="SP", pais="Brasil") # Saída: cidade: São Paulo estado: SP pais: Brasil

Conclusão

Ao dominar argumentos opcionais em Python, você será capaz de definir funções mais poderosas e flexíveis. Você aprendeu a diferença entre parâmetros e argumentos, como definir funções com argumentos opcionais e valores padrão, como lidar com erros relacionados a argumentos de entrada e como usar *args e **kwargs para lidar com qualquer número de argumentos e argumentos de palavras-chave.

Agora que você tem um conhecimento mais aprofundado sobre como usar argumentos opcionais em Python, poderá criar funções mais versáteis e reutilizáveis em seus projetos.


Esse foi o nosso tutorial sobre o uso de argumentos opcionais em Python ao definir funções. Esperamos que essas informações tenham sido úteis para você. Se tiver alguma dúvida ou sugestão, fique à vontade para deixar um comentário abaixo.

Não se esqueça de compartilhar este tutorial com seus colegas Pythonistas e continue praticando e explorando as possibilidades dessa linguagem incrível!