Ohjelmoinnin perusteet Y Python

Samankaltaiset tiedostot
Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Java-kielen perusteita

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

13. Loogiset operaatiot 13.1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Python-ohjelmointi Harjoitus 2

Ohjelmoinnin perusteet Y Python

13. Loogiset operaatiot 13.1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Ohjelmoinnin perusteet Y Python

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Lauseet. Ehdollinen lause. Tämän osan sisältö. Ehdollinen lause. Esimerkkejä. Yksinkertainen ehto. Lohkosulut ja sisennys. Ehdollinen lause if

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

T Ohjelmoinnin perusteet Y (Python). Tentti

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta Toteuta Pythonilla seuraava ohjelma:

Ohjelmoinnin peruskurssi Y1

Java-kielen perusteet

811120P Diskreetit rakenteet

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 5: Python

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Java-kielen perusteet

811120P Diskreetit rakenteet

Ohjausrakenteet. Valinta:

Ehto- ja toistolauseet

11. Javan toistorakenteet 11.1

11. Javan valintarakenteet 11.1

Metropolia ammattikorkeakoulu TI00AA : Ohjelmointi Kotitehtävät 3

Palautetta viime luennosta

Ohjelmoinnin perusteet Y Python

T Ohjelmoinnin perusteet Y (Python) Opetusmoniste kevät 2010

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Ehto- ja toistolauseet

Muistutus aikatauluista

ITKP102 Ohjelmointi 1 (6 op)

12. Javan toistorakenteet 12.1

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

12. Javan toistorakenteet 12.1

Ohjelmoinnin peruskurssi Y1

Transkriptio:

Ohjelmoinnin perusteet Y Python T-106.1208 25.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 1 / 41

Valintakäsky if Tähänastiset ohjelmat ovat toimineen aina samalla tavalla. Usein ohjelman pitäisi kuitenkin muuttaa toimintaansa käyttäjän syötteen mukaan. Esimerkki: kirjoita ohjelma, joka pyytää käyttäjältä tentin pistemäärän ja kertoo, menikö tentti läpi, kun läpipääsyraja on 50 pistettä. Valinta voidaan tehdä if-käskyn avulla. Yleinen muoto: if ehto: kasky1 else: kasky2 T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 3 / 41

Tenttiesimerkki syote = raw_input("kerro tenttipisteesi.\n") pisteet = int(syote) if pisteet >= 50: print "Tentti meni lapi!" else: print "Reputit!" main() T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 5 / 41

Toinen esimerkki: luvun itseisarvo print "Ohjelma laskee desimaaliluvun itseisarvon." rivi = raw_input("anna luku.\n") luku = float(rivi) if luku < 0: itseisarvo = - luku else: itseisarvo = luku print "Sen itseisarvo on", itseisarvo main() T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 7 / 41

Useampi suoritettava käsky if-käskyssä Sisennyksillä osoitetaan, mitkä käskyt kuuluvat suoritettavaan vaihtoehtoon. print "Ohjelma laskee desimaaliluvun itseisarvon." rivi = raw_input("anna luku.\n") luku = float(rivi) if luku < 0: itseisarvo = - luku print "Sen itseisarvo on", itseisarvo else: print "Sen itseisarvo on", luku main() T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 9 / 41

If-käsky ilman else-osaa Else-osa voi myös puuttua. Tällöin siirrytään suoraan ohjelmassa eteenpäin (if-käskyä seuraavaan käskyyn), jos ehto on epätosi. print "Ohjelma laskee desimaaliluvun itseisarvon." rivi = raw_input("anna luku.\n") luku = float(rivi) if luku < 0: luku = - luku print "Sen itseisarvo on", luku main() T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 11 / 41

Vertailuoperaattoreita > suurempi kuin < pienempi kuin == yhtäsuuri kuin!= erisuuri kuin >= suurempi tai yhtäsuuri kuin <= pienempi tai yhtäsuuri kuin Huomaa yhtäsuuruusoperaattorin == ja sijoitusoperaattorin = ero. Desimaalilukujen yhtäsuuruutta ei yleensä kannata tutkia, koska pyöristysvirheet voivat aiheuttaa yllätyksiä. T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 13 / 41

Loogiset operaattorit Halutaan lisätä tenttiesimerkkiin tarkistus: jos pisteet ovat alle 0 tai yli 100, ilmoitetaan virheellisistä pisteistä. Tarvittava ehto saadaan operaattorin or avulla: if pisteet < 0 or pisteet > 100: Tai-operaattori or on yksi loogisista operaattoreista. T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 15 / 41

Loogiset operaattorit, jatkoa Tärkeimmät loogiset operaattorit and ja or tai not ei Operaattorit and ja or ovat ehdollisia: jälkimmäisen operandin totuusarvo tutkitaan vain silloin, jos ensimmäisen operandin arvosta ei voida päätellä koko lauseen totuusarvoa. T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 16 / 41

Sisäkkäisiä if-käskyjä syote = raw_input("kerro tenttipisteesi.\n") pisteet = int(syote) if pisteet < 0 or pisteet > 100: print "Virheelliset pisteet!" else: if pisteet >= 50: print "Tentti meni lapi!" else: print "Reputit!" main() T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 18 / 41

Useita eri ehtoja syote = raw_input("kerro tenttipisteesi.\n") pisteet = int(syote) if pisteet < 0: print "Kelvottomat pisteet!" elif pisteet < 50: print "Arvosana on 0." elif pisteet < 60: print "Arvosana on 1." elif pisteet < 70: print "Arvosana on 2." elif pisteet < 80: print "Arvosana on 3." # Ohjelma jatkuu seuraavalla kalvolla. T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 20 / 41

Useita eri ehtoja (jatkuu) elif pisteet < 90: print "Arvosana on 4." elif pisteet <= 100: print "Arvosana on 5." else: print "Kelvottomat pisteet!" main() T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 22 / 41

Toistokäsky Usein ohjelma joutuu toistamaan samaa käskyä monta kertaa. Esimerkki: käyttäjä syöttää ohjelmalle 30 päivän lämpötilat. Ohjelma laskee niiden keskiarvon Samaa käskyä ei tarvitse kirjoittaa monta kertaa, jos käytetään toistokäskyä. Pythonissa on kaksi toistokäskyä, while ja for. While-käskyn yleinen muoto on while ehto: kasky T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 24 / 41

Kuuden kertotaulu while-käskyn avulla i = 1 while i <= 10: tulos = i * 6 print i, "* 6 =", tulos i += 1 main() T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 26 / 41

Esimerkki: lämpötilojen keskiarvo LKM = 30 i = 0 summa = 0.0 while i < LKM: rivi = raw_input("anna seuraava lampotila.\n") lampotila = float(rivi) summa = summa + lampotila i = i + 1 keskiarvo = summa / LKM print "Lampotilojen keskiarvo on", keskiarvo main() T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 28 / 41

Toinen versio lämpötilalaskurista: lukumäärä käyttäjältä rivi = raw_input("montako lampotilaa annat?\n") lkm = int(rivi) i = 0 summa = 0.0 while i < lkm: rivi = raw_input("anna seuraava lampotila.\n") lampotila = float(rivi) summa = summa + lampotila i = i + 1 if lkm > 0: keskiarvo = summa / lkm print "Lampotilojen keskiarvo on", keskiarvo else: print "Et antanut yhtaan lampotilaa." T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 30 / 41

Kolmas versio lämpötilalaskurista: lopetus pienellä luvulla print "Anna lampotiloja, lopeta -300:lla." lkm = 0 summa = 0.0 rivi = raw_input("anna ensimmainen lampotila.\n") lampotila = float(rivi) while lampotila > -300.0: summa = summa + lampotila lkm = lkm + 1 rivi = raw_input("anna seuraava lampotila.\n") lampotila = float(rivi) if lkm > 0: keskiarvo = summa / lkm print "Lampotilojen keskiarvo on", keskiarvo else: print "Et antanut yhtaan lampotilaa." T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 32 / 41

If-käsky toistokäskyn sisällä HELLERAJA = 25.0 print "Anna lampotiloja, lopeta -300:lla." hellepaivien_lkm = 0 rivi = raw_input("anna ensimmainen lampotila.\n") lampotila = float(rivi) while lampotila > -300.0: if lampotila >= HELLERAJA: hellepaivien_lkm += 1 rivi = raw_input("anna seuraava lampotila.\n") lampotila = float(rivi) print "Hellepaivia oli", hellepaivien_lkm, "kpl." main() T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 34 / 41

Toistokäsky for For-käskyn avulla voidaan käydä jonkun rakenteen alkiot järjestyksessä. Funktion range avulla voidaan generoida lukujono (oikeasti lista), jonka kaikki alkiot voidaan käydä läpi for-käskyn avulla. Esimerkiksi range(11) generoi lukujonon, joka sisältää luvut 0:sta 10:een asti. Voidaan kirjoittaa toistokäsky for i in range(11): tee jotain arvolle i jossa i saa vuorotellen arvot 0 10. T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 36 / 41

Esimerkki: kertotaulu for-käskyn avulla for i in range(11): tulos = i * 6 print i, "* 6 =", tulos main() T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 38 / 41

Lisää range-funktiosta Lukujonoja generoidessa voi antaa myös jonon ensimmäisen alkion, esimerkiksi range(1, 11) generoi lukujonon, jonka ensimmäinen alkio on 1 ja viimeinen 10. On myös mahdollista antaa jonon kahden peräkkäisen alkion väli, esimerkiksi range(1, 11, 2) generoi lukujonon, joka sisältää luvut 1, 3, 5, 7 ja 9. Väli voi olla myös negatiivinen, jolloin lukuja generoidaan ylhäältä alaspäin. Esimerkiksi range(10, 1, -2) generoi lukujonon, joka sisältää luvut 10, 8, 6, 4 ja 2. T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 39 / 41

Kertotaulu uudelleen for i in range(1, 11): tulos = i * 6 print i, "* 6 =", tulos main() T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 41 / 41