Combinatie van Positionele en Sleutelwoord Willekeurige Argumenten
Beschouw een functie die de totale kosten van meerdere items berekent, waarbij je een willekeurig aantal prijzen en optionele sleutelwoordinstellingen zoals kortingen of belastingen kunt doorgeven.
12345678910111213141516171819202122232425def calculate_total_cost(*prices, **settings): subtotal = sum(prices) discount = settings.get("discount", 0) tax = settings.get("tax", 0) discount_amount = subtotal * (discount / 100) taxed_amount = (subtotal - discount_amount) * (1 + tax / 100) print(f"Subtotal: ${subtotal:.2f}") if discount > 0: print(f"Discount: {discount}% (-${discount_amount:.2f})") else: print("No discount applied.") if tax > 0: print(f"Tax: {tax}% (+${taxed_amount - (subtotal - discount_amount):.2f})") print(f"Final total: ${taxed_amount:.2f}") print() # Examples of using the function calculate_total_cost(1000, 250, 50) calculate_total_cost(1200, 800, discount=10) calculate_total_cost(500, 750, 250, discount=5, tax=8)
Regels voor het combineren van willekeurige argumenten
Positionele willekeurige argumenten (*args)
*args verzamelt alle extra positionele argumenten in een tuple.
In dit voorbeeld kan de functie een willekeurig aantal itemprijzen accepteren zonder deze expliciet te hoeven definiëren.
Bijvoorbeeld:
calculate_total_cost(500, 250, 100)
Hier wordt *prices (500, 250, 100).
Willekeurige sleutelwoordargumenten (**kwargs)
**kwargs verzamelt alle benoemde (sleutelwoord) argumenten in een dictionary.
Hierdoor kan de functie extra benoemde instellingen accepteren, zoals discount of tax, zelfs als deze niet vooraf zijn gedefinieerd.
Bijvoorbeeld:
calculate_total_cost(1000, 500, discount=10, tax=5)
Hier wordt **settings {'discount': 10, 'tax': 5}.
Beide combineren
Je kunt zowel *args als **kwargs in dezelfde functie gebruiken voor maximale flexibiliteit — zodat je elk aantal positionele waarden en elke combinatie van benoemde instellingen kunt verwerken.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Can you explain how the function handles both discounts and taxes together?
What happens if I don't provide any keyword arguments?
Can you show more examples of calling this function with different arguments?
Awesome!
Completion rate improved to 4.17
Combinatie van Positionele en Sleutelwoord Willekeurige Argumenten
Veeg om het menu te tonen
Beschouw een functie die de totale kosten van meerdere items berekent, waarbij je een willekeurig aantal prijzen en optionele sleutelwoordinstellingen zoals kortingen of belastingen kunt doorgeven.
12345678910111213141516171819202122232425def calculate_total_cost(*prices, **settings): subtotal = sum(prices) discount = settings.get("discount", 0) tax = settings.get("tax", 0) discount_amount = subtotal * (discount / 100) taxed_amount = (subtotal - discount_amount) * (1 + tax / 100) print(f"Subtotal: ${subtotal:.2f}") if discount > 0: print(f"Discount: {discount}% (-${discount_amount:.2f})") else: print("No discount applied.") if tax > 0: print(f"Tax: {tax}% (+${taxed_amount - (subtotal - discount_amount):.2f})") print(f"Final total: ${taxed_amount:.2f}") print() # Examples of using the function calculate_total_cost(1000, 250, 50) calculate_total_cost(1200, 800, discount=10) calculate_total_cost(500, 750, 250, discount=5, tax=8)
Regels voor het combineren van willekeurige argumenten
Positionele willekeurige argumenten (*args)
*args verzamelt alle extra positionele argumenten in een tuple.
In dit voorbeeld kan de functie een willekeurig aantal itemprijzen accepteren zonder deze expliciet te hoeven definiëren.
Bijvoorbeeld:
calculate_total_cost(500, 250, 100)
Hier wordt *prices (500, 250, 100).
Willekeurige sleutelwoordargumenten (**kwargs)
**kwargs verzamelt alle benoemde (sleutelwoord) argumenten in een dictionary.
Hierdoor kan de functie extra benoemde instellingen accepteren, zoals discount of tax, zelfs als deze niet vooraf zijn gedefinieerd.
Bijvoorbeeld:
calculate_total_cost(1000, 500, discount=10, tax=5)
Hier wordt **settings {'discount': 10, 'tax': 5}.
Beide combineren
Je kunt zowel *args als **kwargs in dezelfde functie gebruiken voor maximale flexibiliteit — zodat je elk aantal positionele waarden en elke combinatie van benoemde instellingen kunt verwerken.
Bedankt voor je feedback!