Informatika2-2012/Eloadas08

A MathWikiből
(Változatok közti eltérés)
(modul)
(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 ===
+
=== 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., 13: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

Megjegyzések

Személyes eszközök