Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 5: Python 7. helmikuuta 2009
Ohjelmoinnista Ohjelman peruselementtejä Koodin kommentointi Lohkorakenne Ohjausrakenteet If For While Try Funktiot Käyttö Määrittely Seuraava luento
Peruselementtejä Ohjelman peruselementit Python-ohjelman peruselementtejä ovat muuttujat (int, float, list,...) operaattorit (+,-,*,/,...) funktiot (cos(), exp(),...) ohjausrakenteet (if, for,...) kommentit Lisäksi moduulit (math, numpy,...) luokat (numpy.array,...) metodit (string.find(),...) Esimerkki # Hölmö esimerkki import numpy as np s = "Meitä odotellaan" t = "Minä olen myyrä" a = np.array([1.0, 2.0]) b = 1.0 c = np.cos(a) + b d = cos(b) if s.find("meitä") >= 0: try: print c except: print "Virhe tapahtui"
Peruselementtejä Elementtien käyttö Merkinnästä a, b, c muuttujia. Pakollinen [], valinnainen <> Sijoitusoperaattori a [=, +=, -=, *=, /=] b Laskuoperaattori a = b [+, -, *, /, **] c Ohjausrakenne Mm. if(...): Funktio a = funktio(arg1, arg2,...) Metodi a = b.metodi(arg1, arg2,...) Moduuli import moduuli < as modu > from moduuli import [*, nimi]
Kommentointi Koodin kommentointi Yleistä Kommentit ovat tekstiä jonka tulkki jättää huomiotta. Kaikki # merkin jälkeen tuleva teksti lasketaan kommentiksi. Kommentoimalla Autat muita ymmärtämään koodin toimintaa. Autat itseäsi ymmärtämään koodin toimintaa tauon jälkeen. Esimerkki # Ohjelma tulostaa lukujen a ja b summan. import sys a = float(sys.argv[1]) b = float(sys.argv[2]) # Ensimmäinen luku # toinen luku print a+b
Lohkorakenne Koodin lohkorakenne Lohkot Mm. ohjausrakenteet ja funktioiden määrittely vaativat tavan erottaa rakenteeseen kuuluvan osan muusta koodista. Rakenteet aloittavat aina uuden koodilohkon. Kuinka lohkoja merkitään C:ssä ja monissa muissa kielissä {...}. Fortranissa rakenne... end rakenne Pythonissa lohkot määräytyvät koodin sisennyksen perusteella. Esim. 1 rakenne: rakenne: Esim. 2 if(a > b): c = 0.5 * (a + b) if(c > d): print "%6.2f" %c a += 1.0
If Ehdollinen toteutus: if If if (looginen ): else if (looginen ): else: Esimerkki if x > y: print "x on suurempi kuin y" else if x == y: print "x on yhtä suuri kuin y" else: print "x on pienempi kuin y"
For Toisto: for For Toistoella voidaan mm. suorittaa sama koodi halutuille listan elementeille, tai toistaa jotain halutun monta kertaa. for muuttuja in lista: 1 2 Esimerkki for i in range(10): print i
While Ehdollinen toisto: while While Ehdollista toistoa käytetään koodilohkon suorittamiseen niin kauan kun annettu ehto on tosi. while (looginen ): 1 2 Esimerkki i=0 while (i < 10): print i i += 2
Try Virheenkäsittely: try - except Try, except Try koittaa suorittaa annetun lohkon, jos lohkosta heitetään virheilmoitus, exceptillä voidaan käsitellä virhetilanne kauniisti. try: except errortype: except: Esimerkki a = [1,2] try: print a[2] except IndexError: print "Tuhma indeksi." except: print "Jokin virhe sattu."
Käyttö Funktio Funktio On aliohjelma (myös, toistettava pätkä koodia). Syö jotain (muuttujia) sisäänsä. Voi palauttaa jotain syömänsä perusteella. Voi myös muokata annettuja muuttujia (Pythonissa ei ole jakoa funktioihin ja proseduureihin kuten joissain muisssa kielissä.). Funktioden tarkoitus on Jakaa ja jäsentää ohjelmaa. Vähentää ohjelmakoodin toistoa.
Määrittely Funktion määrittely Funktio Aloitetaan def funktionimi(argumenttilista): Palauttaa muuttujan (tai useita) käskyllä return muuttuja Esimerkki: def omafunktio(a, b, n): """ Tämä on funktion kommenttiteksti, näytetään komennolla help(funktio). """ k = 0.0 for i in range(n): k += i * a * b return k
Seuraava luento Seuraavalla luennolla Tutustutaan Pythonin moduuleihin Tutustutaan tekstijonojen käsittelyyn. Ja muuta...