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

TIE Johdatus ohjelmointiin

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Java-kielen perusteet

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

T Ohjelmoinnin perusteet Y (Python)

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

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

Ohjelmoinnin perusteet Y Python

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Java-kielen perusteet

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

T Ohjelmoinnin perusteet Y (Python)

Java-kielen perusteita

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

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

Ohjelmoinnin perusteet Y Python

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Tutoriaaliläsnäoloista

Ohjelmoinnin perusteet Y Python

Python-ohjelmointi Harjoitus 2

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

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

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Johdatus Ohjelmointiin

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Harjoitus 2 (viikko 45)

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Kemian tekniikan kandidaattiohjelman ohjelmointikurssi (5 op)

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

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

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

Ohjelmoinnin perusteet Pythonilla. Teemu Sirkiä, 2015

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

Ohjelmoinnin perusteet Y Python

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.

Transkriptio:

Ohjelmoinnin peruskurssi Y1 CS-A1111 13.9.2017 CS-A1111 Ohjelmoinnin peruskurssi Y1 13.9.2017 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 13.9.2017 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 13.9.2017 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 13.9.2017 4 / 19

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) Vastaava desimaaliluku saadaan muuttujan luku2 float-tyyppiseksi arvoksi seuraavasti: luku2 = float(rivi) CS-A1111 Ohjelmoinnin peruskurssi Y1 13.9.2017 5 / 19

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

Tyypeistä Monissa muissa ohjelmointikielissä (esim. Java ja C) muuttujat on määriteltävä ennen käyttöä ja kerrottava, minkä tyyppisiä arvoja muuttujalle voi antaa. Python-ohjelmissa muuttujia ei määritellä, mutta arvolla on kuitenkin aina tyyppi. 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 13.9.2017 7 / 19

Tyypeistä jatkoa Merkkijonojen tyyppi on str. Merkkijonot voidaan kirjoittaa yksin- tai kaksinkertaisten lainausmerkkien sisään, esim. "Matti Virtanen", Maija Makinen Lisäksi on tyyppi bool totuusarvojen esittämiseen. Mahdollisia arvoja ovat True ja False. CS-A1111 Ohjelmoinnin peruskurssi Y1 13.9.2017 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 13.9.2017 9 / 19

Sijoituskäsky jatkoa Lyhennysmerkintä muuttujan vanhan arvon käyttämiselle sijoituskäskyssä: muuttuja = muuttuja + jotain voidaan kirjoittaa muuttuja += jotain Esimerkiksi: luku = 5 luku += 1 Vastaavasti toimivat -=, *= ja /=. CS-A1111 Ohjelmoinnin peruskurssi Y1 13.9.2017 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 13.9.2017 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. Operaattori % tarkoittaa jakojäännöstä ja ** potenssiin korotusta. CS-A1111 Ohjelmoinnin peruskurssi Y1 13.9.2017 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. Tässä vaiheessa opetellaan määrittelemään yksi erityinen funktio, main eli pääohjelma. CS-A1111 Ohjelmoinnin peruskurssi Y1 13.9.2017 13 / 19

Pääohjelman määrittely Otsikko def main(): Otsikon alle 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 13.9.2017 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 13.9.2017 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 13.9.2017 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 13.9.2017 17 / 19

Kommentit Kommentti aloitetaan #-merkillä. Kaikki sen jälkeen rivillä tuleva tulkitaan kommentiksi, jonka Python-tulkki ohittaa. # 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.") main() CS-A1111 Ohjelmoinnin peruskurssi Y1 13.9.2017 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. Pydev lisää oletuksena dokumentointimerkkijonon (kolmen lainausmerkin sisässä) uuden ohjelmatiedoston alkuun. Opiskelija saa valintansa mukaan joko jättää dokumentointimerkkijonon tiedoston alkuun tai korvata sen tavallisilla kommenteilla. CS-A1111 Ohjelmoinnin peruskurssi Y1 13.9.2017 19 / 19