Difference between revisions of "Python"

From Fab Lab Wiki - by NMÍ Kvikan
Jump to: navigation, search
(New page: '''Python''' er auðvelt, vinsælt og öflugt forritunarmál sem var búið til af Guido van Rossum og fleirum. Það eru til þó nokkur afbrigði af málinu, en hér verður eingöngu ta...)
 
m (link added to learn python)
 
(2 intermediate revisions by one other user not shown)
Line 2: Line 2:
  
 
Um sögu og eiginleika Python má lesa á [http://en.wikipedia.org/wiki/Python_(programming_language) Wikipedia greininni um Python].
 
Um sögu og eiginleika Python má lesa á [http://en.wikipedia.org/wiki/Python_(programming_language) Wikipedia greininni um Python].
 +
 +
== Um Python ==
 +
Ef þú vinnur mikið með tölvur muntu að lokum finna að það eru ýmis verk sem þú gerir aftur og aftur sem væri gott að gera sjálfvirk. Til dæmis gætirðu viljað leita að texta og skipta honum út fyrir annan texta í mjög stóru safni skráa, eða endurnefna og flokka myndir eftir flóknum reglum. Kannski langar þig til að búa til lítinn gagnagrunn eða grafískt viðmót fyrir eitthvað, eða jafnvel tölvuleik.
 +
 +
Ef þú ert forritari þá gætirðu verið vanur því að vinna með nokkur C/C++/Java aðgerðasöfn en finnst skrifa/þýða/prófa/endurþýða ferlið of hægvirkt. Kannski ertu að skrifa prófanasafn fyrir eitthvað aðgerðasafn og þér finnst það seinlegt og leiðinlegt að búa til prófin. Eða þú hefur skrifað forrit sem gæti notað skriftumál, en þú villt ekki hanna og þróa sérstakt mál fyrir forritið þitt.
 +
 +
Þá er Python mál fyrir þig.
 +
 +
Þú gætir búið til [[Linux skipanalínan|Unix skeljarskriftu]] eða Windows bat-skrár fyrir sum þessara verkefna, en skeljaskriftur henta vel í að færa skrár og breyta texta, en ekki í að búa til grafísk viðmót eða tölvuleiki. Þú gætir skrifað C/C++/Java forrit, en það myndi taka heila eilífð að fá fyrsta uppkastið að forritinu. Python er auðveldara í notkun, fáanlegt á Windows, MacOS X og Unix stýrikerfum, og hjálpar þér að leysa vandamálið hratt og örugglega.
 +
 +
Python er einfallt í notkun, en það er líka alvöru forritunarmál, með strúktúr og stuðning fyrir stór og flókin forrit. Það býður upp á betri villumeðhöndlun en C, og þar sem Python er á mjög háu stigi hefur það margar innbyggðar [[gagnagrindur]] svo sem lista og orðabækur sem mörg lægri forritunarmál hafa ekki. Vegna þess að gagnatýpurnar og gagnagrindurnar er mjög almenns eðlis er hægt að nota þær í mun stærra samhengi en mörg önnur forritunarmál bjóða upp á með auðveldum hætti.
 +
 +
Python leyfir þér að brjóta forritið þitt upp í einingar sem má endurnota í öðrum Python forritum. Það er stórt safn af einingum sem fylgir með sem þú getur notað sem grunn fyrir forritin þín - eða sem dæmi til að læra að forrita í Python. Þessar einingar bjóða upp á skráarvinnslu, stýrikerfisköll, sockets, grafísk viðmót og fleira.
 +
 +
=== Uppbygging málsins ===
 +
 +
Python er túlkað mál, sem getur sparað þér mikinn tíma við þróun þar sem engin vistþýðing (compilation) eða tenging (linking) er nauðsynleg. Túlkinn má nota á gagnvirkan hátt, sem gerir það auðvelt að prófa sig áfram með málið, skrifa forrit sem "hendast eftir notkun", og prófa föll við "bottom-up" þróun. Auk þess er gagnvirki túlkurinn svakalega öflug reiknivél.
 +
 +
Python leyfir manni að skrifa forrit á stuttan og læsilegan hátt. Forrit skrifuð í Python eru almennt mun styttri en sambærileg forrit í C, C++ eða Java, af ýmsum ástæðum:
 +
 +
* öflugri gagnagrindurnar leyfa þér að lýsa flóknum aðgerðum í stökum línum.
 +
* blokkir eru búnar til með inndrætti frekar en slaufusvigum.
 +
* ekki er nauðsynlegt að skilgreina breytur fyrirfram.
 +
 +
Python er útvíkkanlegt: ef þú kannt að forrita í C geturðu bætt við nýjum föllum og einingum í túlkinn, ýmist til að framkvæma mikilvægar aðgerðir á sem mestum hraða eða til að tengja Python forrit við aðgerasöfn sem eru kannski bara til í binary formi (svo sem lokaður/ófrjáls hugbúnaður). Svo er hægt að taka túlkinn og byggja hann inn í önnur forrit sem eru skrifuð í C og notað hann til að stýra þeim.
 +
 +
Málið er nefnt eftir BBC þættinum “Monty Python’s Flying Circus” og hefur lítið að gera með eiturslöngur. Að gera tilvísanir í Monty Python í kóða eða skjölun er ekki bara leyfilegt, heldur nauðsynlegt.
 +
 +
=== Python túlkurinn ===
 +
Python túlkurinn er yfirleitt uppsettur sem /usr/local/bin/python eða /usr/bin/python á þeim tölvum þar sem hann er uppsettur. Þú getur gangsett hann með skipuninni
 +
 +
python
 +
 +
í [[Linux skipanalínan|skelinni]]. Athugið að Python túlkurinn getur í raun verið uppsettur hvar sem er í kerfinu, ef þú ert óviss, talaðu við kerfisstjórann.
 +
 +
Á Windows tölvum er Python uppsetningin oftast nær sett í C:\Python26, en þú getur breytt þessu þegar þú keyrir uppsetningarforritið.
 +
 +
Ef þú sendir end-of-file tákn (Control+D á Unix, Control+Z á Windows) í túlkinn mun hann hætta keyrslu. Ef það virkar ekki einhverra hluta vegna geturðu komist út úr túlkinum með því að skrifa:
 +
 +
import sys; sys.exit().
 +
 +
Gagnvirki túlkurinn virkar svipað og Unix skel: þegar hver lína er lesin er hún túlkuð í strax. Ef pípur eru notaðar til að senda skrá í túlkinn er lesið úr pípunni og aðgerðir framkvæmdar þaðan.
 +
 +
Önnur leið til að gangsetja túlkinn er <code>python -c skipun [viðfang] ...</code>, sem keyrir skipanirnar í "skipun". Þar sem Python skipanir innihalda oft tákn sem Unix skelin túlkar er yfirleitt mælt með að setja skipunina í einfaldar gæsalappir: 'skipun'.
 +
 +
Sumar Python einingar eru nothæfar sem skriftur. Þær má kalla á með <code>python -m eining [viðfang] ...</code> sem keyrir eininguna eins og sjálfstætt forrit.
 +
 +
Athugið að það er munur á <code>python skrá</code> og <code>python < skrá</code>. Síðarnefnda skipunin les ílagsbeiðnir frá forritinu beint úr skránni. Þetta er oftast ekki það sem þú vildir gera.
 +
 +
Þegar skriftuskrá er notuð er stundum gott að geta keyrt skriftuna og komist í gagnviran ham þegar forritinu lýkur. Þetta má gera með því að bæta <code>-i</code> sem viðfangi til Python. Þetta getur hjálpað þér að greina villur í kóðanum eða skoða hegðun forritsins.
 +
 +
=== Python sem reiknivél ===
 +
 +
=== Fyrstu skrefin að forritun ===
 +
 +
===  ===
  
 
== Kennslubækur ==
 
== Kennslubækur ==
Line 22: Line 78:
 
* [http://pyopengl.sourceforge.net/ PyOpenGL] - OpenGL 3D grafík
 
* [http://pyopengl.sourceforge.net/ PyOpenGL] - OpenGL 3D grafík
 
* [http://www.pygame.org/news.html Pygame] - Auðveld og aðgengileg leikjaforritun
 
* [http://www.pygame.org/news.html Pygame] - Auðveld og aðgengileg leikjaforritun
 +
* [http://learnpythonthehardway.org/book/] - learn python

Latest revision as of 16:07, 12 April 2013

Python er auðvelt, vinsælt og öflugt forritunarmál sem var búið til af Guido van Rossum og fleirum. Það eru til þó nokkur afbrigði af málinu, en hér verður eingöngu talað um staðlað Python, sem er kallað CPython.

Um sögu og eiginleika Python má lesa á Wikipedia greininni um Python.

Um Python

Ef þú vinnur mikið með tölvur muntu að lokum finna að það eru ýmis verk sem þú gerir aftur og aftur sem væri gott að gera sjálfvirk. Til dæmis gætirðu viljað leita að texta og skipta honum út fyrir annan texta í mjög stóru safni skráa, eða endurnefna og flokka myndir eftir flóknum reglum. Kannski langar þig til að búa til lítinn gagnagrunn eða grafískt viðmót fyrir eitthvað, eða jafnvel tölvuleik.

Ef þú ert forritari þá gætirðu verið vanur því að vinna með nokkur C/C++/Java aðgerðasöfn en finnst skrifa/þýða/prófa/endurþýða ferlið of hægvirkt. Kannski ertu að skrifa prófanasafn fyrir eitthvað aðgerðasafn og þér finnst það seinlegt og leiðinlegt að búa til prófin. Eða þú hefur skrifað forrit sem gæti notað skriftumál, en þú villt ekki hanna og þróa sérstakt mál fyrir forritið þitt.

Þá er Python mál fyrir þig.

Þú gætir búið til Unix skeljarskriftu eða Windows bat-skrár fyrir sum þessara verkefna, en skeljaskriftur henta vel í að færa skrár og breyta texta, en ekki í að búa til grafísk viðmót eða tölvuleiki. Þú gætir skrifað C/C++/Java forrit, en það myndi taka heila eilífð að fá fyrsta uppkastið að forritinu. Python er auðveldara í notkun, fáanlegt á Windows, MacOS X og Unix stýrikerfum, og hjálpar þér að leysa vandamálið hratt og örugglega.

Python er einfallt í notkun, en það er líka alvöru forritunarmál, með strúktúr og stuðning fyrir stór og flókin forrit. Það býður upp á betri villumeðhöndlun en C, og þar sem Python er á mjög háu stigi hefur það margar innbyggðar gagnagrindur svo sem lista og orðabækur sem mörg lægri forritunarmál hafa ekki. Vegna þess að gagnatýpurnar og gagnagrindurnar er mjög almenns eðlis er hægt að nota þær í mun stærra samhengi en mörg önnur forritunarmál bjóða upp á með auðveldum hætti.

Python leyfir þér að brjóta forritið þitt upp í einingar sem má endurnota í öðrum Python forritum. Það er stórt safn af einingum sem fylgir með sem þú getur notað sem grunn fyrir forritin þín - eða sem dæmi til að læra að forrita í Python. Þessar einingar bjóða upp á skráarvinnslu, stýrikerfisköll, sockets, grafísk viðmót og fleira.

Uppbygging málsins

Python er túlkað mál, sem getur sparað þér mikinn tíma við þróun þar sem engin vistþýðing (compilation) eða tenging (linking) er nauðsynleg. Túlkinn má nota á gagnvirkan hátt, sem gerir það auðvelt að prófa sig áfram með málið, skrifa forrit sem "hendast eftir notkun", og prófa föll við "bottom-up" þróun. Auk þess er gagnvirki túlkurinn svakalega öflug reiknivél.

Python leyfir manni að skrifa forrit á stuttan og læsilegan hátt. Forrit skrifuð í Python eru almennt mun styttri en sambærileg forrit í C, C++ eða Java, af ýmsum ástæðum:

  • öflugri gagnagrindurnar leyfa þér að lýsa flóknum aðgerðum í stökum línum.
  • blokkir eru búnar til með inndrætti frekar en slaufusvigum.
  • ekki er nauðsynlegt að skilgreina breytur fyrirfram.

Python er útvíkkanlegt: ef þú kannt að forrita í C geturðu bætt við nýjum föllum og einingum í túlkinn, ýmist til að framkvæma mikilvægar aðgerðir á sem mestum hraða eða til að tengja Python forrit við aðgerasöfn sem eru kannski bara til í binary formi (svo sem lokaður/ófrjáls hugbúnaður). Svo er hægt að taka túlkinn og byggja hann inn í önnur forrit sem eru skrifuð í C og notað hann til að stýra þeim.

Málið er nefnt eftir BBC þættinum “Monty Python’s Flying Circus” og hefur lítið að gera með eiturslöngur. Að gera tilvísanir í Monty Python í kóða eða skjölun er ekki bara leyfilegt, heldur nauðsynlegt.

Python túlkurinn

Python túlkurinn er yfirleitt uppsettur sem /usr/local/bin/python eða /usr/bin/python á þeim tölvum þar sem hann er uppsettur. Þú getur gangsett hann með skipuninni

python

í skelinni. Athugið að Python túlkurinn getur í raun verið uppsettur hvar sem er í kerfinu, ef þú ert óviss, talaðu við kerfisstjórann.

Á Windows tölvum er Python uppsetningin oftast nær sett í C:\Python26, en þú getur breytt þessu þegar þú keyrir uppsetningarforritið.

Ef þú sendir end-of-file tákn (Control+D á Unix, Control+Z á Windows) í túlkinn mun hann hætta keyrslu. Ef það virkar ekki einhverra hluta vegna geturðu komist út úr túlkinum með því að skrifa:

import sys; sys.exit().

Gagnvirki túlkurinn virkar svipað og Unix skel: þegar hver lína er lesin er hún túlkuð í strax. Ef pípur eru notaðar til að senda skrá í túlkinn er lesið úr pípunni og aðgerðir framkvæmdar þaðan.

Önnur leið til að gangsetja túlkinn er python -c skipun [viðfang] ..., sem keyrir skipanirnar í "skipun". Þar sem Python skipanir innihalda oft tákn sem Unix skelin túlkar er yfirleitt mælt með að setja skipunina í einfaldar gæsalappir: 'skipun'.

Sumar Python einingar eru nothæfar sem skriftur. Þær má kalla á með python -m eining [viðfang] ... sem keyrir eininguna eins og sjálfstætt forrit.

Athugið að það er munur á python skrá og python < skrá. Síðarnefnda skipunin les ílagsbeiðnir frá forritinu beint úr skránni. Þetta er oftast ekki það sem þú vildir gera.

Þegar skriftuskrá er notuð er stundum gott að geta keyrt skriftuna og komist í gagnviran ham þegar forritinu lýkur. Þetta má gera með því að bæta -i sem viðfangi til Python. Þetta getur hjálpað þér að greina villur í kóðanum eða skoða hegðun forritsins.

Python sem reiknivél

Fyrstu skrefin að forritun

Kennslubækur

Pakkasafnið

Einn helsti kostur Python er hvað það hefur víðtækt og aðgengilegt pakkasafn. pakkar (packages) eru aðgerðasöfn sem útfæra marga kraftmikla eiginleika svo að þú þurfir þess ekki. Það væri fáranlegt ef hver og einn einasti forritari sem vildi birta mynd í forritinu sínu þyrfti að búa til sitt eigið aðgerðasafn til að afþjappa JPEG myndum.

Nytsamlegir Python pakkar

  • pySerial - Stjórna Serial (RS-232) samskiptum úr Python.
  • Tkinter - TK (borið fram "tick") grafísk notandaviðmót
  • Numpy - Numerical Python ; töluleg forritun með Python
  • Matplotlib - gröf og myndrit
  • PIL - Python Imaging Library - myndvinnsla með Python
  • PyOpenGL - OpenGL 3D grafík
  • Pygame - Auðveld og aðgengileg leikjaforritun
  • [1] - learn python