Kombination av Positionella och Nyckelords Godtyckliga Argument
Tänk dig en funktion som beräknar den totala kostnaden för flera artiklar och låter dig ange valfritt antal priser samt valfria nyckelordsinställningar såsom rabatt eller moms.
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 för att kombinera godtyckliga argument
Positionella godtyckliga argument (*args)
*args samlar alla extra positionella argument i en tuple.
I detta exempel kan funktionen ta emot valfritt antal artikelpriser utan att behöva definiera dem uttryckligen.
Till exempel:
calculate_total_cost(500, 250, 100)
Här blir *prices till (500, 250, 100).
Godtyckliga nyckelordsargument (**kwargs)
**kwargs samlar alla namngivna (nyckelords-)argument i en ordbok.
Detta gör att funktionen kan ta emot ytterligare namngivna inställningar som discount eller tax, även om de inte var fördefinierade.
Till exempel:
calculate_total_cost(1000, 500, discount=10, tax=5)
Här blir **settings {'discount': 10, 'tax': 5}.
Kombinera båda
Du kan använda både *args och **kwargs i samma funktion för att uppnå maximal flexibilitet — vilket gör att du kan hantera valfritt antal positionella värden och valfri kombination av namngivna inställningar.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
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 av Positionella och Nyckelords Godtyckliga Argument
Svep för att visa menyn
Tänk dig en funktion som beräknar den totala kostnaden för flera artiklar och låter dig ange valfritt antal priser samt valfria nyckelordsinställningar såsom rabatt eller moms.
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 för att kombinera godtyckliga argument
Positionella godtyckliga argument (*args)
*args samlar alla extra positionella argument i en tuple.
I detta exempel kan funktionen ta emot valfritt antal artikelpriser utan att behöva definiera dem uttryckligen.
Till exempel:
calculate_total_cost(500, 250, 100)
Här blir *prices till (500, 250, 100).
Godtyckliga nyckelordsargument (**kwargs)
**kwargs samlar alla namngivna (nyckelords-)argument i en ordbok.
Detta gör att funktionen kan ta emot ytterligare namngivna inställningar som discount eller tax, även om de inte var fördefinierade.
Till exempel:
calculate_total_cost(1000, 500, discount=10, tax=5)
Här blir **settings {'discount': 10, 'tax': 5}.
Kombinera båda
Du kan använda både *args och **kwargs i samma funktion för att uppnå maximal flexibilitet — vilket gör att du kan hantera valfritt antal positionella värden och valfri kombination av namngivna inställningar.
Tack för dina kommentarer!