Ismerkedés
A Pythonról általánosságban¶
Tulajdonságok¶
- Könnyen olvasható
- Ideális mindenféle platformra/célra
- parancssori, asztali alkalmazásokhoz
- webes alkalmazásokhoz
- beágyazott rendszerekre írt alkalmazásokhoz (pl.: Raspberry PI)
- A TIOBE indexen kétszer választották meg az év nyelvének
- 2020-ban a 2. legnépszerűbb nyelv (2020-ban 2. volt, 2019-ben 3. volt, 2018-ban pedig a 4.)
- jelenlegi helyezéséit itt lehet megnézni
- Gyorsan tanulható, kezdők is könnyen készíthetnek látványos alkalmazásokat
- Néhány tízsoros alkalmazásokhoz is kiváló választás
- Ugyanakkor hatalmas, robosztus rendszerekhez is megfelelő döntés lehet
- Nyílt forrású, bárki fejlesztheti, használhatja akár üzleti célokra is
- Operációs rendszer független
- Rövid, tömör kód írható, szintaxisa egyszerű
- Javaból ismerős szemétgyűjtés, nem a programozó feladata a memória kezelése
- Referencia alapú
- Interpretált, interaktív, objektum-orientált, de támogatja a funkcionális programozást is
- Támogatja a modularitást
- Ideális kezdőknek, általános iskolásoknak akár
- Fontos az indentálás
Miért pont Python?¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
Kik használják?¶
- Facebook
- infrastruktúra menedzsment, automatizálás
- Google
- az egyik hivatalos szerveroldali nyelv
- Instagram
- egy webes Python keretrendszerben (Django) lett megírva
- Egy érdekes videó az Instagram Python 3-ra való átállásáról, itt pedig a hozzá tartozó cikk.
- Battlefield 2 és 2142
- játéklogika és szerveroldal, modok programozási nyelve
- Dropbox
- asztali alkalmazás
- Spotify, Netflix
- data analysis, háttér service-ek
- Frets On Fire
Története¶
- 1989 - Guido van Rossum kezdte el fejleszteni
- ABC nyelv fejlesztője, ott szerzett tapasztalatokat használta fel
- hobbi projektként, hogy elüsse valamivel a karácsonyi szünetét
- régóta gondolkozott egy nyelven, amit olyan könnyű értelmezni, mint egy egyszerű szöveget
- 1994 - Megjelenik a nyelv első hivatalos kiadása, Python 1
- Újdonságok: adatszerkezetek (list, dictionary, str), osztályok, kivételkezelés, modulrendszer, funkcionális programozás eszközei, komplex számok
- Támogatás: már nem támogatott
- Uolsó kiadás: Python 1.6.1 (2000.09.)
-
2000 - Megjelenik a Python 2.0
- Újdonságok: list comprehension (listaképzés), fejlett szemétgyűjtő (garbage collector), egységesített objektummodell, generátorok, context managerek, unicode támogatás
- Támogatás: 2020 végéig biztosan támogatott
- Utolsó kiadás: Python 2.7.15 (2018.05.)
-
2008 - Megjelenik a Python 3.0
- nem kompatibilis az előző Python verziókkal!
- Újdonságok: egészosztás átalakítása, rengeteg elavult, csak a kompatibilitás miatt megtartott lehetőség eldobása (szöveges kivételek, elavult osztályszintaxis), a utasítás helyett függvény lett
- Támogatás: támogatott
- Utolsó kiadás: Python 3.7.0 - 2018.06.
- 2018 - Guido van Rossum visszavonul a nyelv "vezetésétől"
- Python 4?
- Fun fact: Monty Python repülő cirkusza után Python munkanéven kezdte meg a nyelv fejlesztését van Rossum
Python 2 vagy 3?¶
- Ma már nincs kérdés, Python 3
Szükséges eszközök¶
Python interpreter¶
A jegyzetben található (valamint az órai) kódok futtatásához szükségünk lesz egy parancssori Python 3 értelmezőre. A legnépszerűbb a CPython (hivatalos, C nyelven írt interpreter). Nagy népszerűségnek örvend az Anaconda programcsomag is, ami az interpreteren kívül számos, adatelemzéshez jól használható függvénykönyvtárat is tartalmaz. Ezeken kívül számos változat létezik még: Pypy (Pythonban írt Python értelmező), Jython (Javaban írt értelmező), IronPython (.NET-ben írt értelmező), és még számos egyéb nyelven készült értelmező is létezik, ezekről bővebb listát ezen a linken találhatunk.
CPython telepítése¶
- Telepítővel (Windows, Mac OS X) (Telepítő letöltése)
- APT repository-ból (Linux)
1 |
|
- Telepítés után szükség esetén a PATH környezeti változó beállítása
- Ellenőrizzük a parancssorban:
1 2 |
|
Fejlesztőkörnyezet¶
A kódok írásához tetszőleges fejlesztőkörnyezetet választhatunk, az egyszerű szövegszerkesztőtől kezdve a teljes IDE megoldásokig számos lehetőségünk van.
- Egyszerű szövegszerkesztő: Notepad, Notepad++, Sublime Text, Vim, stb.
- Integrált fejlesztői környezetek (IDE): PyCharm, Visual Studio Code, NetBeans, XCode, KDevelop, Spyder, stb.
Természetesen ezeken kívül is rengeteg szerkesztőből válogathatunk, egy bővebb listát ezekről itt találunk.
Visual Studio Code¶
- Egyszerűbb szerkesztő, de sok mindent támogat, rengeteg beépülő modul tölthető le hozzá
- Teljesen ingyenesen használható
- Hozzákapcsolható a Python interpreter, így gyorsan kaphatunk egy egyszerű, gyors fejlesztőkörnyezetet
- Letölthető a https://code.visualstudio.com/ oldalról
- A letöltött programban nincsen Python interpreter, azt külön kell telepíteni (az előbbiekben leírtak szerint)!
PyCharm¶
- IntelliJ alapú (ugyanaz az alapja, mint az IntelliJ IDEA-nak, vagy a WebStormnak)
- Van ingyenes és van professzionális változata is
- Egyetemi hallgatók és oktatók számára a professzionális változat is ingyenes, mindösszesen regisztrálni kell a https://www.jetbrains.com/shop/eform/students linken.
- A letöltött IDE-ben nincsen Python interpreter, azt külön kell telepíteni! (célszerű a PyCharm előtt)
- Aki Programozás I keretin belül használta az IDEÁt, annak ez kiváló döntés lehet.
Parancssori Python értelmező¶
- Interaktív módon használhatjuk az interpretert
- A parancs kiadásával indíthatjuk el az értelmezőt
- Bezárni az EOF karakter segítségével lehet
- Windows: Ctrl + Z
- Unix: Ctrl + D
- Ha valamiért mégsem működne, a
quit()
, vagyexit(0)
parancs beírásával is bezárható az értelmező
- A beírt parancsokat folyamatosan értelmezi, amíg ki nem lépünk az alkalmazásból
Hello World¶
1 |
|
A print
parancs segítségével az alapértelmezett kimenetre (stdout) írhatunk.
Próbáljuk ki: lépjünk be a parancssori Python értelmezőbe (python
paranccsal), majd gépeljük be.
1 |
|
Kimenet
Hello World
A Python nyelvben használhatjuk a '
és "
karaktereket is a szövegek jelölésére
1 |
|
Kimenet
Hello World
- Szöveget összefűzhetünk a
+
karakterrel
1 |
|
Kimenet
Hello World!
Python fájlok futtatása¶
- Helyezzük a programunkat a
hello.py
fájlba, mentsük el. - Ezt követően bármikor futtathatjuk az elkészített programunkat a
python hello.py
paranccsal. - Sokkal kényelmesebb így, mint mindig beírni a teljes programot, amit szeretnénk futtatni.
- Parancssori paramétereket is adhatunk át:
python hello.py arg1 arg2
- Azonban ennek feldolgozásáról később lesz szó.
Alapvető típusok¶
- Numerikus adattípusok
int
: egész számok, nincs méretkorlát (korábban külön voltint
éslong
típus, de Python 3-ban ez összevonásra került)float
: lebegőpontos számtípus, Pythonban a . (pont) karaktert használjuk vessző helyett tizedesvesszőnek (ahogy ezt a legtöbb nyelv esetében megszokhattuk)complex
: komplex számok ábrázolására használható típus
- Szöveges adattípus
-
str
: szöveges adattípus, Pythonban nincs külön karakter-adattípus, ha csak egy karakterből áll egy szöveg, az akkor is szöveg - Logikai adattípus
bool
: logikai adattípus. Értéke csakTrue
vagyFalse
lehet
- Byte adattípus
- További típusok: lista (list), szótár (dictionary, dict), elem n-es (tuple), halmaz (set)
Alapvető műveletek¶
-
Ugyanúgy használhatjuk a már ismert alapvető műveletek: összeadás (+), kivonás (-), osztás (/), szorzás (*)
-
Python 3-ban az osztás az MINDIG lebegőpontos osztást jelent, egészosztáshoz a operátort kell használni (ez viszont mindig egészosztást végez)
1 2 3 4 5 6 7 8 |
|
- Hatványozás is használható a operátorral
1 2 |
|
-
A Python beépítve támogatja a komplex számokat és az azokkal történő műveleteket is (komplex szám: valós és képzetes részből áll)
- Az adott szám után egy karaktert kell írnunk, ha azt szeretnénk, hogy a szám képzetes legyen (a matematikában általában i-vel jelöljük alapvetően)
::: pythonCode >>> 1j * 1j (-1+0j) :::
-
a komplex számok segítségével lehet pl. $-1$-ből gyököt vonni.
-
A komplex számokkal ezen a kurzuson nem fogunk foglalkozni, de mindenkit bátorítunk arra, hogy más tantárgyak tanulásához (akár beadandóhoz) használja nyugodtan a Python adta lehetőségeket (pl.: Diszkrét matematika)