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

bookArgumentos Arbitrários

Já exploramos os argumentos posicionais e opcionais de funções. No entanto, o que fazer quando há muitos argumentos ou quando não se sabe ao certo todos os argumentos que devem ser passados para uma função? Esse problema pode ser resolvido utilizando argumentos arbitrários (argumentos de comprimento variável). Esses argumentos permitem que uma função aceite um número indefinido de argumentos. Isso é especialmente útil ao definir uma função que pode receber uma quantidade variável de valores de entrada sem especificar previamente o número exato de argumentos.

Note
Nota

Lembre-se de que cada argumento pode ser uma estrutura de dados, como uma lista ou dicionário. É possível passar uma quantidade arbitrária dessas estruturas utilizando argumentos arbitrários.

Em Python, é possível definir argumentos arbitrários como um único argumento posicional, colocando um asterisco * antes do nome do argumento. Veja um exemplo:

12345678
# Define function with arbitrary 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

No código acima, utilizamos * para declarar que a variável values contém vários argumentos arbitrários e é interpretada como uma tupla. Em seguida, usamos a função embutida sum para calcular a soma. Podemos ver que o resultado está correto para todos os exemplos, e não precisamos especificar diretamente o número de argumentos. Observação: utilizamos este argumento pelo nome, sem o *, dentro do corpo da função.

Note
Observação

Para definir uma tupla de argumentos arbitrários, basta usar * antes do nome do argumento. No entanto, é recomendado utilizar a construção *args. Isso melhora a interpretabilidade e a legibilidade do código.

123456789101112131415161718
def example_function(*args): # Print the type of args print(f'Type of args: {type(args)}') # Print the whole tuple print(f'Args tuple: {args}') # Iterate over the tuple for arg in args: print(arg) # Call the function without any arguments print("Call without arguments:") example_function() # Call the function with one argument print("\nCall with one argument:") example_function(1) # Call the function with multiple arguments print("\nCall with multiple arguments:") example_function(1, 2, 3, 'hello', [4, 5, 6])
copy

Como pode ser observado nos resultados:

  • Quando a função é chamada sem argumentos, args será uma tupla vazia ().
  • Quando a função é chamada com um argumento, args será uma tupla com um elemento (1,).
  • Quando a função é chamada com múltiplos argumentos, todos eles são armazenados na tupla, por exemplo (1, 2, 3, 'hello', [4, 5, 6]).

Com *args, é possível trabalhar com os valores da mesma forma que com qualquer outra tupla em Python.

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 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

Suggested prompts:

Can you explain the difference between *args and **kwargs?

How do I use *args with other types of function arguments?

Can you give more examples of when to use *args?

close

Awesome!

Completion rate improved to 4.35

bookArgumentos Arbitrários

Deslize para mostrar o menu

Já exploramos os argumentos posicionais e opcionais de funções. No entanto, o que fazer quando há muitos argumentos ou quando não se sabe ao certo todos os argumentos que devem ser passados para uma função? Esse problema pode ser resolvido utilizando argumentos arbitrários (argumentos de comprimento variável). Esses argumentos permitem que uma função aceite um número indefinido de argumentos. Isso é especialmente útil ao definir uma função que pode receber uma quantidade variável de valores de entrada sem especificar previamente o número exato de argumentos.

Note
Nota

Lembre-se de que cada argumento pode ser uma estrutura de dados, como uma lista ou dicionário. É possível passar uma quantidade arbitrária dessas estruturas utilizando argumentos arbitrários.

Em Python, é possível definir argumentos arbitrários como um único argumento posicional, colocando um asterisco * antes do nome do argumento. Veja um exemplo:

12345678
# Define function with arbitrary 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

No código acima, utilizamos * para declarar que a variável values contém vários argumentos arbitrários e é interpretada como uma tupla. Em seguida, usamos a função embutida sum para calcular a soma. Podemos ver que o resultado está correto para todos os exemplos, e não precisamos especificar diretamente o número de argumentos. Observação: utilizamos este argumento pelo nome, sem o *, dentro do corpo da função.

Note
Observação

Para definir uma tupla de argumentos arbitrários, basta usar * antes do nome do argumento. No entanto, é recomendado utilizar a construção *args. Isso melhora a interpretabilidade e a legibilidade do código.

123456789101112131415161718
def example_function(*args): # Print the type of args print(f'Type of args: {type(args)}') # Print the whole tuple print(f'Args tuple: {args}') # Iterate over the tuple for arg in args: print(arg) # Call the function without any arguments print("Call without arguments:") example_function() # Call the function with one argument print("\nCall with one argument:") example_function(1) # Call the function with multiple arguments print("\nCall with multiple arguments:") example_function(1, 2, 3, 'hello', [4, 5, 6])
copy

Como pode ser observado nos resultados:

  • Quando a função é chamada sem argumentos, args será uma tupla vazia ().
  • Quando a função é chamada com um argumento, args será uma tupla com um elemento (1,).
  • Quando a função é chamada com múltiplos argumentos, todos eles são armazenados na tupla, por exemplo (1, 2, 3, 'hello', [4, 5, 6]).

Com *args, é possível trabalhar com os valores da mesma forma que com qualquer outra tupla em Python.

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 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