Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Mielivaltaiset Argumentit | Mielivaltaiset Argumentit
Python-Funktioiden Opas

bookMielivaltaiset 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.

Note
Huomio

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))
copy

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.

Note
Huomautus

Mielivaltaisen argumenttituplen määrittämiseen riittää * ennen argumentin nimeä. On kuitenkin suositeltavaa käyttää *args-rakennetta. Tämä parantaa koodin tulkittavuutta ja luettavuutta.

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

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.

Tehtävä

Swipe to start coding

Toteuta calculate_total-funktio, joka laskee ostoskoriin lisättyjen tuotteiden kokonaishinnan ja soveltaa alennuksia kokonaissumman perusteella.

  1. Käytä mielivaltaisia argumentteja nimellä prices calculate_total-funktiossa.
  2. Jos argumentteja ei anneta, palauta "Your cart is empty.".
  3. Sovella 20 %:n alennusta, jos kokonaissumma on 200 $ tai enemmän.
  4. Sovella 10 %:n alennusta, jos kokonaissumma on 100 $ tai enemmän.

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 1
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

close

Awesome!

Completion rate improved to 4.35

bookMielivaltaiset 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.

Note
Huomio

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))
copy

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.

Note
Huomautus

Mielivaltaisen argumenttituplen määrittämiseen riittää * ennen argumentin nimeä. On kuitenkin suositeltavaa käyttää *args-rakennetta. Tämä parantaa koodin tulkittavuutta ja luettavuutta.

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

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.

Tehtävä

Swipe to start coding

Toteuta calculate_total-funktio, joka laskee ostoskoriin lisättyjen tuotteiden kokonaishinnan ja soveltaa alennuksia kokonaissumman perusteella.

  1. Käytä mielivaltaisia argumentteja nimellä prices calculate_total-funktiossa.
  2. Jos argumentteja ei anneta, palauta "Your cart is empty.".
  3. Sovella 20 %:n alennusta, jos kokonaissumma on 200 $ tai enemmän.
  4. Sovella 10 %:n alennusta, jos kokonaissumma on 100 $ tai enemmän.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 1
single

single

some-alt