Kombination von Positionsabhängigen und Benannten Beliebigen Argumenten
Betrachten Sie eine Funktion, die die Gesamtkosten mehrerer Artikel berechnet und es ermöglicht, eine beliebige Anzahl von Preisen sowie optionale Schlüsselwort-Einstellungen wie Rabatte oder Steuern zu übergeben.
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)
Regeln für die Kombination von beliebigen Argumenten
Positionsabhängige beliebige Argumente (*args)
*args sammelt alle zusätzlichen positionsabhängigen Argumente in einem Tupel.
In diesem Beispiel kann die Funktion eine beliebige Anzahl von Artikelpreisen aufnehmen, ohne diese explizit definieren zu müssen.
Beispiel:
calculate_total_cost(500, 250, 100)
Hier wird *prices zu (500, 250, 100).
Beliebige Schlüsselwortargumente (**kwargs)
**kwargs sammelt alle benannten (Schlüsselwort-)Argumente in einem Dictionary.
Dies ermöglicht es der Funktion, zusätzliche benannte Einstellungen wie discount oder tax zu akzeptieren, auch wenn diese nicht vordefiniert wurden.
Beispiel:
calculate_total_cost(1000, 500, discount=10, tax=5)
Hier wird **settings zu {'discount': 10, 'tax': 5}.
Kombination beider Varianten
Sie können sowohl *args als auch **kwargs in derselben Funktion verwenden, um maximale Flexibilität zu erreichen — so können beliebig viele Positionswerte und beliebige Kombinationen benannter Einstellungen verarbeitet werden.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
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 von Positionsabhängigen und Benannten Beliebigen Argumenten
Swipe um das Menü anzuzeigen
Betrachten Sie eine Funktion, die die Gesamtkosten mehrerer Artikel berechnet und es ermöglicht, eine beliebige Anzahl von Preisen sowie optionale Schlüsselwort-Einstellungen wie Rabatte oder Steuern zu übergeben.
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)
Regeln für die Kombination von beliebigen Argumenten
Positionsabhängige beliebige Argumente (*args)
*args sammelt alle zusätzlichen positionsabhängigen Argumente in einem Tupel.
In diesem Beispiel kann die Funktion eine beliebige Anzahl von Artikelpreisen aufnehmen, ohne diese explizit definieren zu müssen.
Beispiel:
calculate_total_cost(500, 250, 100)
Hier wird *prices zu (500, 250, 100).
Beliebige Schlüsselwortargumente (**kwargs)
**kwargs sammelt alle benannten (Schlüsselwort-)Argumente in einem Dictionary.
Dies ermöglicht es der Funktion, zusätzliche benannte Einstellungen wie discount oder tax zu akzeptieren, auch wenn diese nicht vordefiniert wurden.
Beispiel:
calculate_total_cost(1000, 500, discount=10, tax=5)
Hier wird **settings zu {'discount': 10, 'tax': 5}.
Kombination beider Varianten
Sie können sowohl *args als auch **kwargs in derselben Funktion verwenden, um maximale Flexibilität zu erreichen — so können beliebig viele Positionswerte und beliebige Kombinationen benannter Einstellungen verarbeitet werden.
Danke für Ihr Feedback!