Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Combinação de Argumentos Arbitrários Posicionais e Nomeados | Argumentos Arbitrários
Tutorial de Funções em Python

bookCombinação de Argumentos Arbitrários Posicionais e Nomeados

Considere uma função que calcula o custo total de vários itens, permitindo que você passe qualquer quantidade de preços e configurações opcionais por palavra-chave, como descontos ou impostos.

12345678910111213141516171819202122232425
def calculate_total_cost(*prices, **settings): subtotal = sum(prices) discount = settings.get("discount", 0) tax = settings.get("tax", 0) discount_amount = subtotal * (discount / 100) taxed_amount = (subtotal - discount_amount) * (1 + tax / 100) print(f"Subtotal: ${subtotal:.2f}") if discount > 0: print(f"Discount: {discount}% (-${discount_amount:.2f})") else: print("No discount applied.") if tax > 0: print(f"Tax: {tax}% (+${taxed_amount - (subtotal - discount_amount):.2f})") print(f"Final total: ${taxed_amount:.2f}") print() # Examples of using the function calculate_total_cost(1000, 250, 50) calculate_total_cost(1200, 800, discount=10) calculate_total_cost(500, 750, 250, discount=5, tax=8)
copy

Regras para Combinação de Argumentos Arbitrários

Argumentos Posicionais Arbitrários (*args)

*args coleta todos os argumentos posicionais extras em uma tupla. Neste exemplo, a função pode receber qualquer quantidade de preços de itens sem precisar defini-los explicitamente.

Por exemplo:

calculate_total_cost(500, 250, 100)

Aqui, *prices se torna (500, 250, 100).

Argumentos Arbitrários Nomeados (**kwargs)

**kwargs coleta todos os argumentos nomeados (por palavra-chave) em um dicionário. Isso permite que a função aceite configurações nomeadas adicionais, como discount ou tax, mesmo que não tenham sido predefinidas.

Por exemplo:

calculate_total_cost(1000, 500, discount=10, tax=5)

Aqui, **settings se torna {'discount': 10, 'tax': 5}.

Combinando Ambos

É possível usar tanto *args quanto **kwargs na mesma função para obter flexibilidade máxima — permitindo lidar com qualquer quantidade de valores posicionais e qualquer combinação de configurações nomeadas.

question mark

Qual é a combinação de argumentos arbitrários posicionais e nomeados em funções?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 3

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Awesome!

Completion rate improved to 4.17

bookCombinação de Argumentos Arbitrários Posicionais e Nomeados

Deslize para mostrar o menu

Considere uma função que calcula o custo total de vários itens, permitindo que você passe qualquer quantidade de preços e configurações opcionais por palavra-chave, como descontos ou impostos.

12345678910111213141516171819202122232425
def calculate_total_cost(*prices, **settings): subtotal = sum(prices) discount = settings.get("discount", 0) tax = settings.get("tax", 0) discount_amount = subtotal * (discount / 100) taxed_amount = (subtotal - discount_amount) * (1 + tax / 100) print(f"Subtotal: ${subtotal:.2f}") if discount > 0: print(f"Discount: {discount}% (-${discount_amount:.2f})") else: print("No discount applied.") if tax > 0: print(f"Tax: {tax}% (+${taxed_amount - (subtotal - discount_amount):.2f})") print(f"Final total: ${taxed_amount:.2f}") print() # Examples of using the function calculate_total_cost(1000, 250, 50) calculate_total_cost(1200, 800, discount=10) calculate_total_cost(500, 750, 250, discount=5, tax=8)
copy

Regras para Combinação de Argumentos Arbitrários

Argumentos Posicionais Arbitrários (*args)

*args coleta todos os argumentos posicionais extras em uma tupla. Neste exemplo, a função pode receber qualquer quantidade de preços de itens sem precisar defini-los explicitamente.

Por exemplo:

calculate_total_cost(500, 250, 100)

Aqui, *prices se torna (500, 250, 100).

Argumentos Arbitrários Nomeados (**kwargs)

**kwargs coleta todos os argumentos nomeados (por palavra-chave) em um dicionário. Isso permite que a função aceite configurações nomeadas adicionais, como discount ou tax, mesmo que não tenham sido predefinidas.

Por exemplo:

calculate_total_cost(1000, 500, discount=10, tax=5)

Aqui, **settings se torna {'discount': 10, 'tax': 5}.

Combinando Ambos

É possível usar tanto *args quanto **kwargs na mesma função para obter flexibilidade máxima — permitindo lidar com qualquer quantidade de valores posicionais e qualquer combinação de configurações nomeadas.

question mark

Qual é a combinação de argumentos arbitrários posicionais e nomeados em funções?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 3
some-alt