Toistolauseet/silmukat
Pythonin Silmukat: For, For Range ja While
Pythonissa on kolme tärkeää silmukkarakennetta: for
, for range
ja while
. Katsotaanpa, kuinka ne toimivat!
for
-silmukka
Pythonin for
-silmukkaa käytetään yleisesti iterointiin eli toistuvan toiminnon suorittamiseen. Tässä on yksinkertainen esimerkki:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
Tässä esimerkissä for
-silmukka käy läpi jokaisen fruits
-listan elementin ja tulostaa sen. Output on:
apple
banana
cherry
for range
-silmukka
for
-silmukkaa voidaan myös yhdistää range()
-funktion kanssa toistuvan toiminnon suorittamiseen tietyn määrän kertoja. Tässä on esimerkki
for i in range(5):
print(i)
Tässä esimerkissä for
-silmukka tulostaa numerot 0-4. range(5)
luo lukusarjan 0:sta 4:ään.
Output on:
0
1
2
3
4
while
-silmukat
while
-silmukkaa käytetään toistuvan toiminnon suorittamiseen, kunnes tietty ehto ei enää täyty. Tässä on esimerkki:
i = 0
while i < 5:
print(i)
i += 1
Tässä esimerkissä while
-silmukka tulostaa numerot 0-4. Silmukka jatkuu niin kauan, kunnes i
ei enää ole pienempi kuin 5. okaisella silmukan kierroksella i
kasvatetaan yhdellä (i += 1
), joten silmukka tulostaa samat numerot kuin edellinen for
-silmukka.
0
1
2
3
4
Huomaa, että while
-silmukoissa on tärkeää varmistaa, että ehto ei täyty jossain vaiheessa, jotta silmukka ei jatku ikuisesti.
Pythonin Continue ja Break
Pythonin continue
ja break
ovat ohjauslauseita, joita voidaan käyttää silmukoissa (kuten for
ja while
) ohjaamaan ohjelman toimintaa.
Continue
continue
-avainsanaa käytetään ohjaamaan ohjelmaa takaisin silmukan alkuun. Se ohittaa silmukan loput lauseet ja jatkaa seuraavaan iteraatioon.
Tässä on esimerkki continue
-avainsanan käytöstä:
for i in range(10):
if i == 5:
continue
print(i)
Tässä esimerkissä ohjelma tulostaa numerot 0-9, mutta ohittaa numeron 5, koska continue
-avainsanaa käytetään ohittamaan silmukan loput lauseet, kun i
on 5.
Break
break
-avainsanaa käytetään lopettamaan silmukan suorittaminen kokonaan. Kun break
-avainsana kohtaa, ohjelma poistuu silmukasta, ja silmukan jälkeinen koodi alkaa suorittua.
Tässä on esimerkki break
-avainsanan käytöstä:
for i in range(10):
if i == 5:
break
print(i)
Tässä esimerkissä ohjelma tulostaa numerot 0-4, ja kun i
on 5, break
-avainsana lopettaa silmukan. Toisin kuin continue
, break
ei vain ohita silmukan loput lauseet, vaan se lopettaa silmukan suorittamisen kokonaan.
Yhteenvetona, continue
-avainsanaa käytetään ohittamaan silmukan loput lauseet ja jatkamaan seuraavaan iteraatioon, kun taas break
-avainsanaa käytetään lopettamaan silmukan suorittaminen kokonaan.
enumerate()
-funktio
Pythonin enumerate()
-funktio on erittäin hyödyllinen, kun haluat iteroida läpi listan ja tarvitset sekä elementin että sen indeksin. Tässä on esimerkki siitä, miten se toimii:
fruits = ["apple", "banana", "cherry"]
for i, fruit in enumerate(fruits):
print(f"Elementin indeksi on {i} ja sen arvo on {fruit}")
Tässä esimerkissä enumerate()
-funktio palauttaa sekä elementin että sen indeksin. Tulostus on seuraavanlainen:
Elementin indeksi on 0 ja sen arvo on apple
Elementin indeksi on 1 ja sen arvo on banana
Elementin indeksi on 2 ja sen arvo on cherry
Näin pystymme tulostamaan sekä elementin arvon että sen indeksin.
Jos et jostain syystä halua käyttää enumerate()
-funktiota jvoit köyttää esimerkiksi:
fruits = ["apple", "banana", "cherry"]
for i in range(len(fruits)):
print(f"Elementin indeksi on {i} ja sen arvo on {fruits[i]}")
Tässä esimerkissä käytetään range()
-funktiota yhdessä len()
-funktion kanssa, joka palauttaa listan pituuden. Tämä luo silmukan, joka iteroi läpi listan indeksien. Tai vaihtoehtoisesti.
fruits = ["apple", "banana", "cherry"]
index = 0
for fruit in fruits:
print(f"Elementin indeksi on {index} ja sen arvo on {fruit}")
index += 1
Tässä esimerkissä luodaan erillinen indeksimuuttuja, joka kasvatetaan yhdellä jokaisen iteraation jälkeen.
Myös tässä esimerkeissä tulostus on sama kuin enumerate()
-funktiolla:
Elementin indeksi on 0 ja sen arvo on apple
Elementin indeksi on 1 ja sen arvo on banana
Elementin indeksi on 2 ja sen arvo on cherry
Yhden rivin silmukat (List Comprehensions)
Pythonin yhden rivin silmukat, tunnetaan myös nimellä List Comprehensions, ovat tehokas tapa suorittaa toimintoja yhdellä rivillä. Ne ovat erityisen hyviä luomaan uusia listoja vanhojen pohjalta. Itse en ole tämän merkinnän fani, mutta sitä näkee paljon verkossa olevassa Python koodissa, joten sitä on ainakin osatava lukea. Tässä on esimerkki 'one linerin' käytöstä:
numbers = [1, 2, 3, 4, 5]
squares = [number**2 for number in numbers]
print(squares)
Tässä esimerkissä luomme uuden listan, jossa jokainen alkio on numbers
-listan alkion neliö. Tulostus on seuraavanlainen:
[1, 4, 9, 16, 25]