Vilkårlige Positionelle Argumenter
Du kender allerede til positionelle og optionelle argumenter. Men når en funktion kan modtage mange input eller du ikke kender dem på forhånd, kan du bruge vilkårlige positionelle argumenter. De gør det muligt for en funktion at acceptere et vilkårligt antal værdier.
Hvert argument kan være en hvilken som helst datastruktur (liste, dict, osv.). Vilkårlige argumenter gør det muligt at videregive så mange sådanne objekter som nødvendigt.
For at definere vilkårlige positionelle argumenter, placeres en stjerne * foran parameternavnet. Eksempel:
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))
Her samler *values alle de overførte positionelle argumenter i en tuple. Inde i funktionen bruges variabelnavnet uden *. Resultatet er korrekt uanset hvor mange argumenter der gives.
Selvom ethvert navn kan bruges, er den almindelige og læsevenlige form *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 vist:
- Ingen argumenter →
argser(); - Ét argument →
(1,); - Flere argumenter → alle værdier vises i en tuple, f.eks.
(1, 2, 3, 'hello', [4, 5, 6]).
*args fungerer som enhver anden tuple og giver fuld fleksibilitet ved håndtering af mange input.
Swipe to start coding
Implementér en calculate_total-funktion, der beregner den samlede pris på varer i en kurv og anvender rabatter baseret på det samlede beløb.
- Brug vilkårlige positionelle argumenter med navnet prices i
calculate_total-funktionen. - Hvis der ikke gives nogen argumenter, returneres
"Your cart is empty.". - Anvend en 20% rabat, hvis det samlede beløb er $200 eller mere.
- Anvend en 10% rabat, hvis det samlede beløb er $100 eller mere.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
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
Vilkårlige Positionelle Argumenter
Stryg for at vise menuen
Du kender allerede til positionelle og optionelle argumenter. Men når en funktion kan modtage mange input eller du ikke kender dem på forhånd, kan du bruge vilkårlige positionelle argumenter. De gør det muligt for en funktion at acceptere et vilkårligt antal værdier.
Hvert argument kan være en hvilken som helst datastruktur (liste, dict, osv.). Vilkårlige argumenter gør det muligt at videregive så mange sådanne objekter som nødvendigt.
For at definere vilkårlige positionelle argumenter, placeres en stjerne * foran parameternavnet. Eksempel:
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))
Her samler *values alle de overførte positionelle argumenter i en tuple. Inde i funktionen bruges variabelnavnet uden *. Resultatet er korrekt uanset hvor mange argumenter der gives.
Selvom ethvert navn kan bruges, er den almindelige og læsevenlige form *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 vist:
- Ingen argumenter →
argser(); - Ét argument →
(1,); - Flere argumenter → alle værdier vises i en tuple, f.eks.
(1, 2, 3, 'hello', [4, 5, 6]).
*args fungerer som enhver anden tuple og giver fuld fleksibilitet ved håndtering af mange input.
Swipe to start coding
Implementér en calculate_total-funktion, der beregner den samlede pris på varer i en kurv og anvender rabatter baseret på det samlede beløb.
- Brug vilkårlige positionelle argumenter med navnet prices i
calculate_total-funktionen. - Hvis der ikke gives nogen argumenter, returneres
"Your cart is empty.". - Anvend en 20% rabat, hvis det samlede beløb er $200 eller mere.
- Anvend en 10% rabat, hvis det samlede beløb er $100 eller mere.
Løsning
Tak for dine kommentarer!
single