Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele For-Silmukat | Silmukat
Johdanto Python-Ohjelmointiin

Pyyhkäise näyttääksesi valikon

book
For-Silmukat

Tervetuloa osioon, joka on omistettu silmukoille!

Tässä luvussa sukellamme siihen, kuinka silmukat toimivat avaintyökaluna toistuvien tehtävien automatisoinnissa ja ovat välttämättömiä listojen ja muiden iteraatioon perustuvien tietotyyppien tehokkaassa käsittelyssä.

Liity Alexin seuraan, kun hän esittelee for-silmukoiden käyttöä yksinkertaistamaan toimintoja ruokakaupassamme:

for-silmukoiden käyttö Pythonissa mahdollistaa koodilohkon toistuvan suorittamisen jokaiselle kokoelman (iteraatio-objektin) kohteelle. Tässä on, mitä sinun tulee tietää for-silmukoista:

Syntaksi

Aloita for-silmukka for-avainsanalla, jota seuraa muuttujan nimi, kuten item, joka edustaa jokaista elementtiä sekvenssissä. Tätä seuraa in-avainsana ja sitten iteraatio-objekti, kuten groceryItems. Silmukan sisällä oleva koodilohko suoritetaan kerran jokaiselle elementille.

Tässä esimerkissä item toimii iteraattorimuuttujana, joka peräkkäin pääsee käsiksi jokaiseen elementtiin groceryItems-listassa ja suorittaa print()-funktion jokaiselle:

1234
groceryItems = ["milk", "eggs", "cheese", "butter"] for item in groceryItems: # Code to be executed print(item)
copy

Iteraatio viittaa prosessiin, jossa suoritetaan koodilohko toistuvasti. Python tukee kahta pääasiallista iteraatiotyyppiä:

Määrätty iteraatio

Missä iteraatioiden määrä on tiedossa etukäteen. for-silmukat ovat klassinen esimerkki, jotka pysähtyvät automaattisesti kun ne saavuttavat sekvenssin lopun.

Määräämätön iteraatio

Jossa suoritus jatkuu kunnes tietty ehto täyttyy, tyypillisesti käsitellään while-silmukoilla, joita käsitellään yksityiskohtaisesti tulevassa luvussa.

Esimerkki Sovellukset

for-silmukoita Pythonissa voidaan käyttää minkä tahansa iteroitavan objektin kanssa (lists, tuples, dictionaries, strings), mikä mahdollistaa datan käsittelyn elementtikohtaisesti.

Olipa tarpeen päästä käsiksi listan alkioihin, sanakirjan avaimiin tai arvoihin tai merkkijonon merkkeihin, for-silmukat tarjoavat selkeän syntaksin, joka yksinkertaistaa koodia toistuvissa tehtävissä.

Näin voit käyttää for-silmukkaa iteroidaksesi merkkijonon ja tuplen alkioiden yli, samalla tavalla kuin näimme listoilla:

123456789
# Print each letter in the string vegetable = "Carrot" for letter in vegetable: print(letter) # Tuple containing different categories of the grocery store categories = ("Produce", "Bakery", "Meat", "Dairy") for category in categories: print(category)
copy

Kun käytät for-silmukkaa sanakirjan kanssa, iteraatio suoraan sanakirjan yli käy oletuksena sen avaimien läpi.

Tässä on mitä odottaa, kun iteroit suoraan sanakirjan yli:

1234567
# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary key print("Product list:") for product in productStock: print(product)
copy

Huomaa, kuinka iteraattorimuuttuja product pääsee käsiksi vain sanakirjan avaimiin.

Jos haluat iteroida sanakirjan arvojen yli, voit käyttää values()-metodia.

Tämä on hyödyllistä operaatioissa, jotka vaativat pääsyn arvoihin ilman, että tarvitsee viitata avaimiin:

1234567
# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary value print("Stock counts:") for stock in productStock.values(): print(stock)
copy

Jos sinun täytyy käyttää avaimia ja arvoja samanaikaisesti, items()-metodi mahdollistaa avain-arvoparien läpikäynnin sanakirjassa.

Käyttääksemme tätä metodia for-silmukassa, määrittelemme kaksi muuttujaa ennen in-avainsanaa — yksi avaimelle (product) ja yksi arvolle (stock):

1234567
# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print both the key and value for each dictionary item print("Inventory details:") for product, stock in productStock.items(): print(f"{product} has {stock} units in stock.")
copy

Huom

Tässä esimerkissä käytämme f-merkkijonoja (tunnetaan myös nimellä muotoillut merkkijonolitteraalit) upottaaksemme muuttujat suoraan merkkijonoihin. Syntaksi on yksinkertainen: lisää f ennen avauslainausmerkkiä ", ja sijoita muuttujat tai lausekkeet aaltosulkeiden {} sisään merkkijonossa. Tämä menetelmä tekee merkkijonojen ja muuttujien yhdistämisestä tulostuslauseissa paljon luettavampaa, joten se on oppimisen arvoinen.

Hyödyntämällä tietämystäsi if/else-rakenteista, boolean-operaattoreista ja for-silmukoista, voimme suorittaa yksinkertaisen varastotarkastuksen sanakirjassa:

123456789101112131415161718
# Product names as keys and their stock levels as values inventory = { "milk": 120, "eggs": 30, "bread": 80, "apples": 10 } # The threshold stock level that triggers a restock minimum_stock = 50 # Evaluating stock levels and deciding if restocking is necessary print("Checking inventory status:") for product, quantity in inventory.items(): if quantity < minimum_stock: print(f"{product} requires restocking. Only {quantity} units remain.") else: print(f"{product} has adequate stock with {quantity} units available.")
copy

Huom

Saatat huomata, että olemme sijoittaneet if-lauseet for-silmukan sisään, mikä lisäsi ylimääräisen sisennyksen if-lohkoon. Kuten aiemmin mainittiin, jokainen sisennetty koodilohko voidaan käsitellä itsenäisenä, riippumatta siitä, mihin se on sijoitettu. Tärkeintä on varmistaa, että sisennys on johdonmukainen ja oikein niiden välillä.

Tehtävä

Swipe to start coding

Hallitse varastoa ja tarjouksia ruokakaupassa käymällä läpi varasto, tarkistamalla täydennystarpeet ja soveltamalla tarjouksia.

  • Käy läpi jokainen tuote inventory-sanakirjassa.
  • Silmukan sisällä, hae current_stock ja min_stock varastolistasta.
  • Käytä if-lausetta tarkistaaksesi, onko nykyinen varasto pienempi tai yhtä suuri kuin minimivarasto:
    • Jos on, tulosta täydennysviesti, lisää varastoa 20:lla, päivitä varasto ja tulosta päivitysviesti.
  • Käytä toista if-lausetta tarkistaaksesi, onko tuotetta promotions-sanakirjassa.

Tulostusvaatimukset

Jokaiselle tuotteelle tulosta:

  • --- Processing: <item> ---

  • Jos täydennystä tarvitaan:
    <item> tarvitsee täydennystä. Nykyinen varasto: <current_stock>. Vähimmäisvaatimus: <min_stock>

    Päivitetty varasto tuotteelle <item>: <updated_stock>

  • Jos tarjous on olemassa:
    Tarjous tuotteelle <item>: <promotion_details>

  • Jos ei:
    Ei tarjouksia tuotteelle <item>

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 1

Kysy tekoälyä

expand
ChatGPT

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

book
For-Silmukat

Tervetuloa osioon, joka on omistettu silmukoille!

Tässä luvussa sukellamme siihen, kuinka silmukat toimivat avaintyökaluna toistuvien tehtävien automatisoinnissa ja ovat välttämättömiä listojen ja muiden iteraatioon perustuvien tietotyyppien tehokkaassa käsittelyssä.

Liity Alexin seuraan, kun hän esittelee for-silmukoiden käyttöä yksinkertaistamaan toimintoja ruokakaupassamme:

for-silmukoiden käyttö Pythonissa mahdollistaa koodilohkon toistuvan suorittamisen jokaiselle kokoelman (iteraatio-objektin) kohteelle. Tässä on, mitä sinun tulee tietää for-silmukoista:

Syntaksi

Aloita for-silmukka for-avainsanalla, jota seuraa muuttujan nimi, kuten item, joka edustaa jokaista elementtiä sekvenssissä. Tätä seuraa in-avainsana ja sitten iteraatio-objekti, kuten groceryItems. Silmukan sisällä oleva koodilohko suoritetaan kerran jokaiselle elementille.

Tässä esimerkissä item toimii iteraattorimuuttujana, joka peräkkäin pääsee käsiksi jokaiseen elementtiin groceryItems-listassa ja suorittaa print()-funktion jokaiselle:

1234
groceryItems = ["milk", "eggs", "cheese", "butter"] for item in groceryItems: # Code to be executed print(item)
copy

Iteraatio viittaa prosessiin, jossa suoritetaan koodilohko toistuvasti. Python tukee kahta pääasiallista iteraatiotyyppiä:

Määrätty iteraatio

Missä iteraatioiden määrä on tiedossa etukäteen. for-silmukat ovat klassinen esimerkki, jotka pysähtyvät automaattisesti kun ne saavuttavat sekvenssin lopun.

Määräämätön iteraatio

Jossa suoritus jatkuu kunnes tietty ehto täyttyy, tyypillisesti käsitellään while-silmukoilla, joita käsitellään yksityiskohtaisesti tulevassa luvussa.

Esimerkki Sovellukset

for-silmukoita Pythonissa voidaan käyttää minkä tahansa iteroitavan objektin kanssa (lists, tuples, dictionaries, strings), mikä mahdollistaa datan käsittelyn elementtikohtaisesti.

Olipa tarpeen päästä käsiksi listan alkioihin, sanakirjan avaimiin tai arvoihin tai merkkijonon merkkeihin, for-silmukat tarjoavat selkeän syntaksin, joka yksinkertaistaa koodia toistuvissa tehtävissä.

Näin voit käyttää for-silmukkaa iteroidaksesi merkkijonon ja tuplen alkioiden yli, samalla tavalla kuin näimme listoilla:

123456789
# Print each letter in the string vegetable = "Carrot" for letter in vegetable: print(letter) # Tuple containing different categories of the grocery store categories = ("Produce", "Bakery", "Meat", "Dairy") for category in categories: print(category)
copy

Kun käytät for-silmukkaa sanakirjan kanssa, iteraatio suoraan sanakirjan yli käy oletuksena sen avaimien läpi.

Tässä on mitä odottaa, kun iteroit suoraan sanakirjan yli:

1234567
# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary key print("Product list:") for product in productStock: print(product)
copy

Huomaa, kuinka iteraattorimuuttuja product pääsee käsiksi vain sanakirjan avaimiin.

Jos haluat iteroida sanakirjan arvojen yli, voit käyttää values()-metodia.

Tämä on hyödyllistä operaatioissa, jotka vaativat pääsyn arvoihin ilman, että tarvitsee viitata avaimiin:

1234567
# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary value print("Stock counts:") for stock in productStock.values(): print(stock)
copy

Jos sinun täytyy käyttää avaimia ja arvoja samanaikaisesti, items()-metodi mahdollistaa avain-arvoparien läpikäynnin sanakirjassa.

Käyttääksemme tätä metodia for-silmukassa, määrittelemme kaksi muuttujaa ennen in-avainsanaa — yksi avaimelle (product) ja yksi arvolle (stock):

1234567
# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print both the key and value for each dictionary item print("Inventory details:") for product, stock in productStock.items(): print(f"{product} has {stock} units in stock.")
copy

Huom

Tässä esimerkissä käytämme f-merkkijonoja (tunnetaan myös nimellä muotoillut merkkijonolitteraalit) upottaaksemme muuttujat suoraan merkkijonoihin. Syntaksi on yksinkertainen: lisää f ennen avauslainausmerkkiä ", ja sijoita muuttujat tai lausekkeet aaltosulkeiden {} sisään merkkijonossa. Tämä menetelmä tekee merkkijonojen ja muuttujien yhdistämisestä tulostuslauseissa paljon luettavampaa, joten se on oppimisen arvoinen.

Hyödyntämällä tietämystäsi if/else-rakenteista, boolean-operaattoreista ja for-silmukoista, voimme suorittaa yksinkertaisen varastotarkastuksen sanakirjassa:

123456789101112131415161718
# Product names as keys and their stock levels as values inventory = { "milk": 120, "eggs": 30, "bread": 80, "apples": 10 } # The threshold stock level that triggers a restock minimum_stock = 50 # Evaluating stock levels and deciding if restocking is necessary print("Checking inventory status:") for product, quantity in inventory.items(): if quantity < minimum_stock: print(f"{product} requires restocking. Only {quantity} units remain.") else: print(f"{product} has adequate stock with {quantity} units available.")
copy

Huom

Saatat huomata, että olemme sijoittaneet if-lauseet for-silmukan sisään, mikä lisäsi ylimääräisen sisennyksen if-lohkoon. Kuten aiemmin mainittiin, jokainen sisennetty koodilohko voidaan käsitellä itsenäisenä, riippumatta siitä, mihin se on sijoitettu. Tärkeintä on varmistaa, että sisennys on johdonmukainen ja oikein niiden välillä.

Tehtävä

Swipe to start coding

Hallitse varastoa ja tarjouksia ruokakaupassa käymällä läpi varasto, tarkistamalla täydennystarpeet ja soveltamalla tarjouksia.

  • Käy läpi jokainen tuote inventory-sanakirjassa.
  • Silmukan sisällä, hae current_stock ja min_stock varastolistasta.
  • Käytä if-lausetta tarkistaaksesi, onko nykyinen varasto pienempi tai yhtä suuri kuin minimivarasto:
    • Jos on, tulosta täydennysviesti, lisää varastoa 20:lla, päivitä varasto ja tulosta päivitysviesti.
  • Käytä toista if-lausetta tarkistaaksesi, onko tuotetta promotions-sanakirjassa.

Tulostusvaatimukset

Jokaiselle tuotteelle tulosta:

  • --- Processing: <item> ---

  • Jos täydennystä tarvitaan:
    <item> tarvitsee täydennystä. Nykyinen varasto: <current_stock>. Vähimmäisvaatimus: <min_stock>

    Päivitetty varasto tuotteelle <item>: <updated_stock>

  • Jos tarjous on olemassa:
    Tarjous tuotteelle <item>: <promotion_details>

  • Jos ei:
    Ei tarjouksia tuotteelle <item>

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 1
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