Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Listan Käyttäytyminen Funktioissa | Funktiot
Johdanto Python-Ohjelmointiin

Pyyhkäise näyttääksesi valikon

book
Listan Käyttäytyminen Funktioissa

Tutkitaan listojen käsittelyä funktioiden sisällä. Vaikka se onkin samanlaista kuin numeroiden kanssa työskentely, on muutamia tärkeitä yksityiskohtia, jotka on hyvä tietää.

Listat ovat muokattavissa, mikä tarkoittaa, että kaikki muutokset, jotka tehdään listalle funktion sisällä, vaikuttavat myös alkuperäiseen listaan funktion ulkopuolella, jos se välitetään suoraan.

Tämän estämiseksi voit käyttää copy()-metodia minkä tahansa muokattavan tietotyypin kanssa. Näin luot listasta pintakopion, jolloin voit muokata kopiota alkuperäisen sijaan. Tämä varmistaa, että funktiossa tehdyt muutokset eivät vaikuta alkuperäiseen listaan.

1234567891011121314
def add_strawberry(original_list): list_copy = original_list.copy() # Create a copy of the original list list_copy.append("Strawberry") # Modify the copied list return list_copy # Original list fruits = ["Apple", "Banana", "Cherry"] # Call the function new_fruits = add_strawberry(fruits) # Check the results print("Original list:", fruits) # ['Apple', 'Banana', 'Cherry'] print("Modified list:", new_fruits) # ['Apple', 'Banana', 'Cherry', 'Strawberry']
copy

Tässä esimerkissä alkuperäinen fruits-lista pysyy muuttumattomana, koska käytettiin copy(). Ilman copy(), listan muokkaaminen funktion sisällä olisi muuttanut myös alkuperäistä fruits-listaa.

Tehtävä

Swipe to start coding

Luo funktio, joka soveltaa 10% alennuksen tuotteiden hintoihin, jotka ovat yli $2.00, muuttamatta alkuperäistä listaa.

  • Määrittele funktio apply_discount(prices), joka ottaa hinnat listana.
  • Funktion sisällä tee kopio prices-listasta ja tallenna se prices_copy-muuttujaan.
  • Käytä for-silmukkaa indeksin iteroinnilla (range(len(prices_copy))) käydäksesi läpi kopioitua listaa.
  • Jos hinta on suurempi kuin 2.00, sovella 10% alennus.
  • Palauta päivitetty prices_copy-lista.

Tulostusvaatimukset

  • Funktion tulee palauttaa uusi lista alennetuilla hinnoilla.
  • Tulosta tulos käyttäen:
    Updated product prices: <$updated_prices>

Huom

Käytä indeksiin perustuvaa iterointia varmistaaksesi, että lista muokataan oikein: for index in range(len(prices)): muokkaa elementtejä suoraan, toisin kuin for price in prices:.

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 6. Luku 4

Kysy tekoälyä

expand
ChatGPT

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

book
Listan Käyttäytyminen Funktioissa

Tutkitaan listojen käsittelyä funktioiden sisällä. Vaikka se onkin samanlaista kuin numeroiden kanssa työskentely, on muutamia tärkeitä yksityiskohtia, jotka on hyvä tietää.

Listat ovat muokattavissa, mikä tarkoittaa, että kaikki muutokset, jotka tehdään listalle funktion sisällä, vaikuttavat myös alkuperäiseen listaan funktion ulkopuolella, jos se välitetään suoraan.

Tämän estämiseksi voit käyttää copy()-metodia minkä tahansa muokattavan tietotyypin kanssa. Näin luot listasta pintakopion, jolloin voit muokata kopiota alkuperäisen sijaan. Tämä varmistaa, että funktiossa tehdyt muutokset eivät vaikuta alkuperäiseen listaan.

1234567891011121314
def add_strawberry(original_list): list_copy = original_list.copy() # Create a copy of the original list list_copy.append("Strawberry") # Modify the copied list return list_copy # Original list fruits = ["Apple", "Banana", "Cherry"] # Call the function new_fruits = add_strawberry(fruits) # Check the results print("Original list:", fruits) # ['Apple', 'Banana', 'Cherry'] print("Modified list:", new_fruits) # ['Apple', 'Banana', 'Cherry', 'Strawberry']
copy

Tässä esimerkissä alkuperäinen fruits-lista pysyy muuttumattomana, koska käytettiin copy(). Ilman copy(), listan muokkaaminen funktion sisällä olisi muuttanut myös alkuperäistä fruits-listaa.

Tehtävä

Swipe to start coding

Luo funktio, joka soveltaa 10% alennuksen tuotteiden hintoihin, jotka ovat yli $2.00, muuttamatta alkuperäistä listaa.

  • Määrittele funktio apply_discount(prices), joka ottaa hinnat listana.
  • Funktion sisällä tee kopio prices-listasta ja tallenna se prices_copy-muuttujaan.
  • Käytä for-silmukkaa indeksin iteroinnilla (range(len(prices_copy))) käydäksesi läpi kopioitua listaa.
  • Jos hinta on suurempi kuin 2.00, sovella 10% alennus.
  • Palauta päivitetty prices_copy-lista.

Tulostusvaatimukset

  • Funktion tulee palauttaa uusi lista alennetuilla hinnoilla.
  • Tulosta tulos käyttäen:
    Updated product prices: <$updated_prices>

Huom

Käytä indeksiin perustuvaa iterointia varmistaaksesi, että lista muokataan oikein: for index in range(len(prices)): muokkaa elementtejä suoraan, toisin kuin for price in prices:.

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 6. Luku 4
Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Pahoittelemme, että jotain meni pieleen. Mitä tapahtui?
some-alt