Vilkå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.
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))
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.
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.
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 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.
Swipe to start coding
Implementer en calculate_total
-funksjon som beregner totalprisen på varer i en handlekurv, og anvender rabatter basert på totalbeløpet.
- Bruk vilkårlige argumenter kalt prices i
calculate_total
-funksjonen. - Hvis ingen argumenter er oppgitt, returner
"Your cart is empty."
. - Gi 20 % rabatt hvis totalen er $200 eller mer.
- Gi 10 % rabatt hvis totalen er $100 eller mer.
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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
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.
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))
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.
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.
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 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.
Swipe to start coding
Implementer en calculate_total
-funksjon som beregner totalprisen på varer i en handlekurv, og anvender rabatter basert på totalbeløpet.
- Bruk vilkårlige argumenter kalt prices i
calculate_total
-funksjonen. - Hvis ingen argumenter er oppgitt, returner
"Your cart is empty."
. - Gi 20 % rabatt hvis totalen er $200 eller mer.
- Gi 10 % rabatt hvis totalen er $100 eller mer.
Løsning
Takk for tilbakemeldingene dine!
single