Perustietoa Python-ohjelmointikielestä

Python on monipuolinen ohjelmointikieli, jossa on pyritty yksinkertaiseen ja havainnolliseen rakenteeseen. Se on lähestymistavaltaan olio-ohjelmointikieli (object-oriented language): ohjelmoija voi määritellä kullekin datarakenteelle operaatioita, jotka voidaan nähdä asioina, jotka datarakennetta vastaava olio "tekee", tai sellaisten olioiden ominaisuuksina. Monet kielen piirteistä on suoraan tai mukaillen otettu Perlistä. Python on ns. tulkittava (interpreted) kieli: Python-kielisen ohjelman suorittamiseksi käynnistetään erityinen Python-tulkki eli ohjelma, joka lukee Python-kielisen koodin ja suoraan toteuttaa sen käskyt.

Hello world -ohjelma (ohjelma, joka vain tulostaa vakiomerkkijonon) on Python-kielellä seuraava:

print "Hello world"
def toisinpain(assosiaatio):
    uusi = {}
    for avain in assosiaatio.keys():
        arvo = assosiaatio[avain]
        if not uusi.has_key(arvo):
            uusi[arvo] = []
        uusi[arvo].append(avain)
    return uusi

syntvuodet = {'Jukka':1952, \
'Liisa':1961, 'Minna':1991}
print toisinpain(syntvuodet)

Python-kielestä on runsaasti erityyppisiä kuvauksia Web-sivustossa Python Language Website. Ohessa oleva esimerkki on muokattu siellä olevan johdannon esimerkistä. Siinä on funktio, joka muuntaa erään datarakenteen (assosiaatiotaulukon, Pythonissa dictionary, Perlissä hash) toiseen muotoon, ja funktion esimerkkikutsu. Se havainnollistaa seuraavia asioita:

Esimerkkiohjelmamme suoritus näyttäisi suunnilleen seuraavalta (koneessa, jossa on Python-tulkki nimellä python ja ohjelma on kirjoitettu tiedostoon toisin.py):

% python toisin.py
{1961: ['Liisa'], 1991: ['Minna'], 1952: ['Jukka']}
%

Suomeksi on Pythonista kirjoitettu CSC:n aineistossa Käytännön ohjeita ohjelmankehitykseen (PDF-muotoinen), jossa on s. 84 - 87 Jonas Juseliuksen kirjoittama Pythonin lyhyt oppimäärä. Ks. myös Vespe Savikon kommentteja siitä. Jarno Virtanen on kirjoittanut seminaariesitelmän Skriptikielet (Python), joka kuvailee skriptikielten ideaa ja sitten yleisellä tasolla Pythonia.

Python-tulkkeja on vapaasti saatavilla useimpiin tietokonejärjestelmiin.

Sopiiko Python ensimmäiseksi ohjelmointikieleksi? Ohjelmoinnin alkeet: Vastauksia usein esitettyihin kysymyksiin käsittelee useiden eri kielten soveltuvuutta ohjelmoinnin opetteluun ja sanoo Pythonista mm. näin:

Pythonin kielioppi on johdonmukainen ja sisältää vähän opeteltavia yksityiskohtia. Kieli tarjoaa runsaasti valmiita työkaluja monien käytännön ohjelmointiongelmien ratkaisemiseen nopeasti ja vähällä kirjoittamisella. Tämän vuoksi se sopii hyvin sellaiselle aloittelevalle ohjelmoijalle, joka haluaa saada nopeasti hyvin toimivia ohjelmia aikaiseksi. Pythonin pahin ongelma on se, ettei siitä ole olemassa kunnollista kirjallista materiaalia aloittelevan ohjelmoijan käyttöön.

Viimeksi mainittu ongelma on ollut erittäin todellinen ainakin suomen kielen osalta. Parannusta on tuonut mm. Python-ohjelmointiopas (PDF-muotoinen).

Muunkielistä aineistoa on paljonkin. Tosin suuri osa siitä on kirjoitettu niille, jotka opiskelevat Pythonia noin seitsemäntenä kielenään, mutta esimerkiksi Instant Hacking - Learn how to program with Python näyttäisi olevan hyvinkin perusteista lähtevä johdatus.

Python Language Websiten sisältämästä aineistosta mainittakoon erityisesti seuraavat:

Nimi "Python" johtuu Monty Pythonista. Se lausutaan englanniksi kuten (eräitä käärmeitä tarkoittava) yleisnimi "python", suomenkielisessä puheessa yleensä "pyytton".