Ohjelmoinnin peruskurssi Y1

Samankaltaiset tiedostot
Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

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 peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Huom: Istukaa joka paikalle sali tulee täyteen!

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

TIE Johdatus ohjelmointiin

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

T Ohjelmoinnin perusteet Y (Python)

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Ohjelmoinnin perusteet Y Python

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

Ohjelmoinnin peruskurssi Y1

Java-kielen perusteet

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

T Ohjelmoinnin perusteet Y (Python)

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Java-kielen perusteita

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

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 peruskurssi Y1

Java-kielen perusteet

Tutoriaaliläsnäoloista

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

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

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Ohjelmoinnin peruskurssi Y1

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

Ohjelmoinnin peruskurssi Y1

Python-ohjelmointi Harjoitus 2

Johdatus Ohjelmointiin

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Harjoitus 2 (viikko 45)

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

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

AS C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

Ohjelmoinnin perusteet Y Python

Kemian tekniikan kandidaattiohjelman ohjelmointikurssi (5 op)

ITKP102 Ohjelmointi 1 (6 op)

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

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Pythonilla. Teemu Sirkiä, 2015

Ohjelmoinnin perusteet Y Python

Transkriptio:

Ohjelmoinnin peruskurssi Y1 CS-A1111 14.9.2016 CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 1 / 19

Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja, suorittaa niille laskutoimituksia ja kertoo niiden tuloksen käyttäjälle tiedät, minkä tyyppisiä arvoja Python-ohjelmissa voi käsitellä ja tunnet monia niille mahdollisia operaatioita tiedät, mitä tarkoitetaan pääohjelmalla CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 2 / 19

Kertausta: muuttujat Muuttujia käytetään ohjelman käsittelemien arvojen tallentamiseen ja käsittelyyn. Muuttujalle voi antaa arvon sijoituskäskyllä, jota merkitään =:lla. nimi = "Matti" print("hei,", nimi) print("tervetuloa Python-kurssille!") Esimerkkiajo Hei, Matti Tervetuloa Python-kurssille! CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 3 / 19

Kertausta: arvon pyytäminen käyttäjältä Käyttäjän antaman arvon voi lukea input-käskyllä. Käskyn sulkujen sisään kirjoitetaan käyttäjälle annettava kehote. Luetun arvon voi antaa arvoksi muuttujalle sijoituskäskyllä. nimi = input("kerro nimesi: ") print("hei,", nimi) print("tervetuloa Python-kurssille!") Ajoesimerkki Kerro nimesi: Minna Hei, Minna Tervetuloa Python-kurssille! CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 4 / 19

Kertausta: lukuarvon lukeminen käyttäjältä Käsky input välittää aina luetun arvon tekstinä, merkkijonona. Jotta luettua arvoa voitaisiin käsitellä lukuna, se pitää ensin muuttaa kokonais- tai desimaaliluvuksi. Jos luettu merkkijono on muuttujan rivi arvona, saadaan sitä vastaava kokonaisluku muuttujan luku1 kokonaislukutyyppiseksi arvoksi seuraavasti: luku1 = int(rivi) Jos luettu merkkijono on muuttujan rivi arvona, saadaan sitä vastaava desimaaliluku muuttujan luku2 float-tyyppiseksi arvoksi seuraavasti: luku2 = float(rivi) CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 5 / 19

Esimerkki: eurolaskuri print("muutan markat euroiksi.") rivi = input("anna rahasumma markkoina: ") markat = float(rivi) eurot = markat / 5.94573 print("se on", eurot, "euroa.") Esimerkkiajo Muutan markat euroiksi. Anna rahasumma markkoina: 543.50 Se on 91.4101380318 euroa. CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 6 / 19

Tyypeistä Monissa muissa ohjelmointikielissä (esim. Java ja C) muuttujat on määriteltävä ennen käyttöä. Muuttujan määrittelyn yhteydessä kerrotaan, minkä tyyppisiä arvoja muuttujalle voi antaa. Python-ohjelmissa muuttujia ei määritellä, mutta arvolla on kuitenkin aina tyyppi. Tyyppi vaikuttaa esim. siihen, millaisia operaatoita arvolle voi tehdä ja miten nämä operaatiot toimivat. Kokonaisluvuille käytetään yleensä tyyppiä int. Desimaalilukujen esittämiseen käytetään float-tyyppiä. Suuria tai hyvin pieniä desimaalilukuja voi esittää eksponenttimerkinnän avulla, esim. 2.22E12 tai 1.57E-31 float-tyyppiset arvot eivät ole reaalilukuja matemaattisessa mielessä. CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 7 / 19

Tyypeistä jatkoa Merkkijonojen tyyppi on str. Merkkijonot voidaan kirjoittaa yksintai kaksinkertaisten lainausmerkkien sisään, esim. "Matti Virtanen", Maija Makinen Lisäksi on tyyppi bool totuusarvojen esittämiseen. Mahdollisia arvoja on True ja False. CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 8 / 19

Sijoituskäsky Muuttujalle voi antaa arvon sijoituskäskyllä. Sijoitettava arvo voi olla myös laskutoimituksen tulos: leveys = 5 korkeus = 6 pinta_ala = leveys * korkeus Muuttujan vanhaa arvoa voi käyttää hyväksi uutta arvoa laskettaessa: luku = 5 luku = luku + 2 korkeus = 7.0 korkeus = korkeus / 2 CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 9 / 19

Sijoituskäsky jatkoa Muuttujan vanhan arvon käyttäminen hyväksi sijoituskäskyssä on niin yleistä, että sille on lyhennysmerkintä: muuttuja = muuttuja + jotain voidaan kirjoittaa muuttuja += jotain Esimerkiksi: luku = 5 luku += 1 Vastaavasti toimivat -=, *= ja /=. CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 10 / 19

Välitehtävä 1 Mitä seuraava ohjelma tulostaa? brutto = 5000 verot = 2000 netto = brutto - verot verot = 1000 print(netto) CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 11 / 19

Aritmeettisia laskutoimituksia Yleisimmin käytetyt aritmeettiset operaattorit kokonais- ja desimaaliluvuille ovat +, -, *, /, //, % ja ** Jakolasku / toimii perinteisen jakolaskun tapaan. Operaattori // katkaisee kahden positiivisen kokonaisluvun jakolaskun tuloksen kokonaisluvuksi. Mitään pyöristyksiä ei suoriteta. Operaattori % tarkoittaa jakojäännöstä ja ** potenssiin korotusta. CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 12 / 19

Funktiot ja pääohjelma Tyypillisesti ohjelman rakennetta selkiytetään jakamalla ohjelma funktioihin. Funktio on ohjelman osa, jolle on annettu oma nimi. Jos ohjelmassa kutsutaan funktiota, siirrytään ohjelmakoodissa sille riville, josta funktion määrittely alkaa. Kun funktio on suoritettu loppuun, palataan takaisin siihen kohtaan, josta funktiota kutsuttiin. Samaa funktiota voidaan kutsua monta kertaa ohjelman suorituksen aikana. Funktioiden määrittelyyn ja käyttöön tutustutaan tarkemmin myöhemmin, mutta tässä vaiheessa opetellaan määrittelemään yksi erityinen funktio, main eli pääohjelma. CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 13 / 19

Pääohjelman määrittely Pääohjelman määrittely aloitetaan kirjoittamalla def main(): Tämän jälkeen kirjoitetaan pääohjelmaan kuuluvat käskyt sisennettynä, esimerkiksi def main(): print("muutan markat euroiksi.") rivi = input("anna rahasumma markkoina: ") markat = float(rivi) eurot = markat / 5.94573 print("summa on", eurot, "euroa.") Jotta ohjelma suorittaisi pääohjelman, sitä pitää kutsua. Tämä tehdään pääohjelman määrittelyn ulkopuolella: main() CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 14 / 19

Esimerkki: alennettu hinta Kun käyttäjältä luetaan useampi arvo, tallennetaan kukin omaan muuttujaansa. def main(): rivi = input("anna tuotteen normaalihinta (eur): ") hinta = float(rivi) rivi = input("anna alennus prosentteina: ") alennus = float(rivi) alennettu = (100.0 - alennus) / 100.0 * hinta print("alennettu hinta on", alennettu, "euroa.") main() CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 15 / 19

Rivinvaihto tulosteen perään Goblinin tarkastusten helpottamiseksi lisätään tällä kurssilla rivinvaihto käyttäjälle annettavan kehotteen perään. Tämä voidaan tehdä merkin \n avulla. Käsky print lisää rivinvaihdon automaattisesti. def main(): rivi = input("anna tuotteen normaalihinta (eur): \n") hinta = float(rivi) rivi = input("anna alennus prosentteina: \n") alennus = float(rivi) alennettu = (100.0 - alennus) / 100.0 * hinta print("alennettu hinta on", alennettu, "euroa.") main() CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 16 / 19

Välitehtävä 2 Kirjoita ohjelma, joka pyytää käyttäjältä hänen autonsa polttoaineen kulutuksen (l / 100 km) ja sen, kuinka pitkän matkan käyttäjä aikoo ajaa autolla. Ohjelma tulostaa käyttäjälle, kuinka paljon matka vie polttoainetta. CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 17 / 19

Kommentit Kommentit ovat ohjelmaa lukevalle ihmiselle tarkoitettua selitystekstiä. Python-tulkki ohittaa ne. Kommentti aloitetaan #-merkillä. Kaikki sen jälkeen rivillä tuleva teksti tulkitaan kommentiksi. # Ohjelma ilmoittaa sekunteina annetun ajan tunteina, # minuutteina ja sekunteina. def main(): rivi = input("anna aikajakson pituus sekunteina.\n") pituus_sekunteina = int(rivi) tunnit = pituus_sekunteina // 3600 jaannossekunnit = pituus_sekunteina % 3600 minuutit = jaannossekunnit // 60 sekunnit = jaannossekunnit % 60 print("aikajakson pituus on", tunnit, "h", minuutit, "min", sekunnit, "s.") CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 18 / 19

Toinen dokumentointimahdollisuus #-merkillä aloitettavien kommenttien lisäksi Pythonissa on myös toinen mahdollisuus kommentoida ohjelman kokonaisuuksia, dokumentointimerkkijono (documentation string, docstring). Se on lainausmerkkien sisään pantu kommentti, jota voidaan käyttää joko ohjelmatiedoston alussa tai heti funktion tai luokan otsikkoa seuraavalla rivillä. Python-tulkki pystyy käyttämään hyväksi dokumentointimerkkijonoja ja niiden avulla voidaan myös generoida automaattisesti ohjelman dokumentteja. Tällä kurssilla dokumentointimerkkijonoja ei käsitellä tämän enempää, mutta Pydev lisää oletuksena dokumentointimerkkijonon (kolmen lainausmerkin sisässä) uuden ohjelmatiedoston alkuun. Opiskelija saa valintansa mukaan joko jättää dokumentointimerkkijonon tiedoston alkuun tai poistaa dokumentointimerkkijonon ja korvata sen tavallisilla kommenteilla. CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 19 / 19