Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

Valintarakenteiden

...

lisäksi

...

Pythonissa

...

on

...

koodin

...

suorituksen

...

hallitsemiseksi

...

toistorakenteet.

...

Ne

...

nimensä

...

mukaisesti

...

toistavat

...

niissä

...

olevaa

...

koodia.

...

Pythonissa

...

näitä

...

on

...

kaksi,

...

joita

...

vastaavat

...

avainsanat

...

while

...

ja

...

for.

...


 
Avainsana while kuvaa toistorakennetta,

...

jota

...

suoritetaan

...

niin

...

kauan

...

kuin

...

tietty

...

ehto

...

täyttyy.

...

Yleensä

...

ehdossa

...

vertaillaan

...

jotain

...

muuttujaa,

...

jota

...

muutetaan

...

while

...

rakenteen

...

koodissa.

...

Jos

...

vertailu

...

on

...

heti

...

alussa

...

epätosi,

...

while

...

rakenteen

...

koodia

...

ei

...

suoriteta

...

olenkaan.
 
Tämä esimerkki kysyy käyttäjältä vastausta kysymykseen kunnes käyttäjä antaa oikean vastauksen.

Code Block

 
Tämä esimerkki kysyy käyttäjältä vastausta kysymykseen kunnes käyttäjä antaa oikean vastauksen.

{code}
answer = input("Paljon on 2 + 2?\n")

while answer != "4" and answer != "neljä":
    answer = input("Ei... yritä uudestaan.\n")

print("Arvasit oikein!")
input("\nPaina Enter näppäintä lopettaaksesi...")
{code}

Toinen

...

toistorakenne

...

saadaan

...

avainsanalla

...

for.

...

Sen

...

tarkoituksena

...

on

...

tehdä

...

toistorakenne,

...

jonka

...

koodi

...

suoritetaan

...

tietty

...

määrää.

...

Tälle

...

rakenteelle

...

määritellään

...

myös

...

tunniste

...

muuttujalle,

...

joka

...

kuvaa

...

toistokertaa,

...

jonka

...

jälkeen

...

tulee

...

avainsana

...

in

...

ja

...

jokin

...

kokoelma,

...

jonka

...

jokaista

...

alkiota

...

kohti

...

for

...

rakenteen

...

koodi

...

suoritetaan.
 
Kokoelmaksi käy mikä tahansa kokoelma kuten monikko tai merkkijono. Tässä ohjelmassa käyttäjältä kysytään tekstiä, jonka jokainen merkki tulostetaan omalle rivilleen.

Code Block

 
Kokoelmaksi käy mikä tahansa kokoelma kuten monikko tai merkkijono. Tässä ohjelmassa käyttäjältä kysytään tekstiä, jonka jokainen merkki tulostetaan omalle rivilleen.

{code}
s = input("Anna tekstiä: ")

for c in s:
    print(c)

input("\nPaina Enter näppäintä lopettaaksesi...")
{code}

Usein

...

käytetään

...

myös

...

sisäänrakennettua

...

funktiota

...

range,

...

joka

...

palauttaa

...

kokoelman

...

numero

...

arvoja.

...

Yhdellä

...

parametrilla

...

funktio

...

ottaa

...

kokonaisluvun,

...

jolloin

...

paluuarvona

...

on

...

numerot

...

0;sta

...

annettuun

...

lukuarvoon

...

asti

...

(lukuarvoa

...

itseään

...

mukaan

...

lukematta).

...

Kaksi

...

parametria

...

antamalla

...

määritellään

...

alkuarvo

...

ja

...

loppuarvo.

...

Vielä

...

kolmannen

...

parametrin

...

lisäämällä

...

saadaan

...

määriteltyä

...

yksittäisten

...

arvojen

...

arvoväli.
 
Tämä ohjelma kysyy käyttäjältä kokonaislukua - while rakenteessa kunnes syöte on sopiva - ja laskee sitten annetun luvun kertoman.

Code Block

 
Tämä ohjelma kysyy käyttäjältä kokonaislukua - while rakenteessa kunnes syöte on sopiva - ja laskee sitten annetun luvun kertoman.

{code}
s = ""

while not s.isnumeric():
    s = input("Anna positiivinen kokonaisluku: ")

x = int(s)
y = 1

for i in range(1, x):
    y *= i

print("Antamasi luvun kertoma oli...\n%s" % y)
input("\nPaina Enter näppäintä lopettaaksesi...")
{code}

Pythonissa

...

on

...

myös

...

useita

...

avainsanoja

...

toistorakenteiden

...

hallintaan.

...

Yksi

...

näistä

...

on

...

break,

...

joka

...

antaa

...

vaihtoehtoisen

...

tavan

...

poistua

...

toistorakenteesta.

...

Toistorakenteiden

...

ollessa

...

sisäkkäin

...

break

...

poistuu

...

vain

...

yksittäisestä

...

rakenteesta

...

-

...

ei

...

kaikista.
 
Tämä ohjelma kysyy käyttäjältä numeroita toistorakenteessa ja poistuu avainsanan break avulla, jos käyttäjä syöttää tekstiä. Tässä esimerkissä ohjelma pysyy ilman break käskyä while rakenteessa koska True;n arvo on aina True.

Code Block

 
Tämä ohjelma kysyy käyttäjältä numeroita toistorakenteessa ja poistuu avainsanan break avulla, jos käyttäjä syöttää tekstiä. Tässä esimerkissä ohjelma pysyy ilman break käskyä while rakenteessa koska True;n arvo on aina True.

{code}
while True:
    s = input("Anna positiivinen kokonaisluku: ")
    if not s.isnumeric():
        print("Et antamasi arvo ei ollut numero...")
        break

input("\nPaina Enter näppäintä lopettaaksesi...")
{code}

Avainsana

...

else

...

toimii

...

Pythonissa

...

myös

...

toistorakenteiden

...

yhteydessä.

...

Toistorakenteissa

...

else

...

osio

...

suoritetaan,

...

jos

...

toistorakenteesta

...

poistutaan

...

normaalisti

...

eli

...

ilman

...

avainsanaa

...

break.

...

Tässä

...

ohjelma

...

tulostaa

...

numeroita

...

10

...

-

...

0

...

ja

...

kysyy

...

lopetetaanko;

...

jos

...

lopettamalla

...

poistutaan

...

break

...

käskyllä

...

ja

...

antamalla

...

laskennan

...

kulua

...

loppuun,

...

poistutaan

...

normaalisti.

{
Code Block
}
for i in range(10, 0, -1):
    s = input(str(i) + "... Lopetetaanko? (kirjoita L)")
    if s == 'L':
        print("Poistutaan break;llä")
        break
else:
    print("Poistutaan normaalisti")

input("\nPaina Enter näppäintä lopettaaksesi...")
{code}

Vielä

...

on

...

avainsana

...

continue,

...

jonka

...

avulla

...

voidaan

...

toistorakenteessa

...

siirtyä

...

seuraavaan

...

toistokertaan

...

suorittamatta

...

sen

...

jälkeen

...

tulevaa

...

koodia.

...

Tämä

...

ohjelma

...

laskee

...

numeroiden

...

jakojäännökset,

...

jos

...

numero

...

ei

...

ole

...

jaollinen

...

jakajalla.

{
Code Block
}
denominator = 3

for i in range(50):
    if i % denominator:
        continue
    print("%s / %s = %s" % (i, denominator, i // 3))

input("\nPaina Enter näppäintä lopettaaksesi...")
{code}