Vilkårlige Argumenter
Vi har allerede undersøgt funktionens positionelle og optionelle argumenter. Men hvad gør man, når der er mange argumenter, eller når man ikke er sikker på, hvilke argumenter der skal gives til en funktion? Dette problem kan løses ved hjælp af vilkårlige argumenter (variable længde argumenter). Disse argumenter gør det muligt for en funktion at modtage et ubestemt antal argumenter. Dette er særligt nyttigt, når du ønsker at definere en funktion, der kan tage et variabelt antal inputværdier uden at angive det præcise antal argumenter på forhånd.
Husk, at hvert argument kan være en datastruktur, såsom en liste eller et dictionary. Du kan videregive et vilkårligt antal af sådanne strukturer ved hjælp af vilkårlige argumenter.
I Python kan du definere vilkårlige argumenter som et enkelt positionelt argument ved at placere en stjerne *
foran argumentnavnet. Her er et eksempel:
12345678# Define function with arbitrary 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))
I koden ovenfor brugte vi *
for at angive, at variablen values
indeholder flere vilkårlige argumenter og fortolkes som en tuple. Derefter brugte vi den indbyggede funktion sum
til at beregne summen. Vi kan se, at resultatet er korrekt for alle eksempler, og vi behøver ikke at angive antallet af argumenter direkte. Bemærk at vi bruger dette argument ved navn uden *
i funktionskroppen.
For at definere en vilkårlig argument-tuple er det tilstrækkeligt at bruge *
før argumentnavnet. Det anbefales dog at bruge konstruktionen *args
. Dette forbedrer fortolkbarheden og læsbarheden af koden.
123456789101112131415161718def example_function(*args): # Print the type of args print(f'Type of args: {type(args)}') # Print the whole tuple print(f'Args tuple: {args}') # Iterate over the tuple for arg in args: print(arg) # Call the function without any arguments print("Call without arguments:") example_function() # Call the function with one argument print("\nCall with one argument:") example_function(1) # Call the function with multiple arguments print("\nCall with multiple arguments:") example_function(1, 2, 3, 'hello', [4, 5, 6])
Som det fremgår af resultaterne:
- Når funktionen kaldes uden argumenter, vil
args
være en tom tuple()
. - Når funktionen kaldes med ét argument, vil
args
være en tuple med ét element(1,)
. - Når funktionen kaldes med flere argumenter, gemmes alle i tuplen, for eksempel
(1, 2, 3, 'hello', [4, 5, 6])
.
Med *args
kan du arbejde med værdierne på samme måde som med enhver anden tuple i Python.
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 argumenter med navnet prices i
calculate_total
-funktionen. - Hvis ingen argumenter er angivet, returneres
"Your cart is empty."
. - Anvend en 20% rabat, hvis totalen er $200 eller derover.
- Anvend en 10% rabat, hvis totalen er $100 eller derover.
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 *args and **kwargs?
How do I use *args with other types of function arguments?
Can you give more examples of when to use *args?
Awesome!
Completion rate improved to 4.35
Vilkårlige Argumenter
Stryg for at vise menuen
Vi har allerede undersøgt funktionens positionelle og optionelle argumenter. Men hvad gør man, når der er mange argumenter, eller når man ikke er sikker på, hvilke argumenter der skal gives til en funktion? Dette problem kan løses ved hjælp af vilkårlige argumenter (variable længde argumenter). Disse argumenter gør det muligt for en funktion at modtage et ubestemt antal argumenter. Dette er særligt nyttigt, når du ønsker at definere en funktion, der kan tage et variabelt antal inputværdier uden at angive det præcise antal argumenter på forhånd.
Husk, at hvert argument kan være en datastruktur, såsom en liste eller et dictionary. Du kan videregive et vilkårligt antal af sådanne strukturer ved hjælp af vilkårlige argumenter.
I Python kan du definere vilkårlige argumenter som et enkelt positionelt argument ved at placere en stjerne *
foran argumentnavnet. Her er et eksempel:
12345678# Define function with arbitrary 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))
I koden ovenfor brugte vi *
for at angive, at variablen values
indeholder flere vilkårlige argumenter og fortolkes som en tuple. Derefter brugte vi den indbyggede funktion sum
til at beregne summen. Vi kan se, at resultatet er korrekt for alle eksempler, og vi behøver ikke at angive antallet af argumenter direkte. Bemærk at vi bruger dette argument ved navn uden *
i funktionskroppen.
For at definere en vilkårlig argument-tuple er det tilstrækkeligt at bruge *
før argumentnavnet. Det anbefales dog at bruge konstruktionen *args
. Dette forbedrer fortolkbarheden og læsbarheden af koden.
123456789101112131415161718def example_function(*args): # Print the type of args print(f'Type of args: {type(args)}') # Print the whole tuple print(f'Args tuple: {args}') # Iterate over the tuple for arg in args: print(arg) # Call the function without any arguments print("Call without arguments:") example_function() # Call the function with one argument print("\nCall with one argument:") example_function(1) # Call the function with multiple arguments print("\nCall with multiple arguments:") example_function(1, 2, 3, 'hello', [4, 5, 6])
Som det fremgår af resultaterne:
- Når funktionen kaldes uden argumenter, vil
args
være en tom tuple()
. - Når funktionen kaldes med ét argument, vil
args
være en tuple med ét element(1,)
. - Når funktionen kaldes med flere argumenter, gemmes alle i tuplen, for eksempel
(1, 2, 3, 'hello', [4, 5, 6])
.
Med *args
kan du arbejde med værdierne på samme måde som med enhver anden tuple i Python.
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 argumenter med navnet prices i
calculate_total
-funktionen. - Hvis ingen argumenter er angivet, returneres
"Your cart is empty."
. - Anvend en 20% rabat, hvis totalen er $200 eller derover.
- Anvend en 10% rabat, hvis totalen er $100 eller derover.
Løsning
Tak for dine kommentarer!
single