Python alapok
Előzmények
Ahhoz, hogy a Pythonnal tudjatok dolgozni, először szükséges telepítenetek, amit ide kattintva tehettek meg. A telepítés során mindenféleképpen jelöljétek be, hogy adja, hozzá a pathhoz a Python executablet.

Ha ezekkel megvagytok, ehhez valamennyire hasonlót kellene látnotok. exit() beírásával tudtok kilépni.

Python
A Python manapság az egyik leginkább elterjedt programozási nyelv a világon, viszonylagos egyszerűségének, és kiterjedt támogatottságának köszönhet. Ide kattintva további érdekes statisztikákat olvashattok a Pythonról és felhasználási területeiről.
Kezdetek
Már nagyon közel vagyunk ahhoz, hogy elkezdhessünk igazi programokat írni, de szükség van még pár lépésre.
Visual Studio Codeban nyissuk meg azt a mappát amiben a továbbiakban dolgozni szeretnénk (workspace). Gyakran jó megoldás, ha a dokumentumok mappában létrehoztok egy Python mappát, és abban dolgoztok. Valami ehhez hasonlót kellene látnotok

Python workspace A tanultak szerint hozzatok létre egy Python fájlt, amiben dolgozni fogtok. Menüszalagon Terminal -> New Terminal

Új Terminálablak Touch segítségével hozhattok létre egy Python forrásfájlt
Itt jegyezzük meg, hogy minden Python kódot tartalmazó fájl tekinthető egyszerűen ASCII/UNICODE karaktereket tartalmazó halmaznak, és minden fájlművelet, amit szövegfájlokon alkalmaztunk, forrásfájlokon is nyugodtan használható.
Kezdjünk el kódolni
Az első programkód, amivel a legtöbb programozási nyelvben kezdeni szoktak, az a "Hello World", tegyünk hát mi is így.

A továbbiakban, mind a Python, mind parancssori parancsokat code blockokba fogjuk írni. A $ (prompt) karakterrel kezdődő sorokat a parancssorban tudjátok majd használni. (de magát a $-t nem kell beírnotok)
print("Hello World!") $ python main.pyEddigiek alapján annyit jegyezhetünk meg, hogy Pythonban a print() függvény segítségével írhatunk ki dolgokat a kimenetre.
Ha tudunk kiírni dolgokat, akkor nem árt, ha tudunk beolvasni is, ebben lesz segítségünkre elsőként az input() függvény.
input("Hogy hívnak?")Ha ezt így lefuttatnánk, még nem történne semmi, érdemes elmenteni az eredményt egy változóba.
nev = input("Hogy hívnak")Pythonban változókat egyszerűen úgy hozhatunk létre, hogy értéket adunk nekik. A fenti példából kiindulva, ameddig nem adunk értéket a nev változónak, addig nem tudjuk használni.
Fontos, hogy minden változónak van típusa, ami lényegében még mindig arról szól, hogy nullásokat és egyeseket hogyan értelmezze a Python.
Próbáljuk ki a következő kódot.
nev = input("Hogy hívnak? ")
print("Hello " + nev)Valami hasonlót kellene látni
Hello MarciFontos, hogy az input függvény egy stringet (karakterlánc) ad vissza. Így problémát okozhat, ha számokat szeretnénk beolvasni.
Nézzük meg az alábbi példát.
nev = input("Hogy hívnak? ")
print("Hello " + nev)
alma_darab = input("Hány almád van ")
print(alma_darab)Elvileg jónak néz ki amit látunk, viszont van egy kis probléma.
type()
Pythonban minden változónak van típusa. Ez azt jelenti, hogy adott bithalmazt a Python hogyan értelmezze. Léteznek builtin (beépített) típusok, melyeket akármikor tudunk használni Pythonon belül, ezek a legegyszerűbb adattípusok.
Eddig használt legegyszerűbb adattípusok:
Numerikus típusok
int - (integer, egész szám) hasonlóan működnek, mint ahogyan az első órán tanultuk az egész számok ábrázolását, előjeles módszerrel.
float - (floating-point, valós számok, lebegőpontos ábrázolás) szintén hasonlóan működnek, mint első órán tanultuk.
complex - (komplex számok) két valós számból álló párként érdemes elképzelni. A Python a + bj formátumot használja, ahol a j jelöli a képzetes részt.
Szöveg típus
str - (string, karakterlánc) szövegek, karakterek tárolására alkalmas, úgy érdemes elképzelni, mint karakterek listáját. Nem csak hagyományos karakterek tárolására alkalmas, ASCII, UNICODE karaktereket is képes tárolni. Gyakran előforduló nem alfanumerikus (alphabet-numerical) karakterek pl.: "\n" (newline), "\t" (tab)
Logikai típus
bool - (Boolean) Igaz(1)-hamis(0) értékeket vehet fel. Működnek rajtuk a logikai műveletek, amiket tanultunk.
Egy adott változó típusát a type() parancs segítségével ellenőrizhetjük.
print(type(nev))Eredmény
<class 'str'>print(type(alma_darab))<class 'str'>Azt tapasztaljuk, hogy bármit beolvasunk, mindig stringeket fogunk kapni. Ezzel annyi a problémánk, hogy ha például számként szeretnénk dolgozni egy adott változóval, akkor először át kell alakítanunk.
Ha így szeretnénk egy beolvasott változóhoz hozzáadni egy számot, akkor hibát kapunk.
alma_darab = alma_darab + 1TypeError: can only concatenate str (not "int") to strMűveletek fájlokkal
A mappában ahol dolgozunk, hozzunk létre egy egyszerű szövegfájlt touch segítségével.
touch greetings.txtMint korábban láttuk, így lehet a legkönnyebben parancssorból fájlt létrehozni.
A fájl kezdetben üres, így írjunk bele pár sort.
Szia
Hi
Hallo
Bonjour
Ciao
Hola
Привет
你好open(file, mode, encoding, ...)
Pythonban legegyszerűbben fájlokat az open paranccsal nyithatunk meg. Első paraméter a file neve, string formában, a második pedig, hogy milyen módban szeretnénk megnyitni, lehetséges módok:
'r'
fájl megnyitása olvasásra (ha nem adunk meg semmit ez az alapértelmezett)
'w'
megnyitás íráshoz, vigyázzunk, hogy ez törli az eredeti fájl tartalmát
'a'
(append) megnyitás úgy, hogy hozzáírunk az eredeti tartalomhoz
'+'
megnyitás íráshoz és olvasáshoz
az open() függvény egy olyan objektumot ad vissza, ami a megnyitott fájlt és az adott módot reprezentálja, próbáljuk ki az alábbi kódot.
f = open("greetings.txt")
print(f)
f.close()
<_io.TextIOWrapper name='myfile.txt' mode='r' encoding='cp1252'>Fájlokból beolvasni kétféleképpen tudunk egyszerűen.
A fenti jelöléseket követve f.readline(), illetve f.read(). A fontos különbség, hogy az előbbi függvénnyel mindig csak 1 sort olvasunk be(newline, láthatatlan karakterig), utóbbival a fájlt egész tartalmát beolvassuk.
Próbáljuk ki a két módszert ugyanazon a fájlon.
f = open("greetings.txt")
beolvasott = f.read()
print(beolvasott)
f.close()
Szia
Hi
Hallo
Bonjour
Ciao
Hola
Привет
ä½ å¥½Látjuk, hogy sikerült a teljes fájl beolvasása, viszont furák lettek az orosz és kínai karakterek. Ilyenkor az első órán tanultak szerint érdemes a kódolást megváltoztatni, hogy megfelelően jelenjenek meg a karakterek.
f = open("greetings.txt", encoding="UTF-8")
beolvasott = f.read()
print(beolvasott)
f.close()
Szia
Hi
Hallo
Bonjour
Ciao
Hola
Привет
你好Nézzük meg a readline()-t.
f = open("greetings.txt", encoding="UTF-8")
beolvasott = f.readline()
print(beolvasott)
beolvasott_2 = f.readline()
print(beolvasott_2)
f.close()Szia
Hi
Itt rögtön meg is jegyezhetjük, hogy az f objektum megtartja az "állapotát" a beolvasás utána, ameddig beolvastunk, onnan folytatódik a beolvasás.
Amennyiben újra meg szeretnénk nyitni egy fájlt, ne felejtsük el a close() parancs használatát.
f = open("greetings.txt", encoding="UTF-8")
beolvasott = f.readline()
print(beolvasott)
f.close()
same_file = open("greetings.txt", encoding="UTF-8")
beolvasott_2 = same_file.readline()
print(beolvasott_2)
same_file.close()Nem szükséges minden esetben bezárni a fájlokat, azonban érdemes hozzászokni, hogy ha már nem használunk egy erőforrást, akkor zárjuk be azt. Más programozási nyelvekben nagyobb problémákat is tudunk okozni, ha nem zárjuk be az erőforrásokat.
Fájlokba írni hasonlóan tudunk, mint olvasni, a keresett függvények: f.write(), illetve f.writelines(). Most csak a write()-ról fogunk beszélni.
f = open("greetings.txt", mode="w", encoding="UTF-8")
f.write("Hello ")
f.close()
Vegyük észre, hogy mode="w" (write) miatt a fájl eredeti tartalma eltűnik, és csak az lesz benne amit most írtunk bele.
Erre jelent megoldást a mode="a" (append).
f = open("greetings.txt", mode="a", encoding="UTF-8")
f.write("World!")
f.close()
Összefoglalásként érdemes észben tartani azt, hogy a legtöbb input-output művelet stringekkel dolgozik, így érdemes lenne ezekről külön beszélni.
Last updated