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-funksjoner Veiledning

bookVilkårlige Argumenter

Vi har allerede utforsket funksjonens posisjonelle og valgfrie argumenter. Men hva gjør vi når det er mange argumenter, eller når vi ikke er sikre på alle argumentene som må sendes til en funksjon? Dette kan løses ved å bruke vilkårlige argumenter (argumenter med variabel lengde). Disse argumentene gjør det mulig for en funksjon å motta et uspesifisert antall argumenter. Dette er spesielt nyttig når du ønsker å definere en funksjon som kan ta et variabelt antall inndata uten å spesifisere det eksakte antallet argumenter på forhånd.

Note
Merk

Husk at hvert argument kan være en datastruktur, for eksempel en liste eller et ordbok. Du kan sende et vilkårlig antall slike strukturer ved å bruke vilkårlige argumenter.

I Python kan du definere vilkårlige argumenter som et enkelt posisjonelt argument ved å plassere 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 brukte vi * for å angi at variabelen values inneholder flere vilkårlige argumenter og tolkes som en tuple. Deretter brukte vi den innebygde funksjonen sum for å beregne summen. Vi ser at resultatet er korrekt for alle eksemplene, og vi trenger ikke å angi antall argumenter direkte. Merk at vi bruker dette argumentet ved navn uten * i funksjonskroppen.

Note
Merk

For å definere en vilkårlig argument-tuple, er det tilstrekkelig å bruke * foran argumentnavnet. Det anbefales imidlertid å bruke konstruksjonen *args. Dette forbedrer tolkbarheten og lesbarheten i 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 du kan se fra resultatene:

  • Når funksjonen kalles uten argumenter, vil args være en tom tuple ().
  • Når funksjonen kalles med ett argument, vil args være en tuple med ett element (1,).
  • Når funksjonen kalles med flere argumenter, lagres alle i tuplen, for eksempel (1, 2, 3, 'hello', [4, 5, 6]).

Med *args kan du arbeide med verdiene på samme måte som med andre tupler i Python.

Oppgave

Swipe to start coding

Implementer en calculate_total-funksjon som beregner totalprisen på varer i en handlekurv, og anvender rabatter basert på totalbeløpet.

  1. Bruk vilkårlige argumenter kalt prices i calculate_total-funksjonen.
  2. Hvis ingen argumenter er oppgitt, returner "Your cart is empty.".
  3. Gi 20 % rabatt hvis totalen er $200 eller mer.
  4. Gi 10 % rabatt hvis totalen er $100 eller mer.

Løsning

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 1
single

single

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

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

Sveip for å vise menyen

Vi har allerede utforsket funksjonens posisjonelle og valgfrie argumenter. Men hva gjør vi når det er mange argumenter, eller når vi ikke er sikre på alle argumentene som må sendes til en funksjon? Dette kan løses ved å bruke vilkårlige argumenter (argumenter med variabel lengde). Disse argumentene gjør det mulig for en funksjon å motta et uspesifisert antall argumenter. Dette er spesielt nyttig når du ønsker å definere en funksjon som kan ta et variabelt antall inndata uten å spesifisere det eksakte antallet argumenter på forhånd.

Note
Merk

Husk at hvert argument kan være en datastruktur, for eksempel en liste eller et ordbok. Du kan sende et vilkårlig antall slike strukturer ved å bruke vilkårlige argumenter.

I Python kan du definere vilkårlige argumenter som et enkelt posisjonelt argument ved å plassere 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 brukte vi * for å angi at variabelen values inneholder flere vilkårlige argumenter og tolkes som en tuple. Deretter brukte vi den innebygde funksjonen sum for å beregne summen. Vi ser at resultatet er korrekt for alle eksemplene, og vi trenger ikke å angi antall argumenter direkte. Merk at vi bruker dette argumentet ved navn uten * i funksjonskroppen.

Note
Merk

For å definere en vilkårlig argument-tuple, er det tilstrekkelig å bruke * foran argumentnavnet. Det anbefales imidlertid å bruke konstruksjonen *args. Dette forbedrer tolkbarheten og lesbarheten i 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 du kan se fra resultatene:

  • Når funksjonen kalles uten argumenter, vil args være en tom tuple ().
  • Når funksjonen kalles med ett argument, vil args være en tuple med ett element (1,).
  • Når funksjonen kalles med flere argumenter, lagres alle i tuplen, for eksempel (1, 2, 3, 'hello', [4, 5, 6]).

Med *args kan du arbeide med verdiene på samme måte som med andre tupler i Python.

Oppgave

Swipe to start coding

Implementer en calculate_total-funksjon som beregner totalprisen på varer i en handlekurv, og anvender rabatter basert på totalbeløpet.

  1. Bruk vilkårlige argumenter kalt prices i calculate_total-funksjonen.
  2. Hvis ingen argumenter er oppgitt, returner "Your cart is empty.".
  3. Gi 20 % rabatt hvis totalen er $200 eller mer.
  4. Gi 10 % rabatt hvis totalen er $100 eller mer.

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 1
single

single

some-alt