Toistorakenne for-silmukka
Toistorakenne
For-komennolla jokin muuttuja saadaan käymään läpi halutut arvot. Range-komennon ja for-silmukan yhdistämällä muuttuja käy läpi haluttuja lukuja.
|
Välitehtävä
Esimerkki 4. #Tässä ohjelmassa muuttuja "n" saa arvot 0, 1, 2, 3, 4 ja 5 ja kertoo luvut itsellään. for n in range(6): #Muuttuja n käy läpi luvut 0, 1, 2, 3, 4 ja 5 range(6) komennolla. [[$ \ \ \ \ \ $]] print ("Luku", n, "kerrottuna itsellään on", n * n) [[$\vdots$]] Luku 0 kerrottuna itsellään on 0 Luku 1 kerrottuna itsellään on 1 Luku 2 kerrottuna itsellään on 4 Luku 3 kerrottuna itsellään on 9 Luku 4 kerrottuna itsellään on 16 Luku 5 kerrottuna itsellään on 25 |
Range komennolla muuttuja käy läpi halutut luvut. Range-komennossa luku saadaan käyttäytymään kolmella tavalla:
Komento | Merkitys | Esimerkki | Luvut |
range(luku) | Käydään läpi luvut nollasta annettuun lukuun asti ykkösen välein. |
range(7) | 0, 1, 2, 3, 4, 5, 6 |
range(1. luku, 2. luku) | Käydään läpi luvut 1. luvusta 2. lukuun ykkösen välein | range(2, 5) | 2, 3, 4 |
range(1. luku, 2. luku, askelväli) | Käydään läpi luvut 1. luvusta 2. lukuun tietyn välein | range(3, 8, 2) | 3, 5, 7 |
Esimerkki 5. #Tämä ohjelma tulostaa luvun viisi kertotaulun eli lukuja vitosen välein. for n in range(0, 51, 5): [[$ \ \ \ \ \ $]] print (n) [[$\vdots$]] 0 5 10 15 20 25 30 35 40 45 50 |
Välitehtävä
Esimerkki 6. #Tulostetaan kaikki kolmen kirjaimen kirjainyhdistelmät, jotka sisältävät kirjaimia A, B tai C. lista = ["A", "B", "C"] #Listoista lisää seuraavassa kappaleessa. for i in lista: [[$ \ \ \ \ \ $]] for j in lista: [[$ \ \ \ \ \ $]] [[$ \ \ \ \ \ $]] if j == i: [[$ \ \ \ \ \ $]] [[$ \ \ \ \ \ $]] [[$ \ \ \ \ \ $]] continue [[$ \ \ \ \ \ $]] [[$ \ \ \ \ \ $]] for k in lista: [[$ \ \ \ \ \ $]] [[$ \ \ \ \ \ $]] [[$ \ \ \ \ \ $]] if k == j or k == i: [[$ \ \ \ \ \ $]] [[$ \ \ \ \ \ $]] [[$ \ \ \ \ \ $]] [[$ \ \ \ \ \ $]] continue [[$ \ \ \ \ \ $]] [[$ \ \ \ \ \ $]] [[$ \ \ \ \ \ $]] print (i,j,k) [[$\vdots$]] ABC ACB BAC BCA CAB CBA |
Keskeytys
Break-komennolla for- tai while-silmukka voidaan keskeyttää.
Esimerkki 7. for n in range(1100): [[$ \ \ \ \ \ $]]print (n) [[$ \ \ \ \ \ $]]if n >= 10: [[$ \ \ \ \ \ $]] [[$ \ \ \ \ \ $]] break #Ilman break-komentoa ohjelma tulostaisi numerot 1100 asti. [[$\vdots$]] 0 1 2 3 4 5 6 7 8 9 10 |
Välitehtävä