Üldist Pythonist

From Wikiversity

< 2. nädala teemad

Python on interpreteeriv üldotstarbeline programmeerimiskeel, mida algselt arendati skriptikeeleks. Python võimaldab progrmmeerida nii objektorienteeritult kui ka protseduurselt. Siiski osa tööd jääb tegemata, kui püüda rangelt objektideta hakkama saada. Sel kursusel läheneme programmeerimisele (ja Pythonile) peamiselt objektideta, kuid ei ole pääsu ka lühikesest ekskursioonist objektide juurde. Sest vastasel juhul jääks osa töid tegemata (nt andmevahetus failidega).

Pythoni loojaks on Guido van Rossum Hollandist Stichting Mathematisch Centrumist (Hollandi Rahvuslik Matemaatika ja Arvutiteaduse Instituut). Keele loomise ajaks märgitakse 1991. Autor kutsub keelt skriptikeeleks, kuid tegemist on siiski võimsama programmeerimiskeelega. Guido van Rossum alustas Pythoni projektiga 1989 aasta lõpus ja keele eellaseks võib pidada (tema enda sõnade kohaselt) keelt ABC, mis oli 1980-tel loodud õpetamise keel. Python oli esialgu suunatud Unix-i/C kasutajatele ja mõned keele omadused on laenatud ka C-st.

Python on oma nime saanud briti naljameeste telesarja "Monty Pythoni lendav tsirkus" järgi. Maoga ei ole siin (õnneks) mingit pistmist. Seega on lootust, et ta meist kedagi kägistama ei hakka.

Python (täpsemalt tema interpretaator) on vaba tarkvara (enamus väljalaskeid vastab GPL-litsentsile). See tähendab muuhulgas, et Pythoni interpretaatori eest ei pea raha maksma ja teda võib samas kasutada ka kommertstoodete tegemiseks.

Pythoni interpretaator on loodud erinevatele platvormidele: Unix, MacOS, MS-DOS, OS/2 ja Windows. Pikemat aega kehtisid erinevad Pythoni 2.x versioonid. 2008 aasta lõpust on väljas uus versioon Python 3.x, mida kutsutakse ka "Python 3000" või "Py3K". Tasub tähele panna, et võrreldes eelnevate 2.x versioonidega tähendab see keeles mitmeid muudatusi ning 2.x vaimus kirjutatud programmid ei lähe reeglina Py3K-ga käima. Täpsemalt öeldes ei oska Py3K interpretaator Python 2.x-keelseid programme interpreteerida. Ka Guido van Rossum rõhutab, et "Py3K is the first ever intentionally backwards incompatible Python release". Järeldus: kõik veebist leitud Python-programmid ei pruugi käima minna ja sellest ei tasu meeleheitesse sattuda.

Pythoni interpretaatoriga on kaasas väike graafiline töökeskkond IDLE ning lisaks saab Pythonis kirjutatud programme käivitada käsurealt. Windows'i ja teiste operatsioonisüsteemide jaoks on loodud lisaks erinevaid töökeskkondi: PythonWin, PyScripter jms. Need keskkonnad vajavad eraldi installeerimist.

Keele tuuma (core Python), tema süntaksi (õigekirja) ja semantikat (lausete tähendust) peetakse minimalistlikuks, kuid lisateegid (library) ja laiendused avardavad tunduvalt keele võimalusi. Suur osa vajaminevatest võimalusest (funktsioonidest) on saadaval standardteegis (standard library).

Idee kohustusliku lausete treppimise kohta ja selle kasutamine lausete grupeerimiseks pärineb keelest ABC. Treppimine tõstab tunduvalt programmide loetavust inimese jaoks. Loetavuse tõstmiseks on ka lähtutud põhimõttest, et liigne võimaluste rohkus samade asjade kirjapanekuks ei ole hea. Loetavus on oluline inimeste jaoks, kes sama koodiga (või ka oma vana koodiga) töötama peavad. Eelneva ideega on seotud kirjavahemärkide-tehtemärkide kasutamine samal viisil, nagu seda ka nt koolimatemaatikas tehakse. Samuti võib see olla põhjuseks, et 3.0 versioon varasematega ühilduvaks tehtud ei ole.

Väidetavalt on Pythonit kerge õppida (no seda me veel näeme ;) ) oma selge struktuuri tõttu. Ja ehkki ta on oma olemuselt objekt-orienteeritud keel (OO-keel), saab esimesed sammud teha ka objektideta. Seda me ka selles kursuses üritame. Loetavust peaks tõstma see, et keeles ei kasutata näiteks erisümboleid muutujate tähistamiseks ja kohustus oma programmi treppida. Siin kohal ei tohi aga unustada, et keel on vaid abivahend oma mõtete-käskude arvutile kirjapanekuks ning põhiraskus läheb siiski mõtlemise-algoritmimise peale.

Python on küll interpreteeritav keel (ja seetõttu võrreldes kompileeritavate keeltega aeglasem, st antud keeles kirjutatud programm töötab aeglasemalt võrreldes mõnes kompileeritavas keeles kirjutatud programmiga), kuid interpreteerimine ei toimu mitte lähtekoodi järgi, vaid eelnevalt on kirjutatud nn baitkood ja see on juba lähedasem masinkoodile. Selles osas on Python sarnane Javaga.

Kasutatud kirjandus:

Pythoni koduleht

< 2. nädala teemad