Vilkårlige Posisjonsargumenter
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. De gjør det mulig for en funksjon å ta imot et hvilket som helst antall verdier.
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))
Her samler *values alle sendte posisjonsargumenter i en tuple. Inne i funksjonen brukes variabelnavnet uten *. Resultatet blir korrekt uavhengig av hvor mange argumenter som oppgis.
Selv om ethvert navn kan brukes, er den vanlige og lesbare formen *args.
1234567891011121314def 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])
Som vist:
- Ingen argumenter →
argser(); - 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 deg full fleksibilitet når du håndterer mange inputverdier.
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 posisjonelle 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
Awesome!
Completion rate improved to 4.17
Vilkårlige Posisjonsargumenter
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. De gjør det mulig for en funksjon å ta imot et hvilket som helst antall verdier.
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))
Her samler *values alle sendte posisjonsargumenter i en tuple. Inne i funksjonen brukes variabelnavnet uten *. Resultatet blir korrekt uavhengig av hvor mange argumenter som oppgis.
Selv om ethvert navn kan brukes, er den vanlige og lesbare formen *args.
1234567891011121314def 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])
Som vist:
- Ingen argumenter →
argser(); - 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 deg full fleksibilitet når du håndterer mange inputverdier.
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 posisjonelle 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