CHEM-A2600 - Kemiantekniikan ohjelmointikurssi, 26.10.2020-04.12.2020
Kurssiasetusten perusteella kurssi on päättynyt 04.12.2020 Etsi kursseja: CHEM-A2600
Python-oppimateriaali (CHEM-A2600)
for-silmukka
for-silmukassa toistojen määrä määritellään silmukan alkaessa. Toistojen määrittelyssä auttaa range-niminen funktio, jota voi käyttää kolmella eri tavalla: range(toistot), range(alku, loppu), tai range(alku, loppu, askel). Esimerkki:
# Tulostetaan Hep! viisi kertaa # Silmukkamuuttujaa "luku" ei hyödynnetä silmukan sisällä for luku in range(5): print("Hep!")
tulostaa:
Hep!
Hep!
Hep!
Hep!
Hep!
Huomaa, että käytettäessä muotoa range(toistot), range-funktion silmukkalaskuri "luku" saa arvot [0 .. toistot – 1]. Eli tässä esimerkissä se saa arvot 0, 1, 2, 3 ja 4:
for luku in range(5): print(luku * 10)
Silmukkalaskurin "luku" arvo kasvaa automaattisesti. Esimerkkikoodi tulostaa:
0 10 20 30 40
Kun range-funktion aloitusarvo määrätään käyttämällä muotoa range(alku, loppu), silmukkalaskuri "luku" saavuttaa arvon loppu – 1:
for luku in range(1, 6): print(luku)
tulostaa
1 2 3 4 5
Silmukkalaskurin arvoa voi kasvattaa myös isommalla askeleella muodolla range(alku, loppu, askel). Nyt silmukkalaskuri "luku" saavuttaa arvon loppu – askel.
for luku in range(100, 110, 2): print(luku)
tulostaa:
100 102 104 106 108
Arvoja voi käydä läpi myös suuremmasta pienempään. Tällöin askel on negatiivinen ja silmukkalaskuri saavuttaa arvon loppu + 1:
for luku in range(10, 5, -1): print(luku)
tulostaa
10 9 8 7 6
Myös merkkijonoja voi käydä läpi for-silmukalla:
for merkki in "Python": print(merkki * 5)
tulostaa:
PPPPP yyyyy ttttt hhhhh ooooo nnnnn
for-silmukasta voi poistua break-käskyllä samaan tapaan kuin while-silmukasta:
maksimi = int(input("Anna positiivinen kokonaisluku ja tulostan kaikki sitä pienemmät kokonaisluvut\n")) for luku in range(1, maksimi): print(luku) if luku == 5: print("En jaksa enempää") break
tulostaa:
Anna positiivinen kokonaisluku ja tulostan kaikki sitä pienemmät kokonaisluvut > 11 1 2 3 4 5 En jaksa enempää
Sisäkkäiset silmukat
Sekä for- että while-silmukoita voi olla useampia sisäkkäin. Tässä esimerkki for-silmukalle:
for luku1 in range(1, 6): # Käytetään print-funktiossa välilyöntiä rivinvaihdon sijasta (end = " ") print("Luvun", luku1, "kertotaulu lukuun 10 asti:", end = " ") for luku2 in range(1, 11): print(luku1 * luku2, end = " ") # Tulostetaan tyhjä merkkijono, eli pelkkä rivinvaihto print("")
tulostaa:
Luvun 1 kertotaulu lukuun 10 asti: 1 2 3 4 5 6 7 8 9 10 Luvun 2 kertotaulu lukuun 10 asti: 2 4 6 8 10 12 14 16 18 20 Luvun 3 kertotaulu lukuun 10 asti: 3 6 9 12 15 18 21 24 27 30 Luvun 4 kertotaulu lukuun 10 asti: 4 8 12 16 20 24 28 32 36 40 Luvun 5 kertotaulu lukuun 10 asti: 5 10 15 20 25 30 35 40 45 50
Tulemme hyödyntämään for-silmukkaa huomattavan paljon enemmän kolmannesta kierroksesta eteenpäin, kun pääsemme käsittelemään Pythonin tietorakenteita kuten listoja ja sanakirjoja.
Tehtävä 1.11.1
>