Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Indekseissä Iteroiminen | Silmukat
Johdatus Pythoniin

bookIndekseissä Iteroiminen

Edellisessä tehtävässä annoit tietyn määrän alkioita range()-funktiolle. Mutta entä jos määrä täytyy määrittää dynaamisesti? Tässä kohtaa indeksien läpikäynti on olennaista.

Indeksien läpikäynti on keskeinen tekniikka Pythonissa, jonka avulla voit päästä käsiksi ja muokata alkioita niiden sijainnin perusteella tietorakenteissa, kuten listoissa tai taulukoissa. Tämä on erityisen hyödyllistä tehtävissä, joissa tarvitaan tarkkaa hallintaa jokaiseen alkioon, esimerkiksi varastotasojen päivittämisessä tai myyntitietojen hallinnassa ruokakaupassa.

Katso, kuinka Alex havainnollistaa, miten indeksien läpikäynti voi yksinkertaistaa toimintoja ruokakauppaesimerkissämme:

Indeksien läpikäynti on hyödyllistä, kun tarvitset sekä listan alkion indeksin että arvon. Kun käytämme range()- ja len()-funktioita yhdessä, yhdistämme kaksi funktiota luodaksemme numerosekvenssin, joka vastaa listan alkioiden indeksejä. Tämä menetelmä on erityisen hyödyllinen silmukoissa, joissa täytyy käsitellä tai muokata alkioita niiden sijainnin perusteella.

Esimerkiksi tämä for-silmukka hakee sekä indeksin että arvon jokaisesta grocery_list-listan alkiosta:

12345678
# List of grocery items grocery_list = ["Apples", "Bananas", "Carrots", "Cucumbers"] # Initialize a for loop to iterate over indexes for item in range(len(grocery_list)): print("Index:", item) print("Item:", grocery_list[item]) print("----") # Printing a divider line for clarity
copy

Esimerkkisovellus

Jotta voimme soveltaa alennusta hintalistaan, meidän täytyy muokata listan alkioita suoraan. Yksinkertaisen silmukan, kuten for cost in prices:, käyttäminen antaa meille vain kopion jokaisesta alkiosta, ei viittausta alkuperäiseen listan alkioon. Tällä tavalla tehdyt muutokset eivät vaikuta alkuperäiseen listaan.

Jotta voimme päivittää jokaisen alkion suoraan prices-listassa, käytämme range(len(prices)) käydäksemme läpi indeksit. Tämä mahdollistaa alennuskertoimen soveltamisen jokaiseen alkioon:

12345678910111213
# List of original prices of grocery items prices = [1.50, 2.00, 0.75, 3.25] # Discount factor (10% off each item) discount_factor = 0.10 # Iterate over the list of prices using range(len()) for cost in range(len(prices)): # Apply the discount by reducing the price prices[cost] -= prices[cost] * discount_factor print(f"New price of item {cost + 1}: ${prices[cost]}") print("Updated prices:", prices)
copy

Huom

  • Kaava prices[cost] -= prices[cost] * discount_factor on sama kuin prices[cost] = prices[cost] - prices[cost] * discount_factor. Tämä vähentää alkuperäisestä hinnasta osan (alennuksen verran), jolloin alennus toteutuu;

  • cost + 1 tulostuksessa säätää indeksin alkamaan 1:stä 0:n sijaan, mikä tekee siitä käyttäjäystävällisemmän.

Tämä menetelmä varmistaa, että alkuperäinen prices-lista päivittyy suoraan uusilla, alennetuilla hinnoilla, ja muutokset näkyvät välittömästi kaikkialla ohjelmassa, missä prices-listaa käytetään.

Tehtävä

Swipe to start coding

Alennus sijainnin perusteella

Sovella alennusprosentteja tuotehintoihin niiden sijainnin perusteella listassa käyttämällä indeksin läpikäyntiä.

  1. Käytä for-silmukkaa yhdessä range()- ja len()-funktioiden kanssa käydäksesi läpi prices-listan indeksit.
  2. Sovella alennuksia indeksin perusteella: 10 % indeksille 0, 20 % indeksille 1, 15 % indeksille 2 ja 5 % indeksille 3.
  3. Päivitä jokainen hinta prices-listassa kertomalla se alennuskertoimella (esim. 0.9 tarkoittaa 10 % alennusta).
  4. Tulosta Updated price for item {index}: ${updated_price:.2f} jokaiselle tuotteelle.

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 4
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 2.17

bookIndekseissä Iteroiminen

Pyyhkäise näyttääksesi valikon

Edellisessä tehtävässä annoit tietyn määrän alkioita range()-funktiolle. Mutta entä jos määrä täytyy määrittää dynaamisesti? Tässä kohtaa indeksien läpikäynti on olennaista.

Indeksien läpikäynti on keskeinen tekniikka Pythonissa, jonka avulla voit päästä käsiksi ja muokata alkioita niiden sijainnin perusteella tietorakenteissa, kuten listoissa tai taulukoissa. Tämä on erityisen hyödyllistä tehtävissä, joissa tarvitaan tarkkaa hallintaa jokaiseen alkioon, esimerkiksi varastotasojen päivittämisessä tai myyntitietojen hallinnassa ruokakaupassa.

Katso, kuinka Alex havainnollistaa, miten indeksien läpikäynti voi yksinkertaistaa toimintoja ruokakauppaesimerkissämme:

Indeksien läpikäynti on hyödyllistä, kun tarvitset sekä listan alkion indeksin että arvon. Kun käytämme range()- ja len()-funktioita yhdessä, yhdistämme kaksi funktiota luodaksemme numerosekvenssin, joka vastaa listan alkioiden indeksejä. Tämä menetelmä on erityisen hyödyllinen silmukoissa, joissa täytyy käsitellä tai muokata alkioita niiden sijainnin perusteella.

Esimerkiksi tämä for-silmukka hakee sekä indeksin että arvon jokaisesta grocery_list-listan alkiosta:

12345678
# List of grocery items grocery_list = ["Apples", "Bananas", "Carrots", "Cucumbers"] # Initialize a for loop to iterate over indexes for item in range(len(grocery_list)): print("Index:", item) print("Item:", grocery_list[item]) print("----") # Printing a divider line for clarity
copy

Esimerkkisovellus

Jotta voimme soveltaa alennusta hintalistaan, meidän täytyy muokata listan alkioita suoraan. Yksinkertaisen silmukan, kuten for cost in prices:, käyttäminen antaa meille vain kopion jokaisesta alkiosta, ei viittausta alkuperäiseen listan alkioon. Tällä tavalla tehdyt muutokset eivät vaikuta alkuperäiseen listaan.

Jotta voimme päivittää jokaisen alkion suoraan prices-listassa, käytämme range(len(prices)) käydäksemme läpi indeksit. Tämä mahdollistaa alennuskertoimen soveltamisen jokaiseen alkioon:

12345678910111213
# List of original prices of grocery items prices = [1.50, 2.00, 0.75, 3.25] # Discount factor (10% off each item) discount_factor = 0.10 # Iterate over the list of prices using range(len()) for cost in range(len(prices)): # Apply the discount by reducing the price prices[cost] -= prices[cost] * discount_factor print(f"New price of item {cost + 1}: ${prices[cost]}") print("Updated prices:", prices)
copy

Huom

  • Kaava prices[cost] -= prices[cost] * discount_factor on sama kuin prices[cost] = prices[cost] - prices[cost] * discount_factor. Tämä vähentää alkuperäisestä hinnasta osan (alennuksen verran), jolloin alennus toteutuu;

  • cost + 1 tulostuksessa säätää indeksin alkamaan 1:stä 0:n sijaan, mikä tekee siitä käyttäjäystävällisemmän.

Tämä menetelmä varmistaa, että alkuperäinen prices-lista päivittyy suoraan uusilla, alennetuilla hinnoilla, ja muutokset näkyvät välittömästi kaikkialla ohjelmassa, missä prices-listaa käytetään.

Tehtävä

Swipe to start coding

Alennus sijainnin perusteella

Sovella alennusprosentteja tuotehintoihin niiden sijainnin perusteella listassa käyttämällä indeksin läpikäyntiä.

  1. Käytä for-silmukkaa yhdessä range()- ja len()-funktioiden kanssa käydäksesi läpi prices-listan indeksit.
  2. Sovella alennuksia indeksin perusteella: 10 % indeksille 0, 20 % indeksille 1, 15 % indeksille 2 ja 5 % indeksille 3.
  3. Päivitä jokainen hinta prices-listassa kertomalla se alennuskertoimella (esim. 0.9 tarkoittaa 10 % alennusta).
  4. Tulosta Updated price for item {index}: ${updated_price:.2f} jokaiselle tuotteelle.

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 5. Luku 4
single

single

some-alt