Kasiluokan asiat

round() pyöristää annetun luvun halutulla tarkkuudella

  esimerkiksi osamaara=round(luku1/luku2,3) Laskee lukujen 1 ja 2 osamäärän ja pyöristää vastauksen 3 desimaalin tarkkuuteen.


Desimaalimerkkinä käytetään pistettä (.) eikä pilkkua (,).

While-toistorakenne

While-lause suorittaa toistolohkon lauseita niin kauan kuin ehto tosi (True). Toistokertojen määrää ei tiedetä.

Jos ohjelmaan syntyy päättymätön silmukka eli se ei lopu, niin saat pysäytettyä ohjelman näppäinyhdistelmällä Ctrl + C.

KOODI

OHJELMA TULOSTAA RUUDULLE

#kysytään lukuja, kunnes syötetään luku 0
#lkm-muuttujaan kerätään syötettyjen lukujen määrä
lkm=0
luku=1 #alustetaan luvuksi1, jotta silmukan suoritus alkaa
print("Anna kokonaislukuja, niin lasken niiden määrän.")
print("Lopeta antamalla 0.")
while luku!=0:
 luku=int(input("Anna kokonaisluku:"))
 lkm+=1
print("Syötit",lkm-1,"lukua.") #vähennetään määrästä lopetusehdon 0 pois

 

 

Anna kokonaislukuja, niin lasken niiden määrän.
Lopeta antamalla 0.
Anna kokonaisluku: 95
Anna kokonaisluku: 73
Anna kokonaisluku: 2
Anna kokonaisluku: 0
Syötit *** lukua.

 

 punaiset numerot = käyttäjän antama luku ajoikkunassa
*** = ohjelman tulostama vastaus

For-toistorakenne

For-lause suorittaa ennalta määrätyn määrän toistolohkoa.

For-lausekkeessa tulee olla laskurimuuttuja, ohjelmalle varattu sana in, silmukalla läpikäytävä peräkkäinen tietorakenne. Tietorakenne voi olla merkkijono, lista tai lukujono. Määrittely päättyy kaksoispisteeseen. Toistettava lauselohko sisennetään.

Ohjelman koodi on seuraava.

for alkio in rakenne:

lauselohko  

In testaa alkion olemassaolon rakenteessa. For-rakenteessa on automaattisesti etenevä sisäänrakennettu silmukka. For-lauseessa ei ole lopetusehtoa ja silmukka loppuu, kun rakenne on käyty lävitse. For-rakenteeseen voi myös lisätä else-haaran.

 

KOODI

OHJELMA TULOSTAA RUUDULLE

# lasketaan a-kirjainten lukumäärä for-silmukan avulla
a_lkm=0 #laskuri on nollattava alussa
mjono=input("Kirjoita sana, jossa on a-kirjaimia: ")
for merkki in mjono: #mjonon läpikäynti
 if merkki=="a" or merkki =="A": #sanassa on joko a tai A #sisennys1
 a_lkm +=1 #sisennys2
print("A-kirjaimia on",a_lkm, "kappaletta sanassa",mjono, end=".\n")

 

Kirjoita sana, jossa on a-kirjaimia: matematiikka
A-kirjaimia on *** kappaletta sanassa ***.

 

  punaiset kirjaimet = käyttäjän antama sana ajoikkunassa  
*** = ohjelman tulostama tieto

Range-funktio

Range-komennolla voidaan asettaa toistokertojen määrä. Funktio luo lukujonon, jolla voidaan määrätä for-silmukan toistokertojen määrä.

Funktion koodi on seuraava.

range(aloitus, lopetus, askel)

Lopetuskohdaksi määritelty luku ei kuulu lukujonoon. Esimerkiksi range(15,20) muodostaa lukujonon luvusta 15 lukuun 19 saakka. Jos askeleen pituutta ei määrätä, luku suurenee yhdellä.

 

KOODI

OHJELMA TULOSTAA RUUDULLE

for luku in range(15,20):
 print(luku)

15
16
17
18
19

Lista

Lista muodostuu peräkkäin olevista alkioista. Lista on mutatoituva eli siihen voidaan lisätä, poistaa tai muuttaa alkioita. Tämä ominaisuus erottaa listan merkkijonosta, johon merkkejä ei voida luomisen jälkeen lisätä tai poistaa.

Listan alkiot laitetaan hakasulkeisiin. [ ] Hakasulkeet saat painamalla alt gr-näppäintä ja numeroa 8 tai 9.

Merkkijonojen tapaan myös lista on indeksoitu alkamaan nollasta.

indeksi

0

1

2

3

lista1

1

2

4

6

lista2

Sari

Leo

Essi

Rami

Yksittäinen alkio voidaan poimia [?]-operaattorilla. ?=alkion indeksi

Listan alkio voidaan muuttaa [?]=x x=listan alkiolle annettu uusi arvo

Lista voi olla myös tyhjä.  lista=[]

Uusia alkioita voidaan lisätä listaan append-metodilla lista.append(x)  x=listan uusi alkio

Alkioita voi poistaa joko pop- tai remove-metodilla.

Pop-metodissa annetaan poistettavan alkion indeksi ja remove-metodissa annetaan alkion arvo.

Listalta voidaan tulostaa alkio myös indeksin perusteella. print(lista[?])  ?=alkion indeksi

Listat voi yhdistää myös yhteenlaskemalla.

KOODI

OHJELMA TULOSTAA RUUDULLE

lista1=[10,9,7,8,3]
print (lista1)
lista1[1]=5 #korvataan listan1 indeksin kohdalla 1 oleva alkio
print (lista1)
lista2=[] #luodaan uusi tyhjä lista2
lista2.append(6) #lisätään listalle2 alkio
lista2.append(21) #lisätään listalle2 alkio
lista1.append(60) #lisätään listalle1 alkio loppuun
print(lista2)
print(lista1)
lista1.pop(2) #poistaa listalta1 indeksin 2 kohdalla olevan alkion
print(lista1)
lista2.remove(6) #poistaa listalta2 alkion 6
print(lista2)
print(lista1[4]) #tulostaa listan1 alkion indeksin kohdasta 4
lista3=lista1+lista2 #yhdistää listan1 ja listan2
print(lista3) 


[10, 9, 7, 8, 3]

[10, 5, 7, 8, 3]




[6, 21]
[10, 5, 7, 8, 3, 60]

[10, 5, 8, 3, 60]

[21]
60

[10, 5, 8, 3, 60, 21]

 

For-rakennetta voi käyttää listan kanssa.

KOODI

OHJELMA TULOSTAA RUUDULLE

for nimi in["Leena","Sini","Tuija","Jaana","Soile"]:
 print(nimi)

Leena
Sini
Tuija
Jaana
Soile