Informatika2-2012/Eloadas08
Stma (vitalap | szerkesztései) (→modul) |
Stma (vitalap | szerkesztései) (→Csomagok és modulok felhasználása) |
||
48. sor: | 48. sor: | ||
(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.) | (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. | ||
+ | |||
+ | <python> | ||
+ | import sys | ||
+ | from sys import stdin | ||
+ | from sys import maxint as mi | ||
+ | from mymodule import * | ||
+ | </python> | ||
+ | |||
+ | * 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. | ||
+ | |||
+ | <python> | ||
+ | from . import torti | ||
+ | from .. import kerek | ||
+ | from ..vaz import orr | ||
+ | </python> | ||
== Megjegyzések == | == Megjegyzések == | ||
* [http://info.ilab.sztaki.hu/~kisstom/info2_2011/1het/ea/1het.pdf 2011-es év előadás anyaga, érdemes átnézni, hátha letisztáz pár kérdést] | * [http://info.ilab.sztaki.hu/~kisstom/info2_2011/1het/ea/1het.pdf 2011-es év előadás anyaga, érdemes átnézni, hátha letisztáz pár kérdést] |
A lap 2012. március 20., 14:48-kori változata
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 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