Paikallisten ja Avainsanojen Mielivaltaisten Argumenttien Yhdistelmä
Tarkastellaan funktiota, joka laskee useiden tuotteiden kokonaiskustannuksen ja mahdollistaa minkä tahansa määrän hintoja sekä valinnaisia avainsana-asetuksia, kuten alennuksia tai veroja.
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)
Säännöt mielivaltaisten argumenttien yhdistämiseen
Sijaintiin perustuvat mielivaltaiset argumentit (*args)
*args kerää kaikki ylimääräiset sijaintiin perustuvat argumentit tupleen.
Tässä esimerkissä funktio voi ottaa minkä tahansa määrän tuotehintoja ilman, että niitä tarvitsee määritellä erikseen.
Esimerkiksi:
calculate_total_cost(500, 250, 100)
Tässä *prices on (500, 250, 100).
Avainsanalliset mielivaltaiset argumentit (**kwargs)
**kwargs kerää kaikki nimetyt (avainsana) argumentit sanakirjaan.
Tämän ansiosta funktio voi ottaa vastaan ylimääräisiä nimettyjä asetuksia, kuten discount tai tax, vaikka niitä ei olisi ennalta määritelty.
Esimerkiksi:
calculate_total_cost(1000, 500, discount=10, tax=5)
Tässä **settings on {'discount': 10, 'tax': 5}.
Molempien yhdistäminen
Voit käyttää sekä *args että **kwargs samassa funktiossa saavuttaaksesi maksimaalisen joustavuuden — mahdollistaen minkä tahansa määrän sijoitusarvoja ja minkä tahansa yhdistelmän nimettyjä asetuksia.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
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
Paikallisten ja Avainsanojen Mielivaltaisten Argumenttien Yhdistelmä
Pyyhkäise näyttääksesi valikon
Tarkastellaan funktiota, joka laskee useiden tuotteiden kokonaiskustannuksen ja mahdollistaa minkä tahansa määrän hintoja sekä valinnaisia avainsana-asetuksia, kuten alennuksia tai veroja.
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)
Säännöt mielivaltaisten argumenttien yhdistämiseen
Sijaintiin perustuvat mielivaltaiset argumentit (*args)
*args kerää kaikki ylimääräiset sijaintiin perustuvat argumentit tupleen.
Tässä esimerkissä funktio voi ottaa minkä tahansa määrän tuotehintoja ilman, että niitä tarvitsee määritellä erikseen.
Esimerkiksi:
calculate_total_cost(500, 250, 100)
Tässä *prices on (500, 250, 100).
Avainsanalliset mielivaltaiset argumentit (**kwargs)
**kwargs kerää kaikki nimetyt (avainsana) argumentit sanakirjaan.
Tämän ansiosta funktio voi ottaa vastaan ylimääräisiä nimettyjä asetuksia, kuten discount tai tax, vaikka niitä ei olisi ennalta määritelty.
Esimerkiksi:
calculate_total_cost(1000, 500, discount=10, tax=5)
Tässä **settings on {'discount': 10, 'tax': 5}.
Molempien yhdistäminen
Voit käyttää sekä *args että **kwargs samassa funktiossa saavuttaaksesi maksimaalisen joustavuuden — mahdollistaen minkä tahansa määrän sijoitusarvoja ja minkä tahansa yhdistelmän nimettyjä asetuksia.
Kiitos palautteestasi!