Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Godtyckliga Positionella Argument | Godtyckliga Argument
Handledning om Pythonfunktioner
Avsnitt 3. Kapitel 1
single

single

bookGodtyckliga Positionella Argument

Svep för att visa menyn

Du känner redan till positionella och valfria argument. Men när en funktion kan ta emot många indata eller du inte vet dem i förväg, kan du använda godtyckliga positionella argument. De gör det möjligt för en funktion att ta emot ett godtyckligt antal värden.

Note
Notera

Varje argument kan vara vilken datastruktur som helst (lista, dict, etc.). Godtyckliga argument gör att du kan skicka så många sådana objekt som behövs.

För att definiera godtyckliga positionella argument, placera en asterisk * före parameternamnet. Exempel:

12345678
# Define function with arbitrary positional arguments named values def calculate_sum(*values): return sum(values) # Test the function using different number of arguments print(calculate_sum(1, 2, 3)) print(calculate_sum(1, 2, 3, 4)) print(calculate_sum(1, 2, 3, 4, 5))
copy

Här samlar *values alla skickade positionella argument i en tuple. Inuti funktionen används variabelnamnet utan *. Resultatet blir korrekt oavsett hur många argument som anges.

Note
Notera

Även om vilket namn som helst fungerar, är den vanliga och läsbara formen *args.

1234567891011121314
def example_function(*args): print(type(args)) print(args) for arg in args: print(arg) print("Call without arguments:") example_function() print("\nCall with one argument:") example_function(1) print("\nCall with multiple arguments:") example_function(1, 2, 3, 'hello', [4, 5, 6])
copy

Som visas:

  • Inga argument → args är ();
  • Ett argument → (1,);
  • Flera argument → alla värden visas i en tuple, t.ex. (1, 2, 3, 'hello', [4, 5, 6]).

*args fungerar som vilken annan tuple som helst och ger full flexibilitet vid hantering av många indata.

Eftersom *args bara är en tuple kan du använda valfri logik på dess värden – inklusive villkor. Till exempel, efter att ha summerat alla priser kan du kontrollera totalen och tillämpa olika regler beroende på resultatet.

Uppgift

Svep för att börja koda

Implementera en funktion calculate_total som beräknar totalpriset för varor i en kundvagn, med rabatter baserade på det totala beloppet.

  1. Använd godtyckliga positionella argument med namnet prices i funktionen calculate_total.
  2. Om inga argument anges, returnera "Your cart is empty.".
  3. Rabatter är ömsesidigt uteslutande – tillämpa endast den högsta tillämpliga:
    • Tillämpa en 20 % rabatt om totalen är $200 eller mer.
    • Tillämpa en 10 % rabatt om totalen är $100 eller mer.
    • Ingen rabatt annars.
  4. Returnera det slutliga totalbeloppet som en formaterad sträng: "Final total: $X.XX".

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 1
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

some-alt