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

bookArgumentos Posicionais Arbitrários

Você já conhece argumentos posicionais e opcionais. Porém, quando uma função pode receber muitas entradas ou você não sabe quantas serão antecipadamente, é possível utilizar 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 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.

Tarefa

Swipe to start coding

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. Aplique um desconto de 20% se o total for $200 ou mais.
  4. Aplique um desconto de 10% se o total for $100 ou mais.

Solução

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

close

bookArgumentos Posicionais Arbitrários

Deslize para mostrar o menu

Você já conhece argumentos posicionais e opcionais. Porém, quando uma função pode receber muitas entradas ou você não sabe quantas serão antecipadamente, é possível utilizar 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 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.

Tarefa

Swipe to start coding

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. Aplique um desconto de 20% se o total for $200 ou mais.
  4. Aplique um desconto de 10% se o total for $100 ou mais.

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

some-alt