Pythonin Kertaus Cse-a1130 Tietotekniikka Sovelluksissa Versio 0.01b
Listat 1/2 esimerkkejä listan peruskäytöstä. > lista=['kala','kukko','kissa','koira'] ['kala','kukko','kissa','koira'] >lista.append('kana') ['kala', 'kukko', 'kissa', 'koira', 'kana'] > lista.insert(1,"hevonen") ['kala','hevonen', 'kukko', 'kissa', 'koira', 'kana'] > lista.index("kukko") 2 > elain= lista.pop(3) ['kala','hevonen', 'kukko', 'koira', 'kana'] > elain 'kissa' > lista.remove('koira') ['kala','hevonen', 'kukko', 'kana'] 2/??
Listat 2/2 listan jäseniin viittaaminen. > lista ['kala','hevonen', 'kukko', 'kana'] > lista[2] 'kukko' > lista[-1] # indeksi -1 viittaa listan viimeiseen alkioon 'kana' > lista[:2] # sama kuin lista[0:2] ['kala','hevonen'] > lista[1:3] # huomaa ettei lista[3]='kana' ole mukana ['hevonen', 'kukko'] > lista[1:] # toisesta elementistä listan loppuun ['hevonen', 'kukko', 'kana'] 3/??
Merkkijonot 1/3 Merkkijonojen yhteenlasku yksinkertaisesti liittää kaksi jonoa peräkkäin. > "foo" + "bar" 'foobar' Kertolasku kokonaisluvun kanssa taas toistaa jonoa kertoimen verran. kahden merkkijonon kertolaskua ei ole määritelty. > "bl"*5 'blblblblbl' Merkkijonon hajottaminen listaksi onnistuu metodilla split(). > elaimet = "kissa,koira,papukaija".split(',') ['kissa','koira','papukaija'] > elaimet[0] 'kissa' 4/??
Merkkijonot 2/3 Merkkijonon voi käytännössä hajottaa minkä tahansa merkkijonon mukaan ja rajoittaa tiettyyn maksimimäärään > "1foo2foo3foo4foo5foo6".split('foo',2) ['1','2','3foo4foo5foo6'] Listan elementit voidaan liittää yhteen merkkijonoksi.join() komennolla > lista=['this','is','sparta!'] > '_'.join(lista) 'This_is_Sparta!' \n tulkitaan merkkijonon sisällä rivinvaihdoksi ja \t sarkaimeksi (tab). Esimerkiksi: > print("omena\nbanaani\nkurpitsa") omena banaani kurpitsa 5/??
Merkkijonot 3/3 Merkkijonojen muotoilu tapahtuu.format()-metodilla. esimerkiksi: > b = 'banaani' > a = 'Apina' > '{0} syö {1}a'.format(a,b) 'Apina syö banaania' Lisää.format()-metodin käytöstä osoitteessa http://docs.python.org/3.1/library/string.html kohdassa 7.1.3.2. 6/??
Toistorakenteet pythonin tärkeimmät toistorakenteet ovat for ja while silmukat for silmukkaa on tarkoitus käyttää kun tiedetään etukäteen, miten monta kertaa silmukka toistetaan. while silmukkaa taas kun toistojen määrä riippuu silmukan sisällä tapahtuvista komennoista. esimerkkejä: for i in range(10): # tulostaa luvut 0-9 print(i) # range(10) <==> range(0,10) ---------------------------------------------------- kala_lista=["hauki","ahven","lahna"] for kala in kala_lista: #tulostaa listan kalat print(kala) --------------------------------------------------- syote = "" while syote!= "lopeta": syote=input("anna komento\n") 7/??
Funktiot Funktiot määritellä avainsanalla def esimerkki funktiosta joka palauttaa pienemmän kahdesta luvusta def minimum(a,b): # pythonin sisäänrakennettu min() if a>b: # ajaisi saman asian return b else: return a print(minimum(2,8)) # tulostaa 2 print(minimum(3,4)) # tulostaa 3 8/??
Tiedostot 1/3 Tiedostojen kirjoitus ja luku tapahtuu pythonissa kolmessa vaiheessa. 1. Avataan tiedosto open() funktiolla oikeassa tilassa. 2. luetaan tiedostosta tai kirjoitetaan tiedostoon 3. suljetaan tiedosto esimerkki #Luku f = open('teksti_tiedosto.txt','r') teksti = f.read() #lukee koko tiedoston f.close() #kirjoitus f = open('toinen_teksti_tiedosto.txt','w') f.write("foobar\n") f.close() 9/??
Tiedostot 2/3 open() funktion syntaksi: f = open(tiedoston_polku, tila) missä tila on yksi seuraavista r avaa tiedoston lukemista varten (oletus). w avaa tiedoston kirjoitusta varten. Luo tiedoston jos sellaista ei vielä ole. kirjoittaa vanhan tiedoston päälle. a kuin w mutta tiedoston ylikirjoittamisen sijaan jatkaa olemassa olevan datan perään. Edellä mainituista tiloista on myös olemassa binääriversiot rb wb ja ab, jotka tulkitsevat tiedostot merkkijonojen sijasta bittijonoina. 10/??
Tiedostot 3/3 funktioita tiedoston lukuun ja kirjoitukseen read() lukee tiedoston loppuun ja palauttaa sen yhtenä merkkijonona readline() lukee tiedostosta seuraavan rivin ja palauttaa sen merkkijonona. readlines() lukee tiedoston jäljellä olevat rivit ja palauttaa ne listana. write() kirjoittaa merkkijonon tiedostoon. Ei lisää rivinvaihtoa readline() ja readlines() funktiot jättävät rivinvaihtomerkin merkkijonojen perään Tiedoston luku- ja kirjoitusfunktiot aloittavat aina pisteestä johon edellinen tiedosto-operaatio on lopettanut. Esimerkiksi jos tiedostosta on luettu readline() funktiolla kaksi ensimmäistä riviä, readlinejä seuraava readlines() komento lukisi tiedostoa kolmannesta rivistä eteenpäin. 11/??
try-except poikkeus (exception) on pythonissa ohjelman ajon aikainen virhe, joka normaalisti kaataisi ohjelman. try-except-rakennetta käytetään kertomaan ohjelmalle, miten sen kuuluu toimia tietyissä poikkeukstapauksissa. syntaksi: try: #tee jotain mahdollisesti ohjelman kaatavaa except poikkeuksen_tyyppi: ''' suoritetaan mikäli tietyn tyyppinen poikkeus tapahtui ''' Mikäli siis try-osassa tapahtuu poikkeus, siirrytään välittömästi suorittamaan except-osaa. ilman poikkeusta except-osaa ei suoriteta ollenkaan. 12/??