Argumentos 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.
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))
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.
Embora qualquer nome funcione, a forma comum e legível é *args.
1234567891011121314def 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])
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.
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 posicionais 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.17
Argumentos 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.
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))
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.
Embora qualquer nome funcione, a forma comum e legível é *args.
1234567891011121314def 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])
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.
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 posicionais 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