Kombinasjon av Posisjonelle og Navngitte Vilkårlige Argumenter
Tenk deg en funksjon som beregner den totale kostnaden for flere varer, samtidig som du kan sende inn et vilkårlig antall priser og valgfrie nøkkelordinnstillinger som rabatter eller avgifter.
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 å kombinere vilkårlige argumenter
Posisjonelle vilkårlige argumenter (*args)
*args samler alle ekstra posisjonelle argumenter i en tuple.
I dette eksempelet kan funksjonen ta imot et vilkårlig antall varepriser uten å måtte definere dem eksplisitt.
For eksempel:
calculate_total_cost(500, 250, 100)
Her blir *prices til (500, 250, 100).
Vilkårlige nøkkelordargumenter (**kwargs)
**kwargs samler alle navngitte (nøkkelord) argumenter i en ordbok.
Dette gjør at funksjonen kan ta imot ekstra navngitte innstillinger som discount eller tax, selv om de ikke var forhåndsdefinert.
For eksempel:
calculate_total_cost(1000, 500, discount=10, tax=5)
Her blir **settings til {'discount': 10, 'tax': 5}.
Kombinere begge
Du kan bruke både *args og **kwargs i samme funksjon for å oppnå maksimal fleksibilitet — slik at du kan håndtere et vilkårlig antall posisjonelle verdier og enhver kombinasjon av navngitte innstillinger.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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
Kombinasjon av Posisjonelle og Navngitte Vilkårlige Argumenter
Sveip for å vise menyen
Tenk deg en funksjon som beregner den totale kostnaden for flere varer, samtidig som du kan sende inn et vilkårlig antall priser og valgfrie nøkkelordinnstillinger som rabatter eller avgifter.
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 å kombinere vilkårlige argumenter
Posisjonelle vilkårlige argumenter (*args)
*args samler alle ekstra posisjonelle argumenter i en tuple.
I dette eksempelet kan funksjonen ta imot et vilkårlig antall varepriser uten å måtte definere dem eksplisitt.
For eksempel:
calculate_total_cost(500, 250, 100)
Her blir *prices til (500, 250, 100).
Vilkårlige nøkkelordargumenter (**kwargs)
**kwargs samler alle navngitte (nøkkelord) argumenter i en ordbok.
Dette gjør at funksjonen kan ta imot ekstra navngitte innstillinger som discount eller tax, selv om de ikke var forhåndsdefinert.
For eksempel:
calculate_total_cost(1000, 500, discount=10, tax=5)
Her blir **settings til {'discount': 10, 'tax': 5}.
Kombinere begge
Du kan bruke både *args og **kwargs i samme funksjon for å oppnå maksimal fleksibilitet — slik at du kan håndtere et vilkårlig antall posisjonelle verdier og enhver kombinasjon av navngitte innstillinger.
Takk for tilbakemeldingene dine!