Ezen a gyakorlaton a Python parancssori értelmezőn keresztül ismerkedtünk meg a Python nyelv alapvető elemeivel.
Nyissunk egy parancssort, és adjuk ki a python --version
parancsot! A parancs kimenete alapvetően kétféle lehet:
Python 3.X.Y
, tehát az alapértelmezett Python értelmezőnk Python 3-asPython 2.X.Y
, tehát az alapértelmezett Python értelmezőnk Python 2-es.Indítsuk el a Python 3 parancssori értelmezőt...
python
paranccsal, ha az alapértelmezett Python verziónk Python 3-aspython3
paranccsal, ha az alapértelmezett Python verziónk Python 2-es!Pythonban is használhatók a szokásos aritmetikai operátorok: +
(összeadás), -
(kivonás), *
(szorzás), /
(osztás).
Itt is van az operátorok között egy precedencia (fontossági sorrend). Például a szorzás és osztás "erősebb", mint az összeadás és kivonás. A műveletek végrehajtási sorrendjét szokásos módon, zárójelekkel szabályozhatjuk.
>>> 5 + 2 * 3 # először szorzunk, aztán összeadunk 11 >>> (5 + 2) * 3 # először összeadunk, aztán szorzunk 21
Pythonban a /
operátor minden esetben lebegőpontos osztást végez. Egészosztásra a //
operátort használhatjuk.
Ne keverjük az itt látottakat a C-ben tanultakkal! Amíg C-ben a //
egysoros kommentek megadására szolgált, addig Pythonban ez egy operátor az egészosztáshoz. Pythonban a #
karakter után adhatunk meg kommenteket.
>>> 5 / 2 # lebegőpontos ("valós") osztás 2.5 >>> 5 // 2 # egészosztás 2
Maradékos osztásra a %
operátort használjuk itt is. A **
operátorral hatványozást is végezhetünk.
>>> 5 % 2 # maradékos osztás 1 >>> 2 ** 10 # hatványozás 1024
Pythonban a print()
beépített függvényt használjuk a konzolra való kiíratáshoz. A függvény paramétereként megadjuk a kiírandó kifejezést (vagy kifejezéseket).
>>> print("Hello World!") Hello World! >>> print("Hello World!", "Az élet értelme", 42) # több paraméter is megadható Hello World! Az élet értelme 42
Megjegyzés: Pythonban nem teszünk pontosvesszőt az utasítások végére.
Pythonban a változólétrehozás és -értékadás szintaxisa roppant egyszerű.
>>> val = 42 # változó létrehozása és értékadás >>> print(val) # változó értékének kiíratása 42
Pythonban is használhatjuk a szokásos +=
, -=
, *=
és /=
operátorokat a változó értékének növelésére, csökkentésére, beszorzására és osztására.
>>> val = 42 >>> val += 10 # változó értékének megnövelése 10-zel >>> print(val) 52
Fontos megjegyezni viszont, hogy a ++
és --
operátorok Pythonban nem működnek!
>>> val = 42 >>> val++ # ez nem működik (természetesen a -- sem)! :( File "<stdin>", line 1 val++ ^ SyntaxError: invalid syntax >>> val += 1 # így már oké :) >>> print(val) 43
Vegyük észre, hogy a val = 42
létrehozásánál nem adtuk meg expliciten a val
változó típusát (C-ben ez a deklaráció így nézne ki: int val = 42;
)! Ennek az az oka, hogy a Python értelmező automatikusan, dinamikusan "ki tudja találni" a változók típusát a bennük tárolt érték alapján. Ezt úgy is mondjuk, hogy a Python egy dinamikusan típusos nyelv.
A dinamikusan típusosság egyik érdekes következménye, hogy ugyanabban a változóban akár eltérő típusú adatokat is tárolhatunk. A type()
függvénnyel lekérdezhetjük egy változó típusát.
>>> val = 42 >>> print(type(val)) <class 'int'> >>> val = "alma" >>> print(type(val)) <class 'str'>
bool
: logikai adattípus - True
vagy False
értéke lehet (ezek a kulcsszavak mindketten érzékenyek a kis- és nagybetűkre!)
int
: egész szám
float
: lebegőpontos ("valós") szám
>>> logikai = True >>> egesz = -123 >>> lebegopontos = 3.14
str
: szöveges adattípus, string
+
operátor*
operátor>>> print('"Never gonna give you up." - Rick Astley') "Never gonna give you up." - Rick Astley >>> print("\"Never gonna give you up.\" - Rick Astley") # a belső idézőjelek escape-elése is jó megoldás "Never gonna give you up." - Rick Astley >>> print("Valami szöveg, sortöréssel a végén\n") # a szokásos escape-szekvenciák (pl. sortörés) működnek Valami szöveg, sortöréssel a végén >>> print("kecske" + "sajt") # stringek összefűzése kecskesajt >>> print("HA" * 3) # string többszörözése HAHAHA >>> print("NA" * 10 + " BATMAN") NANANANANANANANANANA BATMAN
Megjegyzés: A bonyolultabb adattípusokkal egy későbbi gyakorlaton fogunk foglalkozni.
Pythonban az input()
függvénnyel olvashatunk be adatot a konzolról.
input()
függvény minden esetben egy stringet olvas be. Szükség esetén más típusra kell konvertálnunk a beolvasott értéket!>>> nev = input("Hogy hívnak? ") Hogy hívnak? Bence >>> print("Szia, " + nev + "!") Szia, Bence!
A típuskonverziókhoz általában a következő függvényeket használjuk:
int()
: egész számra konvertálásfloat()
: valós számra konvertálásstr()
: stringre konvertálás.Figyeljünk arra, hogy Pythonban stringet csak stringgel lehet összefűzni! Ha az összefűzés operátor valamelyik operandusa nem string típusú, akkor először szöveggé kell azt alakítanunk az str()
függvénnyel!
>>> szuletesi_ev = int(input("Melyik évben születtél? ")) # konvertálás egész számra Melyik évben születtél? 1999 >>> eletkor = 2021 - szuletesi_ev >>> print(str(eletkor) + " éves vagy.") # konvertálás stringre (összefűzés miatt) 22 éves vagy.