Siirry sisältöön

Python 3/for-silmukka

Wikikirjastosta
Esimerkki
alue = range(1,11)
for luku in alue:
        print(luku)

Tuloste:

1
2
3
4
5
6
7
8
9
10
Sama toiminto lyhyemmin
for count in range(1,11):
        print(count)


Esimerkki listan selauksesta for-silmukalla
demolist = ['life', 42, 'the universe', 6, 'and', 7, 'everything']
for item in demolist:
    print("The Current item is:", end=" ")
    print(item)

Koodin tuloste:

The Current item is: life
The Current item is: 42
The Current item is: the universe
The Current item is: 6
The Current item is: and
The Current item is: 7
The Current item is: everything


Listan alkioitten yhteenlasku
list = [2,4,6,8]
sum = 0
for num in list:
        sum = sum + num
print("The sum is:",sum)

Koodin tuloste:

The sum is: 20


Duplikaattien haku listasta
list = [4, 5, 7, 8, 9, 1, 0, 7, 10]
list.sort()
prev = list[0]
del list[0]
for item in list:
        if prev == item:
                print("Duplicate of %s Found" %(prev))
        prev = item

Ohjelman tuloste:

Duplicate of 7 Found


Yhdeksän ensimmäistä Fibonaccin sarjan lukua laskeva ohjelma
a = 1
b = 1
for c in range(1,10):
        print(a, end=" ")
        n = a + b
        a = b
        b = n

Ohjelman tuloste:

1 1 2 3 5 8 13 21 34

Python 3:ssa print-käskylle voi antaa toisena parametrinä end="", jossa ""-merkkien sisään voidaan määritellä tulistuksen lopuksi tulostettavat merkit. Edellä oleva esimerkki siis ei tulosta tulostuksen lopuksi mitään, joten luvut tulostuvat samalle riville.

Alkioiden numerointi enumerate-funktiolla

[muokkaa | muokkaa wikitekstiä]

Sisäänrakennettu funktio enumerate liittää listaan tai muuhun iteroitavaan olioon järjestysluvun. Kun sitä käytetään for-silmukassa, tulee silmukan nykyarvosta monikko (järjestysluku, listan alkio), jonka voi hajottaa kahdeksi arvoksi erottamalla ne pilkulla for- ja in-sanojen välissä.

Tässä i saa järjestysluvun ja v alkuperäisen listan alkion.

lista = [ 'a', 'b', 'c' ]
for i, v in enumerate(lista):
        print(i, v)

Ohjelman tuloste:

0 a
1 b
2 c

Valinnaisesti voi enumerate-funktiolle antaa aloitusnumeron.

for i, v in enumerate(lista, 1):
        print(i, v)

Ohjelman tuloste:

1 a
2 b
3 c

Listojen läpikäyminen rinnakkain zip-funktion avulla

[muokkaa | muokkaa wikitekstiä]

Sisäänrakennetulla funktiolla zip voi liittää kaksi tai useampaa listaa alkioittain monikoiksi. Samaan tapaan kuin enumerate-funktio yhdistää alkioon järjestysluvun, voi zip-funktiolla liittää siihen minkä tahansa arvon.

pelaajat = [ 'Urtti', 'Moke', 'Pule' ]
tulokset = [ 230, 187, 176 ]
taso = [ 5, 3, 4 ]

print("Pelaaja\tTulos\tTaso")
for pelaaja, tulos, taso in zip(pelaajat, tulokset, taso):
    print(pelaaja, tulos, taso, sep='\t')

Ohjelman tuloste:

Pelaaja	Tulos	Taso
Urtti	230	5
Moke	187	3
Pule	176	4

Sekä zip että enumerate toimivat myös generaattoreiden kanssa.