Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Combinatie van Positionele en Sleutelwoord Willekeurige Argumenten | Willekeurige Argumenten
Python Functies Tutorial
Sectie 3. Hoofdstuk 3
single

single

bookCombinatie van Positionele en Sleutelwoord Willekeurige Argumenten

Veeg om het menu te tonen

Beschouw een functie die de totale kosten van meerdere items berekent, waarbij je een willekeurig aantal prijzen en optionele keyword-instellingen zoals kortingen of belastingen kunt doorgeven.

12345678910111213141516171819202122232425
def 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)
copy

Regels voor het combineren van willekeurige argumenten

Positionele willekeurige argumenten (*args)

*args verzamelt alle extra positionele argumenten in een tuple. In dit voorbeeld kan de functie een willekeurig aantal itemprijzen accepteren zonder deze expliciet te hoeven definiëren.

Bijvoorbeeld:

calculate_total_cost(500, 250, 100)

Hier wordt *prices (500, 250, 100).

Willekeurige sleutelwoordargumenten (**kwargs)

**kwargs verzamelt alle benoemde (sleutelwoord)argumenten in een woordenboek. Hierdoor kan de functie extra benoemde instellingen accepteren, zoals discount of tax, zelfs als deze niet vooraf zijn gedefinieerd.

Bijvoorbeeld:

calculate_total_cost(1000, 500, discount=10, tax=5)

Hier wordt **settings {'discount': 10, 'tax': 5}.

Beide combineren

Je kunt zowel *args als **kwargs in dezelfde functie gebruiken voor maximale flexibiliteit — hiermee kun je elk aantal positionele waarden en elke combinatie van benoemde instellingen verwerken.

Note
Opmerking

Plaats altijd *args vóór **kwargs in de functiedefinitie – het omdraaien van de volgorde resulteert in een SyntaxError.

Taak

Veeg om te beginnen met coderen

Implementeer een functie generate_report die een willekeurig aantal numerieke scores en optionele keyword-instellingen accepteert.

  1. Gebruik *args om scores te verzamelen (noem de parameter scores) en **kwargs om optionele instellingen te verzamelen.
  2. Bereken het gemiddelde van alle opgegeven scores.
  3. Als er een sleutel "label" aanwezig is in **kwargs, gebruik dan de waarde hiervan als rapporttitel; gebruik anders "Report".
  4. Als er een sleutel "passing_score" aanwezig is in **kwargs, controleer dan of het gemiddelde hieraan voldoet of deze overschrijdt:
    • Zo ja, voeg "Status: Pass" toe aan het rapport.
    • Zo nee, voeg "Status: Fail" toe.
  5. Retourneer het resultaat als een opgemaakte string: "{label} | Average: {avg:.2f} | {status}". Als er geen "passing_score" is opgegeven, laat dan het statusgedeelte weg: "{label} | Average: {avg:.2f}".

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 3
single

single

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

some-alt