Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Vilkårlige Posisjonsargumenter i Python | Seksjon
Python-funksjoner

bookVilkårlige Posisjonsargumenter i Python

Du kjenner allerede til posisjonelle og valgfrie argumenter. Men når en funksjon kan motta mange innverdier, eller du ikke vet dem på forhånd, kan du bruke vilkårlige posisjonelle argumenter. Disse gjør at en funksjon kan ta imot et hvilket som helst antall verdier.

Note
Merk

Hvert argument kan være en hvilken som helst datastruktur (liste, dict, osv.). Vilkårlige argumenter lar deg sende så mange slike objekter som nødvendig.

For å definere vilkårlige posisjonelle argumenter, plasser 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))
copy

Her samler *values alle sendte posisjonsargumenter i en tuple. Inne i funksjonen bruker du variabelnavnet uten *. Resultatet blir korrekt uavhengig av hvor mange argumenter som oppgis.

Note
Merk

Selv om hvilket som helst navn fungerer, er den vanlige og lesbare formen *args.

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

Som vist:

  • Ingen argumenter → args er ();
  • Ett argument → (1,);
  • Flere argumenter → alle verdier vises i en tuple, f.eks. (1, 2, 3, 'hello', [4, 5, 6]).

*args oppfører seg som enhver annen tuple, og gir full fleksibilitet ved håndtering av mange innverdier.

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.

  • Bruk vilkårlige posisjonsargumenter 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

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 12
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

close

bookVilkårlige Posisjonsargumenter i Python

Sveip for å vise menyen

Du kjenner allerede til posisjonelle og valgfrie argumenter. Men når en funksjon kan motta mange innverdier, eller du ikke vet dem på forhånd, kan du bruke vilkårlige posisjonelle argumenter. Disse gjør at en funksjon kan ta imot et hvilket som helst antall verdier.

Note
Merk

Hvert argument kan være en hvilken som helst datastruktur (liste, dict, osv.). Vilkårlige argumenter lar deg sende så mange slike objekter som nødvendig.

For å definere vilkårlige posisjonelle argumenter, plasser 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))
copy

Her samler *values alle sendte posisjonsargumenter i en tuple. Inne i funksjonen bruker du variabelnavnet uten *. Resultatet blir korrekt uavhengig av hvor mange argumenter som oppgis.

Note
Merk

Selv om hvilket som helst navn fungerer, er den vanlige og lesbare formen *args.

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

Som vist:

  • Ingen argumenter → args er ();
  • Ett argument → (1,);
  • Flere argumenter → alle verdier vises i en tuple, f.eks. (1, 2, 3, 'hello', [4, 5, 6]).

*args oppfører seg som enhver annen tuple, og gir full fleksibilitet ved håndtering av mange innverdier.

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.

  • Bruk vilkårlige posisjonsargumenter 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

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 1. Kapittel 12
single

single

some-alt