Kombination af Positionelle og Navngivne Vilkårlige Argumenter
Overvej en funktion, der beregner den samlede pris for flere varer, hvor du kan angive et vilkårligt antal priser samt valgfrie nøgleord-indstillinger såsom rabatter eller skatter.
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)
Regler for kombination af vilkårlige argumenter
Positionelle vilkårlige argumenter (*args)
*args samler alle ekstra positionelle argumenter i en tuple.
I dette eksempel kan funktionen modtage et vilkårligt antal varepriser uden at skulle definere dem eksplicit.
For eksempel:
calculate_total_cost(500, 250, 100)
Her bliver *prices til (500, 250, 100).
Vilkårlige nøgleordsargumenter (**kwargs)
**kwargs samler alle navngivne (nøgleords-)argumenter i en ordbog.
Dette gør det muligt for funktionen at acceptere yderligere navngivne indstillinger såsom discount eller tax, selvom de ikke var foruddefinerede.
For eksempel:
calculate_total_cost(1000, 500, discount=10, tax=5)
Her bliver **settings til {'discount': 10, 'tax': 5}.
Kombination af begge
Du kan bruge både *args og **kwargs i den samme funktion for at opnå maksimal fleksibilitet — så du kan håndtere et vilkårligt antal positionelle værdier og enhver kombination af navngivne indstillinger.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
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
Kombination af Positionelle og Navngivne Vilkårlige Argumenter
Stryg for at vise menuen
Overvej en funktion, der beregner den samlede pris for flere varer, hvor du kan angive et vilkårligt antal priser samt valgfrie nøgleord-indstillinger såsom rabatter eller skatter.
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)
Regler for kombination af vilkårlige argumenter
Positionelle vilkårlige argumenter (*args)
*args samler alle ekstra positionelle argumenter i en tuple.
I dette eksempel kan funktionen modtage et vilkårligt antal varepriser uden at skulle definere dem eksplicit.
For eksempel:
calculate_total_cost(500, 250, 100)
Her bliver *prices til (500, 250, 100).
Vilkårlige nøgleordsargumenter (**kwargs)
**kwargs samler alle navngivne (nøgleords-)argumenter i en ordbog.
Dette gør det muligt for funktionen at acceptere yderligere navngivne indstillinger såsom discount eller tax, selvom de ikke var foruddefinerede.
For eksempel:
calculate_total_cost(1000, 500, discount=10, tax=5)
Her bliver **settings til {'discount': 10, 'tax': 5}.
Kombination af begge
Du kan bruge både *args og **kwargs i den samme funktion for at opnå maksimal fleksibilitet — så du kan håndtere et vilkårligt antal positionelle værdier og enhver kombination af navngivne indstillinger.
Tak for dine kommentarer!