Godtyckliga Positionella Argument
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 acceptera ett godtyckligt antal värden.
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))
Här samlar *values alla överförda positionella argument i en tuple. Inuti funktionen används variabelnamnet utan *. Resultatet blir korrekt oavsett hur många argument som anges.
Även om vilket namn som helst fungerar är den vanliga och läsbara formen *args.
1234567891011121314def 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])
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.
Swipe to start coding
Implementera en funktion calculate_total som beräknar totalpriset för varor i en kundvagn, med rabatter baserade på det totala beloppet.
- Använd godtyckliga positionella argument med namnet prices i funktionen
calculate_total. - Om inga argument anges, returnera
"Your cart is empty.". - Ge 20 % rabatt om totalen är $200 eller mer.
- Ge 10 % rabatt om totalen är $100 eller mer.
Lösning
Tack för dina kommentarer!
single
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 the difference between positional and arbitrary positional arguments?
What happens if I mix regular arguments with *args in a function?
Can you show how to use *args with keyword arguments in the same function?
Awesome!
Completion rate improved to 4.17
Godtyckliga 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 acceptera ett godtyckligt antal värden.
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))
Här samlar *values alla överförda positionella argument i en tuple. Inuti funktionen används variabelnamnet utan *. Resultatet blir korrekt oavsett hur många argument som anges.
Även om vilket namn som helst fungerar är den vanliga och läsbara formen *args.
1234567891011121314def 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])
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.
Swipe to start coding
Implementera en funktion calculate_total som beräknar totalpriset för varor i en kundvagn, med rabatter baserade på det totala beloppet.
- Använd godtyckliga positionella argument med namnet prices i funktionen
calculate_total. - Om inga argument anges, returnera
"Your cart is empty.". - Ge 20 % rabatt om totalen är $200 eller mer.
- Ge 10 % rabatt om totalen är $100 eller mer.
Lösning
Tack för dina kommentarer!
single