Python (opas)
Python on korkean tason interaktiivinen olio-ohjelmointikieli. Se sisältää laajat luokkakirjastot erilaisia käyttötarkoituksia varten.
Tässä esityksessä käytetään Linux-järjestelmään asennettua Pythonia. Kieltä voi kuitenkin käyttää yhtä hyvin myös esimerkiksi Windows- ja Mac OS X-ympäristöissä.
Käynnistys, lopetus ja opastus
Interaktiivinen Python-tulkki antaa oivan mahdollisuuden kokeilla ja suorittaa lyhyitä ohjelmanpätkiä syöttämällä ne suoraan tulkille suoritettavaksi. Pidempiä ohjelmia on toki mahdollista kirjoittaa erilliseen tiedostoon suoritettavaksi. Tutustumme kieleen ensin interaktiivisessa tilassa.
Python-tulkki käynnistyy interaktiiviseen tilaan kirjoittamalla
kometoriville python
. Python käynnistyy kertoen versionsa ja antaa
komentokehotteen, johon käyttäjä voi kirjoittaa käskynsä.
$ python
Python 2.5.2 (r252:60911, Jul 22 2009, 15:35:03)
[GCC 4.2.4 (Ubuntu 4.2.4-1ubuntu3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
Python-tulkista poistutaan funktiolla exit()
tai quit()
taikka näppäinyhdistelmällä ctrl-d
.
Yleistä opastusta Python-tulkissa saa interaktiivisesti funktiolla
help()
ja opastusta tietystä luokasta saa komentamalla
help(
luokka
)
.
Yleisimmät luokat
Python on toteutukseltaan erittäin oliosuuntautunut ja siinä lähes
kaikki asiat ovat luokkia tai niiden instansseja, eli olioita. Itse
asiassa, jopa itse luokat ovat olioita. Ne ovat Pythonin
sisäänrakennetun metaluokan
type
instansseja.
Erillisiä osoitinmuuttujia Python-kielessä ei erikseen ole, mutta käytännössä kaikki kielen muuttujat kuitenkin ovat juuri osoittimia. Tämä tarkoittaa sitä, että kun monissa muissa ohjelmointikielissä muuttujan nimi viittaa aina johonkin muistipaikkaan, jossa sijaitsee muuttujan sisältö, Pythonissa muuttujan nimen viittaamassa muistipaikassa onkin varsinaisen sisällön osoite muistissa. Tämä asia tulee vastaan joissain tilanteissa, kun muuttujaan tallennettua sisältöä muutetaan. Tämä otetaan esille uudelleen, kun tulee puhetta listoista.
Siihen, että Python käsittelee kaikkia muuttujia osoittimina, liittyy osittain myös se Pythonin ominaisuus, että muuttujat eivät ole tyypitettyjä vaan niihin voi sijoittaa mitä tahansa olioita. Muuttujia ei tarvitse erikseen esitellä vaan niitä voi käyttää suoraan sijoittamalla niihin. Python tyypittää muuttujat dynaamisesti.
>>> a=4
>>> b="sana"
>>> a
4
>>> b
'sana'
Luvut ja merkkijonot
Python käsittelee lukuja joko kokonaislukuina tai liukulukuina. Kokonaisluvut voivat olla käytännössä mielivaltaisen suuria. Python varaa luvuille riittävästi tilaa, kunhan vain muistia riittää.
Luvuille voidaan suorittaa laskuoperaatioita, joiden merkinnät ovat suurimmaksi osaksi varsin luonnollisia.
>>> 1+2
3
>>> 2*3
6
Jos jokin laskuoperaation osapuolista on liukuluku, siirtyy Python käsittelemään operaation tulostakin liukulukuna.
>>> 1+2.
3.0
Jakolasku on Pythonissa erityisasemassa. Se antaa erilaisen tuloksen riippuen siitä, ovatko jakolaskun molemmat osapuolet kokonaislukuja vai osallistuuko jakolaskuun liukuluku. Jos osoittaja tai nimittäjä on liukuluku, saadaan jakolaskusta tuloksena myös liukuluku. Kokonaislukujen jakolasku taas antaa tuloksena alas päin pyöristetyn kokonaisluvun.
>>> 4/3
1
>>> 1/3
0
>>> -1/3
-1
>>> -4/3
-2
Tämä jakolaskun toteutus tulee kuitenkin muuttumaan tulevaisuudessa,
koska yllä kuvatulle kokonaislukujen jakolaskulle on Pythonissa oma
operaattorinsa //
. Tulevaisuudessa yhdellä /
-merkillä
esitetty kokonaislukujen jakolasku tuottaa tuloksena liukuluvun, jos on
tarpeen.
>>> 4//3
1
>>> 1//3
0
>>> -1//3
-1
>>> -4//3
-2
Potenssiinkorotuksen operaattorina Pythonissa käytetään kahta
tähtimerkkiä, **
.
>>> 2**8
256
Merkkijonot Pythonissa esitetään joko yksinkertaisin tai kaksinkertaisin
lainausmerkein: 'näin'
tai "näin"
. Näillä kahdella
merkintätavalla on pieni ero, joka tulee esille tietyissä tilanteissa.
Erityisesti kahdesta erilaisesta tavasta on kuitenkin hyötyä, jos
esitettävä merkkijono itse sisältää lainaus- tai heittomerkin.
Esimerkiksi:
>>> w = "Robert's Coffee"
Joskus merkkijonossa tarvitaan molempia merkkejä ja silloin on
käytettävä muita keinoja. Tällöin apuun tulee ns. escape-merkki, jona
myös Pythonissa käytetään (taka)kenoviivaa \
.
>>> w2 = 'Wayne\'s "world"'
Tässä escape-merkkiä on käytetty riisumaan sitä seuraava merkki, eli
'
erityismerkityksestään.