Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python 31. tammikuuta 2009
Ohjelmointi Perusteet Pythonin alkeet Esittely Esimerkkejä Muuttujat Peruskäsitteitä Käsittely Numeeriset tyypit Sarjatyypit Seuraava luento
Perusteet Ohjelmointi - perusteet Mitä tarvitaan Tekstieditori Kääntäjä tai tulkki Lisähyötyä IDE (Integrated development enviroment) Kielen referenssiopas (sähköinen tai painettu)
Perusteet Ohjelmointi - peruskäsitteitä Kääntäjä tai tulkki Kääntää ohjelmakoodin koneen ymmärtämään muotoon. Lähdekoodi Kertoo koneelle mitä ohjelman halutaan tekevän. Koostuu: muuttujista ohjausrakenteista aliohjelmista
Perusteet Ohjelmointi - peruskäsitteitä Muuttuja Symboloi muuttuvaa suuretta, kuten lukua tai tekstinpätkää. Funktio, aliohjelma Tekee jonkin tietyn asian. Funktio ottaa vastaan muuttujan (tai useita), tekee jotain annetuilla muuttujilla, ja palauttaa tuloksen uutena muuttujana. Aliohjelma ottaa vastaan muuttujia, tekee jotain, ja muuttaa annettuja muuttujia. Ohjausrakenne Ohjaa ohjelman toimintaa. Voi mm. käskeä toistamaan tiettyä ohjelman kohtaa useita kertoja, tai valita useista mahdollisista suorituspoluista yhden.
Python
Esittely Python Python on Vapaaseen lähdekoodiin perustuva ilmainen tulkattu kieli Saatavilla Linuxille, Macille ja Windosille Tehokas oikein käytettynä Jatkuvasti kehittyvä Käyttö Linuxista Komentotulkista: python tiedosto Pythonin tulkista: execfile(tiedosto) Komentotulkista ohjelmana jos koodilla on suoritusoikeudet ja ensimmäisellä rivillä #!polku/python/tulkiin
Esittely Python Mistä apua? How to Think Like a Computer Scientist - Learning with Python Python tutoriaali Oletuspaketit Kielireferenssi Lisäksi, verkossa paljon ilmaisia (eritasoisia) kirjoja, kirjakaupassa (ja kirjastoissa) paljon tasokkaita kirjoja (joista valtaosa menee muutaman ensimmäisen luvun jälkeen ohi kurssin tarpeet)
Esittely Editorin valinta Python-ystävällisiä editoreja Emacs etc... IDEjä Eric Eclipse KDevelop
Esimerkkejä Ensimmäinen toimiva Python ohjelma Esimerkki 1. "Hello World!" print "Hello world!"
Esimerkkejä Toinen toimiva Python ohjelma Esimerkki 2. #!/usr/bin/python from math import cos a = 1.0 b = 2.0 c = a + cos(c) print c
Peruskäsitteitä Muuttujien alkeet - termejä Muuttuja Muuttuja on jokin olio koneen muistissa, esimerkiksi lukuarvo tai tekstijono. Muuttujan tyyppi Muuttujan tyyppi määrittää minkälaista tietoa muuttuja pitää sisällään. Toisin kuin monessa muussa kielessä, muuttujan tyyppiä ei Pythonissa tarvitse erikseen määritellä ennen muuttujan käyttöönottoa, vaan tyyppi määräytyy automaattisesti luontivaiheessa. Tunnus Tunnus toimii osoittimena muuttujaan, muuttujan nimenä. Yhteen muuttujaan voi osoittaa monta tunnusta, ja tunnuksen voi vaihtaa osoittamaan johonkin toiseen muuttujaan kesken ohjelman. Lisäksi, toisin kuin monessa muussa kielessä, tunnus ei ole sidottu mihinkään tiettyyn muuttujatyyppiin.
Käsittely Muuttujien alkeet - käsittely Muuttujan luominen Yksinkertaisin tapa luoda uusi muuttuja on sijoittaa tunnukseen halutun tyyppinen olio. x = 1 luo kokonaislukumuuttujan arvolla 1 ja tunnuksella x. x = int() luo tyhjän kokonaislukumuuttujan. Muuttujan tuhoaminen Muuttuja tuhotaan automaattisesti jos siihen ei osoita yhtään tunnusta. Muuttuja voidaan myös halutessa tuhota funtkiolla del(muuttuja) Muuttujan tyypin selvittäminen Muuttuja tyyppi saadaan selville funktiolla type(muuttuja)
Numeeriset tyypit Numeeriset tyypit Numeerisista tyypeistä Numeeriset tyypit pitävät sisällään lukuarvoja. Olennaisena tekijänä tyypin valinnassa on, halutaanko käsitellä kokonais- vai reaalilukuja. Kokonaisluvuissa pitää lisäksi valita kuinka suuria arvoja halutaan käsitellä. Numeeriset tyypit int long float complex - kokonaisluku - pitkä kokonaisluku - reaaliluku - kompleksiluku
Numeeriset tyypit Laskutoimitukset numeerisille tyypeille Peruslaskutoimitukset + summa - erotus * kertolasku ** potenssiin korotus / jakolasku // pyöristetty jakolasku % jakojäännös Vertailuoperaattorit == yhtä suuri kuin < pienempi kuin > suurempi kuin Matemaattiset funktiot Hyödyllisiä funktioita saadaan käyttöön math-moduulista käskyllä from math import * cos() sin() tan() pow() sqrt() exp() log() radians() degrees() kosini sini tangentti potenssi neliöjuuri eksponentti logaritmi aste -> rad rad -> aste
Sarjatyypit Sarjatyypit Sarjatyypeistä Sarjatyypeissä (sequence types) muuttuja osoittaa jonkinlaiseen listaan muita muuttujia. Sarjatyypit voidaan jakaa muutettaviin ja ei-muutettaviin luokkiin sen mukaan, voidaanko tyypin yksittäisiä elementtejä muuttaa. Merkkijonot sisältävät merkkejä, listat voivat sisältää mitä tahansa pythonin olioita, kuten toisia listoja. Sarjatyypit str list tuple - merkkijono - lista - vakiolista
Sarjatyypit Sarjatyypit - käsitteleminen Merkkijonon luominen a = "jihuu" luo merkkijonon "jihuu". Listan luominen a = [1,2,3.0] luo listan jossa on kaksi kokonaislukumuuttujaa ja yksi liukulukumuuttuja. Listan alkioiden käsitteleminen Listan alkioihin viitataan hakasuluilla. Listan numerointi alkaa nollasta. a[0] = 1.0 asettaa listan ensimmäiseksi alkioksi liukuluvun 1.0. a[1:] = 2.0 asettaa listan alkiot lähtien toisesta listan loppuun.
Seuraavalla luennolla Lisää Pythonia.