Informatika2-2012/Eloadas08
Tartalomjegyzék |
Python-ról általában
A Python egy olyan általános körben használható magas szintű programozási nyelv, aminek az egyik alap elve az olvasható kód írása egy nagyon tiszta szintaxis használatával. 1991-ben alkotta meg Guido Van Rossum.
További jellemzők
- objektum orientált (imperatív, procedurális), funkcionális
- sok beépített modul a fejlesztés megkönnyítésére
- dinamikus típus kezelés
- automatikus memóriakezelés
- többféle megvalósítás (CPython, Jython, IronPython, PyPy, Python for S60)
- open-source a főbb platformokra
Python kód futtatása
A kód futtatható interpreter konzolon belül és külső fájlban tárolva. A tavalyi előadást mint ismétlés ajánlom átnézni. (Tananyag része!)
Python szintaktika és az értelmezése
- változók definiálása és egyben deklarálása az = operátorral típus definiálása nélkül
- minden változó egy objektumként jelenik meg a háttérben aminek a típusát a type(obj) függvénnyel kérhetjük el.
- azonos kódblokkokat azonos behúzással jelöljük (használj mindig 2 space-t! minden egyes szinthez)
- kódblokk kezdetét a : jelzi
- megjegyzést a # karakterrel tudsz beírni, ami azt jelenti, hogy a sorban utána lévő karaktereket már nem veszi figyelembe a fordító (sok helyen láthatsz olyat, hogy hivatkozás nélküli string-kel csinálják)
Vezérkési elemek
A vezérlési elemeket az előző félévben a SAGE-el kapcsolatban mar átnéztük ezeket kell tudni. Info1 kapcsolódó diái
Összefoglalva:
Elágazás
- if (elif, else)
Ciklusok
- while
- for
- break, continue
Program struktúra
A python lehetőséget ad bonyolult program szétdarabolására hogy az átláthatóbb legyen a fejlesztők számára A csomagok és a modulok kialakításával érhetjük el a darabolást.
csomag
Kiszervezhető és akár önmagukban is futtatható nagyobb független kódrészletekre használatos. Egy adott területhez tartozó feladatokat látja el. Általában több modul és alcsomagokat tartalmaz. Pl: numpy - "NumPy is the fundamental package for scientific computing with Python."
modul
Kisebb egybefüggő programrészek egysége. Maga a python programot tartalmazó file egy modult képez.
A modul neve a file nevével egyezik amiben van a kód. Így pl.: a protak.py programfájlban lévő modulra a protak névvel tudunk hivatkozni. A modul nevét a programon belül a __name__ változóval érjük el. Fontos, hogy ha a modult mint program indítjuk akkor a __name__ értéke __main__ lesz! Ezt fel lehet használni pl.:
tortin.py fájl tartalma:
def mainp(): print "This is the main" def elp(): print 'This is not the main' if __name__ == '__main__': mainp() else: elp()
Majd hivjuk meg konzolbol a
python tortin.py
illetve interpreterből...
import tortin
(A modul elnevezést szokás használni még azokra a csomagokra is amiket különálló általános problémákat lehet kezelni pl. numpy és azokra amik kiterjesztési csomagok azaz más nyelvhez (pl.: C) való kapcsolódást valósít meg.)
csomagok és modulok felhasználása (import)
A programrészeket felhasználhatjuk a programon belül akárhol, ha azt jelezzük a fordítónak.
A python-on belül ezt az import vagy a from és az import kulcsszavakkal tehetjük meg a következő módon.
import sys from sys import stdin from sys import maxint as mi from mymodule import *
- az import sys paranccsal az összes sys modul alatt elérhető függvényhez és változóhoz hozzáférünk. pl.: sys.maxint vagy sys.ps1
- az from sys import stdin paranccsal a programon használhatjuk a sys modulban definiált stdin változót a saját nevén, azaz a fájlon belül elérhető a stdin változó.
- a from sys import maxint as mi nagyon hasonló az előzőhöz csak itt meg megadtuk azt is hogy a mi modulunkban mi a maxint változót a mi néven akarjuk elérni.
- végül a from mymodule import * sorral azt adtuk meg, hogy mymodule minden eleme (kivéve a "_" karakterrel kezdődőek) elérhetőek legyenek. A * használata csomag import esetén kerülendő, modul esetén is megfelelő figyelemmel!
relatív import útvonalak
Bonyolultabb csomagokban ahol több alcsomag és sok-sok modul található az egymáshoz való hivatkozásokhoz használhatunk relatív útvonalakat.
from . import torti from .. import kerek from ..vaz import orr
modul és csomag nevek feloldása
Az fordító először a
- beépített modulok között keres, ha ott nem találja, akkor
- az indítás könyvtárában keres, ha ott sem találja akkor
- sys.path - ban lévő útvonalakat próbálja végig