Szkriptnyelvek - 1. gyakorlat

A Python nyelvi alapjai

Ezen a gyakorlaton a Python parancssori értelmezőn keresztül ismerkedtünk meg a Python nyelv alapvető elemeivel.

1. A Python parancssori értelmező elindítása

Nyissunk egy parancssort, és adjuk ki a python --version parancsot! A parancs kimenete alapvetően kétféle lehet:

Indítsuk el a Python 3 parancssori értelmezőt...

2. Aritmetikai operátorok

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

3. Kiíratás

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.

4. Változók

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

4.1. Változókkal kapcsolatos operátorok

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

4.2. Dinamikusan típusosság

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'>

5. Alapvető adattípusok

>>> logikai = True
>>> egesz = -123
>>> lebegopontos = 3.14
>>> 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.

6. Beolvasás, típuskonverziók

Pythonban az input() függvénnyel olvashatunk be adatot a konzolról.

>>> 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:

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.