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 Huom: Istukaa joka paikalle sali tulee täyteen!

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

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

T Ohjelmoinnin perusteet Y (Python)

Java-kielen perusteet

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

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

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

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

T Ohjelmoinnin perusteet Y (Python)

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

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

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

Python-ohjelmointi Harjoitus 2

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Java-kielen perusteet

Ohjelmoinnin perusteet Y Python

Java-kielen perusteita

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

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

Kemian tekniikan kandidaattiohjelman ohjelmointikurssi (5 op)

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Harjoitus 2 (viikko 45)

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Tutoriaaliläsnäoloista

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Pythonilla. Teemu Sirkiä, 2015

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

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

Johdatus Ohjelmointiin

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

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

Ohjelmoinnin perusteet Y Python

17. Javan omat luokat 17.1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

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

Transkriptio:

Ohjelmoinnin peruskurssi Y1 CS-A1111 11.9.2019 CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2019 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 Voit luennon aikana lähettää kysymyksiä ja kommentteja sivulla http://presemo.aalto.fi/y1s2019 CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2019 2 / 19

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

Sijoituskäsky Muuttujalle voi antaa arvon sijoituskäskyllä: 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 11.9.2019 4 / 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 11.9.2019 5 / 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 11.9.2019 6 / 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. Luettua merkkijonoa vastaava kokonaisluku: luku1 = int(rivi) Luettua merkkijonoa vastaava desimaaliluku: luku2 = float(rivi) CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2019 7 / 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. CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2019 8 / 19

Tyypeistä jatkoa Kokonaisluvut: tyyppi int. Desimaaliluvut: tyyppi float. Desimaalilukuja eksponenttimerkinnän avulla: 2.22E12 tai 1.57E-31 float-tyyppiset arvot eivät ole reaalilukuja matemaattisessa mielessä. Merkkijonojen tyyppi on str. Voidaan käyttää yksin- tai kaksinkertaisia lainausmerkkejä, esim. "Matti Virtanen", Maija Makinen Totuusarvojen esittämiseen tyyppi bool. Mahdolliset arvot: True ja False. CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2019 9 / 19

Esimerkki: eurolaskuri print("muutan Ruotsin kruunut euroiksi.") rivi = input("anna rahasumma kruunuina: ") kruunut = float(rivi) eurot = kruunut / 10.54 print("se on", eurot, "euroa.") Esimerkkiajo Muutan Ruotsin kruunut euroiksi. Anna rahasumma kruunuina: 543.50 Se on 51.56546489563568 euroa. CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2019 10 / 19

Välitehtävä 1 Mitä seuraava ohjelma tulostaa? brutto = 5000 verot = 2000 netto = brutto - verot verot = 1000 print(netto) Vastaa sivulla http://presemo.aalto.fi/y1s2019 CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2019 11 / 19

Aritmeettisia laskutoimituksia Yleisimmin käytetyt aritmeettiset operaattorit kokonais- ja desimaaliluvuille +, -, *, /, //, % ja ** Jakolasku / perinteinen // katkaiseva jakolasku Muuta % jakojäännös ** potenssiin korotus. CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2019 12 / 19

Funktiot ja pääohjelma Tyypillisesti ohjelman rakennetta selkiytetään jakamalla ohjelma funktioihin. Funktio on ohjelman osa, jolle on annettu oma nimi. Tässä vaiheessa opetellaan määrittelemään yksi erityinen funktio, main eli pääohjelma. CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2019 13 / 19

Pääohjelman määrittely Otsikko def main(): Otsikon alle kirjoitetaan pääohjelmaan kuuluvat käskyt sisennettynä, esimerkiksi def main(): print("muutan kruunut euroiksi.") rivi = input("anna rahasumma kruunuina: ") kruunut = float(rivi) eurot = kruunut / 10.54 print("summa on", eurot, "euroa.") Pääohjelmaa pitää kutsua sen ulkopuolella. main() CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2019 14 / 19

Esimerkki: alennettu hinta 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 11.9.2019 15 / 19

Rivinvaihto tulosteen perään Jos käyttäjälle annettavan kehotteen perään lisätään merkki \n, kehote ja käyttäjän syöte tulevat eri riveille. 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 11.9.2019 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 11.9.2019 17 / 19

Kommentit Kommentti aloitetaan #-merkillä. # 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 11.9.2019 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 11.9.2019 19 / 19