Pythonia Toukolle: osa 2

Muuttujia

Voit laittaa lukuja ja tekstiä talteen muuttujiin. Tässä muuttujan a arvoksi annetaan luku 1 ja muuttujan b arvoksi annetaan luku 2. Kun sitten lasketaan tämän jälkeen a + b, tulos on sama kuin laskettaisiin 1 + 2, kokeile:

a = 1
b = 2
print(a + b)

Voit antaa muuttujille mitä tahansa nimiä, mitä mieleen juolahtaa:

koira = 1
peruna = 2
print(koira + peruna)

Voit vaihtaa muuttujan arvoa. Tämä ohjelma laskee ensin 1 + 2 ja sitten 1 + 10:

a = 1
b = 2
print(a + b)
b = 10
print(a + b)

Toistoa

Voit laittaa Pythonin toistamaan samaa asiaa monta kertaa, tähän tapaan (kokeile!):

for i in range(10):
    print(i)

Tätä sanotaan silmukaksi. Tämä tekee täsmälleen saman asian kuin jos kirjoittaisit tällaisen ohjelman:

i = 0
print(i)
i = 1
print(i)
i = 2
print(i)
i = 3
print(i)
i = 4
print(i)
i = 5
print(i)
i = 6
print(i)
i = 7
print(i)
i = 8
print(i)
i = 9
print(i)

Eli muuttuja nimeltä i saa ensin arvon 0, sitten 1, sitten 2 ja niin edelleen. Voit kokeilla erilaisia silmukoita, tämä laskee nollasta neljään:

for i in range(5):
    print(i)

Tämä taas 0–99:

for i in range(100):
    print(i)

Tietokoneilla on tapana laskea nollasta alkaen, mutta jos haluat esimerkiksi laskea yhdestä kymmeneen, voit lisätä tulostettaessa yhden:

for i in range(10):
    print(i + 1)

Tässä oli muuttujan nimenä i, mutta voit antaa muuttujalle minkä tahansa nimen:

for juttu in range(10):
    print(juttu)

Silmukan sisällä voit tehdä mitä tahansa, vaikkapa:

for i in range(10):
    print("Hei!")

Mitähän tämä tekee?

for i in range(10):
    print("Touko " * i)

Silmukoita peräkkäin ja sisäkkäin

Silmukan sisälle voi laittaa monta eri komentoa, tähän tapaan (huomaa joka rivin alussa olevat välilyönnit):

for i in range(5):
    print("Hei")
    print("Touko")

Tässä pelkästään Hei-tekstin tulostus on silmukan sisällä ja Touko tulostetaan vasta sen jälkeen (kokeile!):

for i in range(5):
    print("Hei")
print("Touko")

Silmukoitakin voi laittaa peräkkäin:

for i in range(5):
    print("Hei")
for j in range(5):
    print("Touko")

Ja niitä voi laittaa vaikka sisäkkäin! Mitähän tässä tapahtuu?

for i in range(5):
    print("Hei")
    for j in range(3):
        print("Touko")

Entä tässä? Kokeile eri lukuja viitosten paikalle!

for i in range(5):
    for j in range(5):
        print("x" * i + "o" * j)

Mitähän tämä tekee? Huomaa, että tässä sisempi silmukka pyörii ensin 0 kertaa, sitten 1 kerran, sitten 2 kertaa jne. ja lopuksi 9 kertaa:

for i in range(10):
    for j in range(i):
        print("x" * i)
    print()

Entä jos muutetaankin hiukan?

for i in range(10):
    for j in range(i):
        print("x" * j)
    print()