A Python egy nyílt forráskódú programozási nyelv, amelyet úgy alkottak meg, hogy könnyen olvasható és nagy teljesítményű legyen. A Pythont egy Guido van Rossum nevű holland programozó készítette 1991-ben. A Monty Python's Flying Circus című televíziós műsor után nevezte el. Sok Python példa és oktatóprogram tartalmaz vicceket a műsorból.

A Python egy értelmezett nyelv. Az értelmezett nyelveket nem kell lefordítani a futtatáshoz. A Python kódot egy interpreter nevű program futtatja szinte bármilyen számítógépen. Ez azt jelenti, hogy a programozó megváltoztathatja a kódot, és gyorsan láthatja az eredményeket. Ez azt is jelenti, hogy a Python lassabb, mint egy lefordított nyelv, például a C, mivel nem közvetlenül gépi kódot futtat.

A Python jó programozási nyelv kezdőknek. Ez egy magas szintű nyelv, ami azt jelenti, hogy a programozó arra koncentrálhat, hogy mit kell tennie, nem pedig arra, hogy hogyan kell tennie. A Pythonban a programok írása kevesebb időt vesz igénybe, mint néhány más nyelven.

A Python olyan programozási nyelvekből merített ihletet, mint a C, C++, Java, Perl és Lisp.

A Python fejlesztői igyekeznek elkerülni az idő előtti optimalizálást. Emellett elutasítják a CPython referenciaimplementáció nem kritikus részeinek olyan javításait, amelyek a sebesség javulását eredményeznék. Ha a sebesség fontos, a Python programozó az időkritikus függvényeket áthelyezheti olyan nyelveken írt bővítő modulokba, mint a C vagy a PyPy, egy just-in-time fordító. A Cython is elérhető. Ez egy Python szkriptet C-re fordít, és közvetlen C-szintű API-hívásokat tesz a Python-interpreterbe.

A Python fejlesztőinek fontos célja, hogy a Python használata szórakoztató legyen. Ez tükröződik a nyelv nevében is, amely a brit Monty Python komikus csoportnak állít emléket. Alkalmanként játékos megközelítések a bemutatókban és a referenciaanyagokban, például a szokásos foo és bar helyett a spamre és a tojásra való hivatkozás.

Fő jellemzők

  • Olvashatóság és egyszerű szintaxis: a Python kód világos és tömör, a behúzás (indentálás) része a nyelvi szabályoknak, így könnyebb karbantartani.
  • Magas szintű, többparadigmás nyelv: támogatja az objektumorientált, imperatív és funkcionális programozást.
  • Dynamikus típusozás: a változók típusa futásidőben dől el (duck typing), ami gyorsabb fejlesztést tesz lehetővé, de több futásidejű ellenőrzést igényelhet.
  • Automatikus memória-kezelés: referencia-számlálás és szemétgyűjtés (garbage collector) gondoskodik a memóriakezelésről.
  • Kiterjedt standard könyvtár („batteries included”): beépített modulok hálózati kommunikációhoz, fájlkezeléshez, rendszerfelügyelethez, szövegfeldolgozáshoz stb.
  • Platformfüggetlenség: a legtöbb Python-implementáció több operációs rendszeren fut (Windows, macOS, Linux).
  • Interaktív futtatás: REPL (interaktív parancssor) a gyors kísérletezéshez és hibakereséshez.

Gyakori implementációk

  • CPython: a referenciaimplementáció, amelyet legtöbbször „Python”-ként használnak.
  • PyPy: JIT (just-in-time) fordítót használó implementáció, amely bizonyos esetekben gyorsabb lehet.
  • Jython: Java Virtual Machine-re írt változat, amely Java-könyvtárakkal integrálható.
  • IronPython: .NET/Mono platformokra készült implementáció.
  • MicroPython: beágyazott rendszerekhez kialakított kis lábnyomú változat.

Teljesítmény és párhuzamosság

A Python általában lassabb lehet, mint a natív, lefordított nyelvek, de a fejlesztési sebesség és a gazdag ökoszisztéma gyakran ellensúlyozza ezt. Fontos szempont a GIL (Global Interpreter Lock), amely a CPython esetén korlátozza az egy folyamaton belüli párhuzamos végrehajtást több szálon. Ennek következménye, hogy CPU-intenzív feladatokhoz gyakran a többprocesszoros megoldások (multiprocessing), C-ben írt kiterjesztések, vagy JIT-elvevő implementációk (például PyPy) használata ajánlott.

A modern Python emellett támogatja az aszinkron programozást (async/await), amely hatékony I/O-bound párhuzamosságot tesz lehetővé.

Fő használati területek

  • Webfejlesztés: keretrendszerek például Django, Flask, FastAPI.
  • Adattudomány és gépi tanulás: NumPy, pandas, SciPy, scikit-learn, TensorFlow, PyTorch és más könyvtárak.
  • Automatizálás és szkriptezés: rendszerek automatizálása, adatfeldolgozás, ETL-folyamatok.
  • Tudományos számítások: kutatás és numerikus modellezés.
  • DevOps és üzemeltetés: konfigurációs eszközök és automatizálók (pl. Ansible modulok).
  • Oktatás: kezdők és iskolák körében népszerű egyszerű szintaxisa miatt.

Fejlesztői eszközök és csomagkezelés

  • pip és PyPI a legelterjedtebb csomagkezelési megoldások.
  • virtualenv, venv és conda a környezetek izolálására.
  • Népszerű IDE-k és szerkesztők: PyCharm, Visual Studio Code, Sublime Text, illetve Jupyter Notebook/JupyterLab interaktív munkához.
  • Teszteléshez: pytest, unittest; típusellenőrzéshez: mypy. Kódszabvány: PEP 8.

Verziók és kompatibilitás

A Python 3 bevezetése (első 3.0 kiadás 2008-ban) jelentős nyelvi változtatásokat hozott. A Python 2 sorozat hivatalosan 2020-ban ért véget (EOL). Azóta a közösség a Python 3-ra fókuszál. Az elmúlt években megjelent 3.11 és 3.12 verziók jelentős teljesítmény- és nyelvi fejlesztéseket hoztak (például gyorsabb futtatás és továbbfejlesztett hibajelzés).

Példa — egyszerű Python kód

# Helló világ és listakezelés def koszont(nevek):     return [f"Szia, {n}!" for n in nevek]  print(koszont(["Anna", "Béla", "Cecil"])) 

Közösség és források

A Python nagy és aktív nemzetközi közösséggel rendelkezik: számos konferencia (pl. PyCon), online fórumok, dokumentáció és oktatóanyagok állnak rendelkezésre. A nyelvet a Python Software Foundation (PSF) gondozza, és a licencelés általában nyitott, permisszív feltételeket biztosít (PSF license / open-source).

Összefoglalás

A Python egyszerre könnyen tanulható és rendkívül sokoldalú. Erőssége az olvashatóság, a gazdag könyvtárrendszer és a széleskörű alkalmazhatóság: webfejlesztéstől az adattudományig és beágyazott rendszerekig. Teljesítmény- és párhuzamossági szempontból vannak kompromisszumai (például a GIL), de a gazdag ökoszisztéma és az implementációk sokfélesége lehetővé teszi ezek kezelését a legtöbb feladatban.