Python syntax and semantics
Főnév
Python syntax and semantics (tsz. Python syntax and semanticses)
- (informatika) A Python programozási nyelv szintaxisa azon szabályok összessége, amelyek meghatározzák, hogy hogyan kell egy Python programot megírni, illetve hogyan értelmezi azt a futtatórendszer és az olvasó ember is.
A Python sok hasonlóságot mutat például a Perl, C és Java nyelvekkel, de természetesen jelentős különbségek is vannak. A nyelv támogatja a többféle programozási paradigmát: strukturált, objektum-orientált (OOP) és funkcionális programozást is. Dinamikus típuskezelést alkalmaz, és automatikusan menedzseli a memóriát (pl. szemétgyűjtéssel).
A Python szintaxisa egyszerű, konzisztens, és követi az alapelvet:
„Csak egy nyilvánvaló módja legyen valaminek — és lehetőleg tényleg csak egy.” (There should be one — and preferably only one — obvious way to do it.)
A nyelv tartalmaz beépített adattípusokat, adatstruktúrákat, vezérlési szerkezeteket, első osztályú függvényeket (first-class functions), és modulokat a kód újrafelhasználhatósága érdekében.
A Python angol nyelvű kulcsszavakat használ, ahol más nyelvek gyakran írásjeleket — ezzel is olvashatóbb a kód.
A nyelv robosztus hibakezelést kínál (kivételkezelés), és a standard könyvtárban beépített debugger is található.
A Python olvasható, könnyen tanulható szintaxisa miatt nagyon népszerű kezdők és profik körében is.
Tervezési filozófia
A Python célja a magas olvashatóság. Tiszta vizuális elrendezést alkalmaz, angol kulcsszavakat használ írásjelek helyett.
A nyelv szintaxisának tervezése során az volt a cél, hogy egyszerű és konzisztens legyen.
A mottó (Zen of Python egyik sora):
„There should be one — and preferably only one — obvious way to do it.”
Ez ellentétes például a Perl vagy Ruby filozófiájával:
„There’s more than one way to do it.” (Többféleképpen is meg lehet csinálni valamit.)
Kulcsszavak
A Pythonban 35 kulcsszó (rezervált szó) van, amelyeket nem lehet azonosítóként használni (változónévként sem).
Példák:
and, as, assert, async, await, break, class, continue, def, del, elif, else, except, False, finally, for, from, global, if, import, in, is, lambda, None, nonlocal, not, or, pass, raise, return, True, try, while, with, yield
Ezen kívül léteznek soft keywords is — pl.: match, case, _ — amelyek csak bizonyos szintaktikai környezetekben viselkednek kulcsszóként.
Behúzás (Indentation)
A Python whitespace-et (üres karaktereket, behúzást) használ a vezérlési blokkok kijelölésére.
- Más nyelvekben { } vagy BEGIN / END szavakat használnak.
- A Pythonban behúzással jelöljük, hogy egy blokk meddig tart.
Példa:
def foo(x):
if x == 0:
bar()
else:
baz(x)
foo(x - 1)
Hibás behúzás váratlan viselkedéshez vezethet:
def foo(x):
if x == 0:
bar()
else:
baz(x)
foo(x - 1) # Mindig végrehajtódik — végtelen rekurzió!
Ajánlott 4 szóköz behúzást használni (nem tabulátort!).
Adatszerkezetek
A Python dinamikusan típusos — a változók nem, hanem az értékek hordozzák a típust.
A változók referenciát tartalmaznak objektumokra. Ez a „call by object reference” hívásmodell.
Példa:
alist = ['a', 'b', 'c']
def my_func(al):
al.append('x')
print(al)
my_func(alist)
print(alist)
# ['a', 'b', 'c', 'x']
Ha viszont új objektumot hozunk létre, az nem befolyásolja az eredeti listát:
def my_func(al):
al = al + ['x'] # Új lista, nem módosítja a régit
print(al)
Alap típusok
- Egész számok (int) — tetszőleges méretű
- Valós számok (float) — pl. 3.14, 5e-10
- Komplex számok (complex) — pl. 3 + 4j
- Sztringek (str) — immutable (nem módosítható)
- Logikai értékek: True, False
Gyűjtemény típusok
Szekvenciák (sequences):
✅ list → módosítható lista ✅ tuple → nem módosítható lista (immutable) ✅ str → karakterlánc (immutable)
Leképezések (mappings):
✅ dict → kulcs-érték párok (kulcs: immutable típus)
Halmazok (sets):
✅ set → halmaz, duplikátumok nélkül ✅ frozenset → nem módosítható halmaz
Objektum rendszer
Minden a Pythonban objektum.
- Osztályok is objektumok
- Támogatott a többszörös öröklés
- Minden objektumhoz tartozik egy metaklassz
Például a műveletek túlterhelhetők:
class MyNumber:
def __add__(self, other):
return "Hozzáadás történt!"
Literálok
Sztringek:
- ‘valami’ vagy “valami”
- Többsoros sztringek:
""" ... """vagy... - Raw string: r”valami” → nem értelmezi a
\jelet → regexnél hasznos
Lista, tuple, set, dict
a_list = [1, 2, 3, "kutya"]
a_tuple = (1, 2, 3, "négy")
a_set = {1, 2, 3, 4}
a_dict = {"kulcs1": "érték1", 2: 3}
Operátorok
Aritmetikai:
- , - , * , / (float osztás), // (egész osztás), % (maradék), ** (hatványozás)
Összehasonlító:
==, !=, <, >, <=, >=, is, is not, in, not in
Logikai:
and, or, not → pl.: x and y, x or y
Funkcionális programozás
A Python támogatja a funkcionális stílust is.
✅ List comprehension:
powers_of_two = [2**n for n in range(1, 6)]
✅ Generator:
def generate_primes(stop_at):
for n in range(2, stop_at + 1):
# Prímvizsgálat itt
yield n
✅ First-class functions — a függvények átadhatók, változóhoz rendelhetők.
✅ Lambda:
f = lambda x: x**2
print(f(5))
✅ Closure:
def derivative(f, dx):
def inner(x):
return (f(x + dx) - f(x)) / dx
return inner
Dekorátorok
A dekorátor olyan függvény, ami egy másik függvényt módosít.
@my_decorator
def my_function():
pass
Ugyanez:
def my_function():
pass
my_function = my_decorator(my_function)
Hibakezelés (Exceptions)
A Pythonban a hibakezelést kivételkezeléssel oldjuk meg:
try:
x = 1 / 0
except ZeroDivisionError:
print("Nullával nem lehet osztani.")
finally:
print("Mindig lefut.")
Alapelv: EAFP (Easier to Ask for Forgiveness than Permission) → próbáld meg, ha baj van, kapd el a kivételt.
Kommentek és docstringek
Komment:
# Ez egy soros komment
Többsoros komment (általában docstring):
"""
Ez egy többsoros
dokumentációs sztring.
"""
A docstring automatikusan elérhető az objektum __doc__ attribútumában.
print(my_function.__doc__)
Összegzés
A Python szintaxisa:
✅ Egyszerű, olvasható, következetes ✅ Behúzást használ blokkjelölésre ✅ Angol kulcsszavakat használ ✅ Erős adatszerkezetekkel és funkcionális eszközökkel rendelkezik ✅ Objektum-orientált, de nem kényszerít szigorú OOP stílust ✅ Hibakezelés kivételmechanizmussal ✅ Első osztályú függvényeket, dekorátorokat támogat
- Python syntax and semantics - Szótár.net (en-hu)
- Python syntax and semantics - Sztaki (en-hu)
- Python syntax and semantics - Merriam–Webster
- Python syntax and semantics - Cambridge
- Python syntax and semantics - WordNet
- Python syntax and semantics - Яндекс (en-ru)
- Python syntax and semantics - Google (en-hu)
- Python syntax and semantics - Wikidata
- Python syntax and semantics - Wikipédia (angol)