Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Argumentos Posicionais Arbitrários | Argumentos Arbitrários
Tutorial de Funções em Python
Seção 3. Capítulo 1
single

single

bookArgumentos Posicionais Arbitrários

Deslize para mostrar o menu

Você já conhece argumentos posicionais e opcionais. Mas quando uma função pode receber muitas entradas ou você não sabe quantas serão antecipadamente, é possível usar argumentos posicionais arbitrários. Eles permitem que uma função aceite qualquer quantidade de valores.

Note
Nota

Cada argumento pode ser qualquer estrutura de dados (lista, dicionário, etc.). Argumentos arbitrários permitem passar quantos desses objetos forem necessários.

Para definir argumentos posicionais arbitrários, coloque um asterisco * antes do nome do parâmetro. Exemplo:

12345678
# Define function with arbitrary positional arguments named values def calculate_sum(*values): return sum(values) # Test the function using different number of arguments print(calculate_sum(1, 2, 3)) print(calculate_sum(1, 2, 3, 4)) print(calculate_sum(1, 2, 3, 4, 5))
copy

Aqui, *values coleta todos os argumentos posicionais passados em uma tupla. Dentro da função, utiliza-se o nome da variável sem o *. O resultado está correto independentemente de quantos argumentos forem fornecidos.

Note
Nota

Embora qualquer nome funcione, a forma mais comum e legível é *args.

1234567891011121314
def example_function(*args): print(type(args)) print(args) for arg in args: print(arg) print("Call without arguments:") example_function() print("\nCall with one argument:") example_function(1) print("\nCall with multiple arguments:") example_function(1, 2, 3, 'hello', [4, 5, 6])
copy

Como mostrado:

  • Sem argumentos → args é ();
  • Um argumento → (1,);
  • Vários argumentos → todos os valores aparecem em uma tupla, por exemplo, (1, 2, 3, 'hello', [4, 5, 6]).

*args se comporta como qualquer outra tupla, oferecendo total flexibilidade ao lidar com múltiplas entradas.

Como *args é apenas uma tupla, é possível aplicar qualquer lógica aos seus valores – incluindo condicionais. Por exemplo, após somar todos os preços, é possível verificar o total e aplicar regras diferentes dependendo do resultado.

Tarefa

Deslize para começar a programar

Implemente uma função calculate_total que calcula o preço total dos itens em um carrinho, aplicando descontos com base no valor total.

  1. Utilize argumentos posicionais arbitrários chamados prices na função calculate_total.
  2. Se nenhum argumento for fornecido, retorne "Your cart is empty.".
  3. Os descontos são mutuamente exclusivos – aplique apenas o maior desconto aplicável:
    • Aplique um desconto de 20% se o total for $200 ou mais.
    • Aplique um desconto de 10% se o total for $100 ou mais.
    • Não aplique desconto caso contrário.
  4. Retorne o total final como uma string formatada: "Final total: $X.XX".

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 1
single

single

Pergunte à IA

expand

Pergunte à IA

ChatGPT

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

some-alt