Mielivaltaiset Argumentit
Olet jo tutustunut paikallisiin ja valinnaisiin argumentteihin. Mutta entä jos funktiolla on paljon argumentteja tai et tiedä niitä kaikkia etukäteen? Tämän voi ratkaista käyttämällä määrittelemättömiä argumentteja (muuttuvan pituisia argumentteja). Näiden avulla funktio voi vastaanottaa minkä tahansa määrän syötteitä, mikä tekee siitä joustavan ja mukautuvan.
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ä määrittelemättömiä argumentteja.
Pythonissa voit määritellä määrittelemättömät 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 * ilmaisee, että values-muuttuja voi sisältää useita mielivaltaisia argumentteja, jotka käsitellään tuplena. Sisäänrakennettua sum()-funktiota käytetään kokonaismäärän laskemiseen. Tulokset ovat oikein kaikissa esimerkeissä, eikä argumenttien määrää tarvitse määritellä erikseen. Huom: käytä tätä argumenttia nimenä ilman *-merkkiä funktion rungossa.
Mielivaltaisen argumenttituplen määrittämiseen riittää, että käytetään * 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,
argson tyhjä tuple(); - Kun funktiota kutsutaan yhdellä argumentilla,
argson yhden alkion tuple(1,); - Kun funktiota kutsutaan useilla argumenteilla, kaikki argumentit tallennetaan tupleen, esimerkiksi
(1, 2, 3, 'hello', [4, 5, 6]).
*args-rakenteen avulla arvoja voidaan käsitellä kuten mitä tahansa muuta Pythonin 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
Can you explain the difference between *args and regular arguments?
How do I use both *args and named arguments in the same function?
Can you show more examples of using *args in real-world scenarios?
Awesome!
Completion rate improved to 4.17
Mielivaltaiset Argumentit
Pyyhkäise näyttääksesi valikon
Olet jo tutustunut paikallisiin ja valinnaisiin argumentteihin. Mutta entä jos funktiolla on paljon argumentteja tai et tiedä niitä kaikkia etukäteen? Tämän voi ratkaista käyttämällä määrittelemättömiä argumentteja (muuttuvan pituisia argumentteja). Näiden avulla funktio voi vastaanottaa minkä tahansa määrän syötteitä, mikä tekee siitä joustavan ja mukautuvan.
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ä määrittelemättömiä argumentteja.
Pythonissa voit määritellä määrittelemättömät 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 * ilmaisee, että values-muuttuja voi sisältää useita mielivaltaisia argumentteja, jotka käsitellään tuplena. Sisäänrakennettua sum()-funktiota käytetään kokonaismäärän laskemiseen. Tulokset ovat oikein kaikissa esimerkeissä, eikä argumenttien määrää tarvitse määritellä erikseen. Huom: käytä tätä argumenttia nimenä ilman *-merkkiä funktion rungossa.
Mielivaltaisen argumenttituplen määrittämiseen riittää, että käytetään * 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,
argson tyhjä tuple(); - Kun funktiota kutsutaan yhdellä argumentilla,
argson yhden alkion tuple(1,); - Kun funktiota kutsutaan useilla argumenteilla, kaikki argumentit tallennetaan tupleen, esimerkiksi
(1, 2, 3, 'hello', [4, 5, 6]).
*args-rakenteen avulla arvoja voidaan käsitellä kuten mitä tahansa muuta Pythonin 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