FANDOM


Azoknak, akik bevezető helyett a mélyvizet keresik. (A hiányzó dolgokat a vitalapon érdemes felvetni.)

Mit?Hogyan?
Kis- és nagybetűkkülönböznek, számít
Fenntartott szavakWiki Lásd itt
Azonosító Betűvel vagy aláhúzásjellel kezdődik; ugyanezekkel és számjegyekkel folytatódhat. Az egy és két aláhúzásjellel kezdődő azonosítóknak különleges szerepük van. A 3.0 verziótól akár ékezetes betűket is írhatunk az azonosítónevekbe (nem, nem káprázik a szemed!), de a 2.x-ben csak angol betűket. Az azonosítók hossza nincs korlátozva.

Wiki Az aláhúzásjellel kezdődő azonosítók leírása

Műveleti sorrendWiki Lásd itt
Értékadás= += -= *= /= //=
Többszörös értékadása, b, s = 3, 4.5, 'rrr' (rendre felveszik az értékeket)

y, x = x, y (egyszerű csere)

Valójában az első két példában az = jel mindkét oldalán tuple szerkezetek vannak, csak elhagytuk a zárójelet. Ez tehát csak látszólag többszörös értékadás.


a = b = c = 4 (mindegyik 4 lesz – valódi többszörös értékadás)

Feltételes kifejezés<igazérték> if <feltétel> else <hamisérték> (pl. m=a if a<b else b)

A többi megoldást lásd a cikkben!

Elágazás
if <feltétel>:
    utasítások
elif <feltétel2>:
    utasítások
else:
    utasítások
(Természetesen az elif és az else ág nem kötelező, és az elifből akárhány lehet. Ez a szintaxis nagyrészt feleslegessé teszi a többszörös elágazást, mint a Pascalban a case vagy a C-ben a switch. Bővebben Wiki lásd itt.)
Feltételvizsgálat== != < <= > >=  in  not in  is  is not
A „Pascal-stílusú”<> a nem egyenlőre elavult, 2.x-es kód.
Többszörös feltételvizsgálat A Python filozófiája a minél nagyobb hasonlóság a beszélt nyelvhez, így olyan feltételvizsgálatot is csinálhatunk vele, amit más nyelvekben csak az AND operátorral:

az x = 40; y = 3 értékadás után az 1 <= y < x < 100 és a 10 < x > y**2 kifejezés egyaránt igaz (True) értéket ad.

Ciklus
while <feltétel>:
    utasítások

for <változó> in <sorozat>:
    utasítások
Részletesen lásd a Ciklus szócikkben.
Utasítás lezárásaNem kell semmi, úgyis észreveszi a fordító a sor végét. :-) (A ; elfogadható, de tényleg fölösleges.)

A függvény- és osztálydefiníciók, ciklusok, elágazások fejét azonban kettőspont zárja le (ld. a lenti példát). Wiki Ennek oka, hogy egyrészt így olvashatóbb a kód, másrészt a kódszerkesztők könnyebben felismerik, hogy a következő sorban növelni kell a behúzást.
A forrásállományban a fizikai sor végét LF, CRLF és CR is jelezheti (ami gondot okoz, ha egy Linuxon elmentett programot a Windows jegyzettömbjében nyitunk meg).

Több utasítás egy sorban; a határolójel, de nem ajánlott, nem igazán „pythonos”.
Egy utasítás több sorbanLehet egy nyitva maradt kerek, szögletes vagy kapcsos zárójel vagy egy \ a félbehagyott sor végén. A \ végű sorokban nem lehet komment. (Lásd még lent a szövegkonstansoknál.)

Wiki Részletesen

Blokkhatár, „eleje-vége”Tényleg nincs. :-) Az azonos szinten levő utasításokat azonos behúzás jelzi. (Az ajánlás négy szóköz szintenként. Ne keverjük a tabulátort és a szóközt egy állományon belül!)
Szövegkonstans Egyszeres (') vagy kétszeres(") idézőjel, mind a kettőt szereti. Ha például aposztrófot tartalmaz a szövegkonstans, akkor válasszuk a kétszeres idézőjelet. ("D'Artagnan") A Generátor szócikkben a mintanévsort Excellel állítottam elő, itt a ' jel használatával lehetett egyszerűen elkerülni az Excel idézőjeleivel való ütközést.


A stringek állhatnak több rész egymás mellé helyezéséből is, ami automatikus konkatenációt jelent. Például a len('kutya' "füle") kifejezés értéke 9, mert a kutyafüle szó hosszát keresi. Ez a szintaxis megkönnyíti a hosszú kódsorok tördelését.

Használhatunk három idézőjelet is a sorokon átnyúló hosszú szövegekhez, ilyenkor a behúzási szabály az idézőjelen belül nem érvényes. (Általában a kettős idézőjelet használják, de lehet aposztróf is.) Például:

def irkafirka():
    print("""Itt következik a programunkat leíró szöveg.
Sajnos nem fér ki egy sorba, 
de a második sort most nem kezdem beljebb.
Nagyjából ezt akartam elmondani.""")
    print("Ez a sor megint be van húzva a forráskódban.")

A pywikibot szövegcserélő moduljában pl. arra látunk példát, hogy a többsoros szövegkonstansba egy SQL-lekérdezés van beágyazva – itt írd be a ctrl F után a SELECT szót.

A hármas idézőjel alkalmas akkor is, ha nem elég a kétféle idézőjel kombinálása, vagy ha valamelyik literálisan szerepel. De escape-eléssel is elérhetjük a literális megjelenést: s='Arany így írja le Zách Felícián halálát:\n"Zácsot ezért őrök ott helybe\' levágák —\nAztán negyedízig minden rokonságát."'
print(s)

Arany így írja le Zách Felícián halálát:
"Zácsot ezért őrök ott helybe' levágák —
Aztán negyedízig minden rokonságát."


(A példa kicsit sántít, mert a magyar idézőjel alul-felül van.)

Figyelem! 2.x verzióban az ékezetes szövegek elé u betűt kell írni a Unicode jelzésére, pl. u"János".

Elérési út / jellel, Windowsban is (pl. path='C:/Dokumentumok/Informatikaérettségi/Emelt/telkek.txt')
Egysoros vagy soron belüli megjegyzés kezdete

#

Többsoros megjegyzés""" """ jelek közé írjuk, mint a hosszú szövegkonstansokat. Tulajdonképpen az is; felhasználjuk, hogy ha csak egy azonosítót vagy értéket írunk be a shellbe, akkor kiíródik az értéke, de ha programszövegbe írjuk be magában, akkor nem történik semmi, de hibát sem kapunk. (Lásd például a bitmap.py szócikket.) Az ilyent, ha egy osztály/függvény/modul elején van, documentation string vagy Wiki docstring néven emlegetik, és speciális felhasználási módja van, mert bekerül a __doc__ változóba. (Másképpen fogalmazva: az egysoros kommenttel szemben a docstring az interpretált kód része lesz.) Ezt használjuk ki a Valószínűségszámítási szimulációk programban, ahol az egyes függvények docstringjét súgóként írjuk ki.


Értékadáson belül ne használjuk! (Erre különösen a szépen tagolt szótáraknál érezhetnénk késztetést.)
Példa: gépeljük be a shellbe a következő két sort, vagy futtassuk önálló programként:

import sys
print(sys.__doc__)

A shellben itt is elhagyhatnánk a print utasítást, de akkor elég nehezen olvasható eredményt kapnánk a \n jelek miatt.
A fenti print utasítás csak a modulszintű docstringet írja ki. Ezzel szemben a

help(sys)

utasítás teljesebb súgót ad a modul összes docstringjének felhasználásával.

Indexelésmindig 0-tól indul

Ez a szócikk forráskódot tartalmaz, amely egy WikiMedia-kiegészítés segítségével olyan színesen jeleníthető meg, mint például ebben a Wikipédia-cikkben. A kiegészítést a Wikia-stáb ígérete szerint 2010 végéig frissítik, addig türelmet kérünk a fapados kinézet miatt.

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

A Wikia-hálózat

Véletlen wiki