single
Arguments Positionnels Arbitraires
Glissez pour afficher le menu
Vous connaissez déjà les arguments positionnels et optionnels. Mais lorsqu'une fonction peut recevoir de nombreux paramètres ou que vous ne les connaissez pas à l'avance, vous pouvez utiliser des arguments positionnels arbitraires. Ils permettent à une fonction d'accepter un nombre quelconque de valeurs.
Chaque argument peut être n'importe quelle structure de données (liste, dictionnaire, etc.). Les arguments arbitraires permettent de transmettre autant d'objets de ce type que nécessaire.
Pour définir des arguments positionnels arbitraires, placez un astérisque * devant le nom du paramètre. Exemple :
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))
Ici, *values collecte tous les arguments positionnels passés dans un tuple. À l'intérieur de la fonction, le nom de la variable s'utilise sans *. Le résultat est correct quel que soit le nombre d'arguments fournis.
Bien que n'importe quel nom fonctionne, la forme courante et lisible est *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])
Comme illustré :
- Aucun argument →
argsest(); - Un argument →
(1,); - Plusieurs arguments → toutes les valeurs apparaissent dans un tuple, par exemple
(1, 2, 3, 'hello', [4, 5, 6]).
*args se comporte comme n'importe quel autre tuple, offrant une flexibilité totale pour gérer de nombreux paramètres.
Puisque *args est simplement un tuple, il est possible d'appliquer n'importe quelle logique à ses valeurs – y compris des conditions. Par exemple, après avoir additionné tous les prix, il est possible de vérifier le total et d'appliquer différentes règles selon le résultat.
Glissez pour commencer à coder
Implémenter une fonction calculate_total qui calcule le prix total des articles dans un panier, en appliquant des réductions basées sur le montant total.
- Utiliser des arguments positionnels arbitraires nommés prices dans la fonction
calculate_total. - Si aucun argument n'est fourni, retourner
"Your cart is empty.". - Les réductions sont mutuellement exclusives – appliquer uniquement la plus élevée applicable :
- Appliquer une réduction de 20 % si le total est $200 ou plus.
- Appliquer une réduction de 10 % si le total est $100 ou plus.
- N'appliquer aucune réduction sinon.
- Retourner le total final sous forme de chaîne formatée :
"Final total: $X.XX".
Solution
Merci pour vos commentaires !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion