For-silmukat
Tervetuloa silmukoihin keskittyvään osioon!
Tässä luvussa perehdytään siihen, miten silmukat toimivat keskeisenä työkaluna toistuvien tehtävien automatisoinnissa ja ovat olennaisia listojen sekä muiden iteraattoridatatyyppien tehokkaassa käsittelyssä.
Liity Alexin seuraan, kun hän havainnollistaa for-silmukoiden käyttöä helpottamaan toimintaa ruokakaupassamme:
for-silmukoiden käyttö Pythonissa mahdollistaa koodilohkon toistuvan suorittamisen jokaiselle kokoelman (iteraattoriobjekti) alkiolle. Tässä keskeiset asiat for-silmukoista:
Syntaksi
Aloita for-silmukka for-avainsanalla, jota seuraa muuttujan nimi, kuten item, joka edustaa kutakin jonoa olevaa alkiota. Tämän jälkeen tulee in-avainsana ja sitten iteroitava objekti, kuten groceryItems. Silmukan sisällä oleva koodilohko suoritetaan kerran jokaista alkiota kohden.
Tässä esimerkissä item toimii iteraattorimuuttujana, joka käy läpi jokaisen alkion groceryItems-listassa ja suorittaa print()-funktion jokaiselle:
1234groceryItems = ["milk", "eggs", "cheese", "butter"] for item in groceryItems: # Code to be executed print(item)
Iterointi tarkoittaa koodilohkon suorittamista toistuvasti. Python tukee kahta pääasiallista iterointityyppiä:
Määrätty iterointi
Tilanne, jossa toistojen määrä on tiedossa etukäteen. for-silmukat ovat tästä klassinen esimerkki, ja ne pysähtyvät automaattisesti saavuttaessaan sekvenssin lopun.
Määräämätön iterointi
Suoritus jatkuu kunnes tietty ehto täyttyy, mikä hoidetaan tyypillisesti while-silmukoilla. Näitä käsitellään tarkemmin seuraavassa luvussa.
Esimerkkisovelluksia
for-silmukoita Pythonissa voidaan käyttää kaikkien iteroitavien olioiden kanssa (lists, tuples, dictionaries, strings), mikä mahdollistaa datan käsittelyn yksittäisen alkion tasolla.
Olipa kyseessä listan alkioiden, sanakirjan avainten tai arvojen tai merkkijonon merkkien käsittely, for-silmukat tarjoavat selkeän syntaksin, joka yksinkertaistaa toistuvia tehtäviä.
Alla esimerkki siitä, kuinka for-silmukkaa voidaan käyttää iteroimaan merkkijonon ja tuplen alkioiden yli, samalla tavalla kuin listojen kanssa:
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)
Kun käytät for-silmukkaa sanakirjan kanssa, iteraatio sanakirjan yli käy oletuksena sen avainten kautta.
Tältä näyttää, 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)
Huomaa, että iteraattorimuuttuja product käsittelee vain sanakirjan avaimia.
Jos haluat käydä läpi sanakirjan arvot, voit käyttää values()-metodia.
Tämä on hyödyllistä tilanteissa, joissa tarvitset pääsyn arvoihin ilman, että sinun 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)
Jos tarvitset samanaikaisesti pääsyn avaimiin ja arvoihin, items()-metodi mahdollistaa avain-arvoparien läpikäynnin sanakirjassa.
Tämän metodin käyttö for-silmukassa edellyttää, että määritellään 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.")
Huom
Tässä esimerkissä käytetään f-merkkijonoja (tunnetaan myös nimellä muotoillut merkkijonot) muuttujien upottamiseen suoraan merkkijonoon. Syntaksi on yksinkertainen: lisää
fennen lainausmerkkiä"ja sijoita muuttujat tai lausekkeet aaltosulkeisiin{}merkkijonon sisällä. Tämä tapa tekee merkkijonojen ja muuttujien yhdistämisestä tulostuslauseissa huomattavasti selkeämpää, joten sen opettelu kannattaa.
Hyödyntämällä tietämystäsi if/else-rakenteista, loogisista operaattoreista ja for-silmukoista voidaan suorittaa yksinkertainen varastotarkistus sanakirjalle:
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.")
Huom
Saatat huomata, että olemme sijoittaneet
if-lauseetfor-silmukan sisään, mikä lisäsi ylimääräisen sisennyksenif-lohkoon. Kuten aiemmin mainittiin, jokainen sisennetty koodilohko voidaan käsitellä itsenäisenä riippumatta siitä, missä se sijaitsee. Tärkeintä on varmistaa, että sisennys on johdonmukaista ja oikein niiden välillä.
Swipe to start coding
Tuotteen hintojen summa
Laske tuotteiden kokonaiskustannus käyttämällä for-silmukkaa, joka käy läpi hintojen listan.
- Luo muuttuja
totalja aseta sen arvoksi0. - Käytä for-silmukkaa käydäksesi läpi jokainen
priceprices-listassa. - Lisää jokainen
pricetotal-muuttujaan silmukan sisällä. - Tulosta lopullinen
totalsilmukan jälkeen.
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 iterating over a list, tuple, and dictionary?
How do I use a for loop to access both keys and values in a dictionary?
Can you give more examples of using for loops with different data types?
Mahtavaa!
Completion arvosana parantunut arvoon 2.17
For-silmukat
Pyyhkäise näyttääksesi valikon
Tervetuloa silmukoihin keskittyvään osioon!
Tässä luvussa perehdytään siihen, miten silmukat toimivat keskeisenä työkaluna toistuvien tehtävien automatisoinnissa ja ovat olennaisia listojen sekä muiden iteraattoridatatyyppien tehokkaassa käsittelyssä.
Liity Alexin seuraan, kun hän havainnollistaa for-silmukoiden käyttöä helpottamaan toimintaa ruokakaupassamme:
for-silmukoiden käyttö Pythonissa mahdollistaa koodilohkon toistuvan suorittamisen jokaiselle kokoelman (iteraattoriobjekti) alkiolle. Tässä keskeiset asiat for-silmukoista:
Syntaksi
Aloita for-silmukka for-avainsanalla, jota seuraa muuttujan nimi, kuten item, joka edustaa kutakin jonoa olevaa alkiota. Tämän jälkeen tulee in-avainsana ja sitten iteroitava objekti, kuten groceryItems. Silmukan sisällä oleva koodilohko suoritetaan kerran jokaista alkiota kohden.
Tässä esimerkissä item toimii iteraattorimuuttujana, joka käy läpi jokaisen alkion groceryItems-listassa ja suorittaa print()-funktion jokaiselle:
1234groceryItems = ["milk", "eggs", "cheese", "butter"] for item in groceryItems: # Code to be executed print(item)
Iterointi tarkoittaa koodilohkon suorittamista toistuvasti. Python tukee kahta pääasiallista iterointityyppiä:
Määrätty iterointi
Tilanne, jossa toistojen määrä on tiedossa etukäteen. for-silmukat ovat tästä klassinen esimerkki, ja ne pysähtyvät automaattisesti saavuttaessaan sekvenssin lopun.
Määräämätön iterointi
Suoritus jatkuu kunnes tietty ehto täyttyy, mikä hoidetaan tyypillisesti while-silmukoilla. Näitä käsitellään tarkemmin seuraavassa luvussa.
Esimerkkisovelluksia
for-silmukoita Pythonissa voidaan käyttää kaikkien iteroitavien olioiden kanssa (lists, tuples, dictionaries, strings), mikä mahdollistaa datan käsittelyn yksittäisen alkion tasolla.
Olipa kyseessä listan alkioiden, sanakirjan avainten tai arvojen tai merkkijonon merkkien käsittely, for-silmukat tarjoavat selkeän syntaksin, joka yksinkertaistaa toistuvia tehtäviä.
Alla esimerkki siitä, kuinka for-silmukkaa voidaan käyttää iteroimaan merkkijonon ja tuplen alkioiden yli, samalla tavalla kuin listojen kanssa:
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)
Kun käytät for-silmukkaa sanakirjan kanssa, iteraatio sanakirjan yli käy oletuksena sen avainten kautta.
Tältä näyttää, 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)
Huomaa, että iteraattorimuuttuja product käsittelee vain sanakirjan avaimia.
Jos haluat käydä läpi sanakirjan arvot, voit käyttää values()-metodia.
Tämä on hyödyllistä tilanteissa, joissa tarvitset pääsyn arvoihin ilman, että sinun 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)
Jos tarvitset samanaikaisesti pääsyn avaimiin ja arvoihin, items()-metodi mahdollistaa avain-arvoparien läpikäynnin sanakirjassa.
Tämän metodin käyttö for-silmukassa edellyttää, että määritellään 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.")
Huom
Tässä esimerkissä käytetään f-merkkijonoja (tunnetaan myös nimellä muotoillut merkkijonot) muuttujien upottamiseen suoraan merkkijonoon. Syntaksi on yksinkertainen: lisää
fennen lainausmerkkiä"ja sijoita muuttujat tai lausekkeet aaltosulkeisiin{}merkkijonon sisällä. Tämä tapa tekee merkkijonojen ja muuttujien yhdistämisestä tulostuslauseissa huomattavasti selkeämpää, joten sen opettelu kannattaa.
Hyödyntämällä tietämystäsi if/else-rakenteista, loogisista operaattoreista ja for-silmukoista voidaan suorittaa yksinkertainen varastotarkistus sanakirjalle:
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.")
Huom
Saatat huomata, että olemme sijoittaneet
if-lauseetfor-silmukan sisään, mikä lisäsi ylimääräisen sisennyksenif-lohkoon. Kuten aiemmin mainittiin, jokainen sisennetty koodilohko voidaan käsitellä itsenäisenä riippumatta siitä, missä se sijaitsee. Tärkeintä on varmistaa, että sisennys on johdonmukaista ja oikein niiden välillä.
Swipe to start coding
Tuotteen hintojen summa
Laske tuotteiden kokonaiskustannus käyttämällä for-silmukkaa, joka käy läpi hintojen listan.
- Luo muuttuja
totalja aseta sen arvoksi0. - Käytä for-silmukkaa käydäksesi läpi jokainen
priceprices-listassa. - Lisää jokainen
pricetotal-muuttujaan silmukan sisällä. - Tulosta lopullinen
totalsilmukan jälkeen.
Ratkaisu
Kiitos palautteestasi!
single