Mielivaltaiset Argumentit
Olemme jo tarkastelleet funktion paikallisia ja valinnaisia argumentteja. Mutta mitä tehdä, kun argumentteja on paljon tai emme ole varmoja kaikista funktiolle välitettävistä argumenteista? Tämä ongelma voidaan ratkaista käyttämällä mielivaltaisia argumentteja (muuttuvan pituisia argumentteja). Näiden avulla funktio voi vastaanottaa määrittelemättömän määrän argumentteja. Tämä on erityisen hyödyllistä, kun haluat määritellä funktion, joka voi ottaa vastaan vaihtelevan määrän syötearvoja ilman, että argumenttien tarkkaa määrää tarvitsee määritellä etukäteen.
Muista, että jokainen argumentti voi olla tietorakenne, kuten lista tai sanakirja. Voit välittää mielivaltaisen määrän tällaisia rakenteita käyttämällä mielivaltaisia argumentteja.
Pythonissa voit määritellä mielivaltaiset argumentit yksittäisenä paikallisena argumenttina lisäämällä tähden *
argumentin nimen eteen. Tässä esimerkki:
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))
Yllä olevassa koodissa käytettiin *
-merkkiä ilmoittamaan, että values
-muuttuja sisältää useita mielivaltaisia argumentteja ja tulkitaan tuplena. Tämän jälkeen käytettiin sisäänrakennettua sum
-funktiota summan laskemiseen. Tuloksista nähdään, että ne ovat oikein kaikissa esimerkeissä, eikä argumenttien määrää tarvitse määritellä suoraan. Huomaa, että argumenttia käytetään nimenä ilman *
-merkkiä funktiorungossa.
Mielivaltaisen argumenttituplen määrittämiseen riittää *
ennen argumentin nimeä. On kuitenkin suositeltavaa käyttää *args
-rakennetta. Tämä parantaa koodin tulkittavuutta ja luettavuutta.
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])
Kuten tuloksista näkyy:
- Kun funktiota kutsutaan ilman argumentteja,
args
on tyhjä tuple()
. - Kun funktiota kutsutaan yhdellä argumentilla,
args
on tuple, jossa on yksi alkio(1,)
. - Kun funktiota kutsutaan usealla argumentilla, kaikki argumentit tallennetaan tupleen, esimerkiksi
(1, 2, 3, 'hello', [4, 5, 6])
.
*args
-rakenteen avulla arvoja voidaan käsitellä kuten mitä tahansa muuta Python-tuplea.
Swipe to start coding
Toteuta calculate_total
-funktio, joka laskee ostoskoriin lisättyjen tuotteiden kokonaishinnan ja soveltaa alennuksia kokonaissumman perusteella.
- Käytä mielivaltaisia argumentteja nimellä prices
calculate_total
-funktiossa. - Jos argumentteja ei anneta, palauta
"Your cart is empty."
. - Sovella 20 %:n alennusta, jos kokonaissumma on 200 $ tai enemmän.
- Sovella 10 %:n alennusta, jos kokonaissumma on 100 $ tai enemmän.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 4.35
Mielivaltaiset Argumentit
Pyyhkäise näyttääksesi valikon
Olemme jo tarkastelleet funktion paikallisia ja valinnaisia argumentteja. Mutta mitä tehdä, kun argumentteja on paljon tai emme ole varmoja kaikista funktiolle välitettävistä argumenteista? Tämä ongelma voidaan ratkaista käyttämällä mielivaltaisia argumentteja (muuttuvan pituisia argumentteja). Näiden avulla funktio voi vastaanottaa määrittelemättömän määrän argumentteja. Tämä on erityisen hyödyllistä, kun haluat määritellä funktion, joka voi ottaa vastaan vaihtelevan määrän syötearvoja ilman, että argumenttien tarkkaa määrää tarvitsee määritellä etukäteen.
Muista, että jokainen argumentti voi olla tietorakenne, kuten lista tai sanakirja. Voit välittää mielivaltaisen määrän tällaisia rakenteita käyttämällä mielivaltaisia argumentteja.
Pythonissa voit määritellä mielivaltaiset argumentit yksittäisenä paikallisena argumenttina lisäämällä tähden *
argumentin nimen eteen. Tässä esimerkki:
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))
Yllä olevassa koodissa käytettiin *
-merkkiä ilmoittamaan, että values
-muuttuja sisältää useita mielivaltaisia argumentteja ja tulkitaan tuplena. Tämän jälkeen käytettiin sisäänrakennettua sum
-funktiota summan laskemiseen. Tuloksista nähdään, että ne ovat oikein kaikissa esimerkeissä, eikä argumenttien määrää tarvitse määritellä suoraan. Huomaa, että argumenttia käytetään nimenä ilman *
-merkkiä funktiorungossa.
Mielivaltaisen argumenttituplen määrittämiseen riittää *
ennen argumentin nimeä. On kuitenkin suositeltavaa käyttää *args
-rakennetta. Tämä parantaa koodin tulkittavuutta ja luettavuutta.
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])
Kuten tuloksista näkyy:
- Kun funktiota kutsutaan ilman argumentteja,
args
on tyhjä tuple()
. - Kun funktiota kutsutaan yhdellä argumentilla,
args
on tuple, jossa on yksi alkio(1,)
. - Kun funktiota kutsutaan usealla argumentilla, kaikki argumentit tallennetaan tupleen, esimerkiksi
(1, 2, 3, 'hello', [4, 5, 6])
.
*args
-rakenteen avulla arvoja voidaan käsitellä kuten mitä tahansa muuta Python-tuplea.
Swipe to start coding
Toteuta calculate_total
-funktio, joka laskee ostoskoriin lisättyjen tuotteiden kokonaishinnan ja soveltaa alennuksia kokonaissumman perusteella.
- Käytä mielivaltaisia argumentteja nimellä prices
calculate_total
-funktiossa. - Jos argumentteja ei anneta, palauta
"Your cart is empty."
. - Sovella 20 %:n alennusta, jos kokonaissumma on 200 $ tai enemmän.
- Sovella 10 %:n alennusta, jos kokonaissumma on 100 $ tai enemmän.
Ratkaisu
Kiitos palautteestasi!
single