Argumentos Arbitrários
Você já explorou argumentos posicionais e opcionais. Mas e se uma função tiver muitos argumentos ou se você não souber todos eles com antecedência? É possível lidar com isso utilizando argumentos arbitrários (argumentos de comprimento variável). Esses argumentos permitem que uma função aceite qualquer quantidade de entradas, tornando-a flexível e adaptável.
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))
No código acima, o *
indica que a variável values
pode conter múltiplos argumentos arbitrários, que são tratados como uma tupla. A função embutida sum()
é então utilizada para calcular o total. O resultado está correto para todos os exemplos, e não é necessário especificar explicitamente o número de argumentos. Nota: utilize este argumento pelo nome, sem o *
, dentro do corpo da função.
Para definir uma tupla de argumentos arbitrários, basta utilizar *
antes do nome do argumento. No entanto, é recomendado utilizar a construção *args
. Isso melhora a interpretabilidade e a legibilidade do código.
123456789101112131415161718def 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])
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 manipular os valores da mesma forma que qualquer outra tupla em Python.
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.
- Utilize argumentos arbitrários chamados prices na função
calculate_total
. - Se nenhum argumento for fornecido, retorne
"Your cart is empty."
. - Aplique um desconto de 20% se o total for $200 ou mais.
- Aplique um desconto de 10% se o total for $100 ou mais.
Solução
Obrigado pelo seu feedback!
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 4.35
Argumentos Arbitrários
Deslize para mostrar o menu
Você já explorou argumentos posicionais e opcionais. Mas e se uma função tiver muitos argumentos ou se você não souber todos eles com antecedência? É possível lidar com isso utilizando argumentos arbitrários (argumentos de comprimento variável). Esses argumentos permitem que uma função aceite qualquer quantidade de entradas, tornando-a flexível e adaptável.
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))
No código acima, o *
indica que a variável values
pode conter múltiplos argumentos arbitrários, que são tratados como uma tupla. A função embutida sum()
é então utilizada para calcular o total. O resultado está correto para todos os exemplos, e não é necessário especificar explicitamente o número de argumentos. Nota: utilize este argumento pelo nome, sem o *
, dentro do corpo da função.
Para definir uma tupla de argumentos arbitrários, basta utilizar *
antes do nome do argumento. No entanto, é recomendado utilizar a construção *args
. Isso melhora a interpretabilidade e a legibilidade do código.
123456789101112131415161718def 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])
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 manipular os valores da mesma forma que qualquer outra tupla em Python.
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.
- Utilize argumentos arbitrários chamados prices na função
calculate_total
. - Se nenhum argumento for fornecido, retorne
"Your cart is empty."
. - Aplique um desconto de 20% se o total for $200 ou mais.
- Aplique um desconto de 10% se o total for $100 ou mais.
Solução
Obrigado pelo seu feedback!
single