Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Vilkårlige Argumenter | Vilkårlige Argumenter
Python Funktioner Tutorial

bookVilkå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.

Note
Bemærk

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

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.

Note
Bemærk

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.

123456789101112131415161718
def 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])
copy

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.

Opgave

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.

  1. Brug vilkårlige argumenter med navnet prices i calculate_total-funktionen.
  2. Hvis ingen argumenter er angivet, returneres "Your cart is empty.".
  3. Anvend en 20% rabat, hvis totalen er $200 eller derover.
  4. Anvend en 10% rabat, hvis totalen er $100 eller derover.

Løsning

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 1
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Suggested prompts:

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?

close

Awesome!

Completion rate improved to 4.35

bookVilkå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.

Note
Bemærk

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

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.

Note
Bemærk

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.

123456789101112131415161718
def 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])
copy

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.

Opgave

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.

  1. Brug vilkårlige argumenter med navnet prices i calculate_total-funktionen.
  2. Hvis ingen argumenter er angivet, returneres "Your cart is empty.".
  3. Anvend en 20% rabat, hvis totalen er $200 eller derover.
  4. Anvend en 10% rabat, hvis totalen er $100 eller derover.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 1
single

single

some-alt