single
Argumentos Posicionales Arbitrarios
Desliza para mostrar el menú
Ya conoces los argumentos posicionales y opcionales. Pero cuando una función puede recibir muchas entradas o no las conoces de antemano, puedes usar argumentos posicionales arbitrarios. Permiten que una función acepte cualquier cantidad de valores.
Cada argumento puede ser cualquier estructura de datos (lista, diccionario, etc.). Los argumentos arbitrarios permiten pasar tantos objetos de este tipo como sea necesario.
Para definir argumentos posicionales arbitrarios, coloca un asterisco * antes del nombre del parámetro. Ejemplo:
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))
Aquí, *values recopila todos los argumentos posicionales pasados en una tupla. Dentro de la función, se utiliza el nombre de la variable sin *. El resultado es correcto sin importar cuántos argumentos se proporcionen.
Aunque cualquier nombre funciona, la forma común y legible es *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 se muestra:
- Sin argumentos →
argses(); - Un argumento →
(1,); - Varios argumentos → todos los valores aparecen en una tupla, por ejemplo,
(1, 2, 3, 'hello', [4, 5, 6]).
*args se comporta como cualquier otra tupla, proporcionando flexibilidad total al manejar múltiples entradas.
Dado que *args es simplemente una tupla, se puede aplicar cualquier lógica a sus valores, incluyendo condicionales. Por ejemplo, después de sumar todos los precios, es posible comprobar el total y aplicar diferentes reglas según el resultado.
Desliza para comenzar a programar
Implementar una función calculate_total que calcule el precio total de los artículos en un carrito, aplicando descuentos basados en el monto total.
- Utilizar argumentos posicionales arbitrarios llamados prices en la función
calculate_total. - Si no se proporcionan argumentos, devolver
"Your cart is empty.". - Los descuentos son mutuamente excluyentes – aplicar solo el mayor descuento aplicable:
- Aplicar un 20% de descuento si el total es $200 o más.
- Aplicar un 10% de descuento si el total es $100 o más.
- No aplicar descuento en otros casos.
- Devolver el total final como una cadena formateada:
"Final total: $X.XX".
Solución
¡Gracias por tus comentarios!
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla