Kihagyás

Python alapok

Kommentek

Pythonban is írhatunk a kódba kommenteket (megjegyzéseket). Egysoros kommentet # után írhatunk, míg több soros kommentet egymás utáni #-kell írhatunk. Lásd még.

1
2
3
4
# ez egy egysoros komment

# ez egy több
# soros komment

Kiíratás

Ha Pythonban ki szeretnénk valamit íratni a standard outputra, akkor a print() beépített függvényt tudjuk használni.

A python (vagy szükség esetén python3) paranccsal indítsuk el a parancssori Python értelmezőt, majd adjuk ki az alábbi utasítást!

1
print("Hello World!")

Kimenet

Hello World!

Az Enter lenyomása után valóban megjelenik a konzolon a "Hello World!" szöveg.

A program kimenete parancssorban

A print() függvényt egyébként több paraméterrel is meghívhatjuk. Ekkor a függvény ezeket a paramétereket sorban, (alapértelmezett módon) szóközzel elválasztva írja ki.

1
print("Most", "már", 5, "paraméterünk", "van")

Kimenet

Most már 5 paraméterünk van

A pontosvessző hiánya

A fenti kódpéldákban észrevehettük, hogy a C-ben megszokottakkal ellentétben Pythonban nem teszünk az utasítások végére pontosvesszőt.

A Python készítői ügyeltek arra, hogy letisztult, egyszerűen olvasható kódokat írhassunk a nyelven, így többek között az utasítások végén lévő pontosvesszőktől is "megszabadultak".

Alapvető adattípusok

Az alábbiakban röviden áttekintjük a Python legalapvetőbb adattípusait és azok jellemzőit.

A bool típus

Logikai adattípus. Értéke True vagy False lehet. Fontos, hogy mindkét kulcsszó érzékeny a kis- és nagybetűkre (tehát pl. a Javából ismert csupa kisbetűs true nem fog működni).

Az int típus

Az egész számok típusa. A típusra vonatkozóan nincs méretkorlát. Korábban volt külön long és int típus, viszont ezeket Python 3-ban egybevonták.

A float típus

A lebegőpontos ("valós") számok típusa. Pythonban is tizedespontot használunk tizedesvessző helyett a lebegőpontos számok megadásakor (pl. 3.14).

Az str típus

Szöveges adattípus, string. C-vel és Javával ellentétben Pythonban nincs külön karakter adattípus (az egy karakterből álló szöveg is szöveges típusú lesz).

Pythonban szövegeket általában idézőjelek ("...") vagy aposztrófok ('...') között adunk meg. A két megadási mód között nincs lényegi különbség.

Szövegek összefűzésére a + (plusz) operátort használjuk. Fontos, hogy az operátor mindkét operandusa szöveges típusú legyen (lásd: később)!

1
print('Hello ' + "Python")

Kimenet

Hello Python

Egy érdekes Python feature a szövegek többszörözése. Ha egy szöveget "beszorzunk" egy számmal (* operátor), akkor a szöveg a szám által meghatározott alkalommal íródik ki.

1
2
3
print("ha" * 5)
print(5 * "ha")
print("NA" * 10 + " BATMAN")

Kimenet

hahahahaha hahahahaha NANANANANANANANANANA BATMAN

Egyéb adattípusok

Ezeken kívül vannak még Pythonban további adattípusok is (lista, tuple, halmaz, dictionary, komplex szám stb.). Ezek egy részével később fogunk megismerkedni.

Változók

Természetesen Pythonban is tudunk létrehozni változókat.

A C-ben megszokottakkal ellentétben Pythonban nincs lehetőségünk külön változódeklarációra, ugyanis Pythonban egy változó akkor jön létre, amikor először értéket adunk neki. Az értékadásra a szokásos = (egyenlőségjel) operátort használjuk.

1
2
# változó létrehozása és értékadás
az_en_valtozom = "valami szöveg"        

A változók elnevezésre vonatkozóan van néhány szabály, amelyet szem előtt kell tartanunk:

  • A változónév csak betűket, számokat és alulvonás karaktert (_) tartalmazhat.
  • A változónév csak betűvel vagy alulvonással kezdődhet (nem kezdődhet számmal).
  • A változónév tartalmazhat ékezeteket, azonban ezt célszerű kerülni.
  • A változónév érzékeny a kis- és nagybetűkre (tehát pl. foo, Foo és FOO három különböző változónak számít).
  • A változónév természetesen nem lehet foglalt kulcsszó (pl.: class, except stb.).
1
2
3
4
5
desszert = "palacsinta"
Desszert = "tiramisu"

print(desszert)         # a változónév kis- és nagybetűérzékeny!
print(Desszert)

Kimenet

palacsinta tiramisu

Dinamikusan típusosság

Egy érdekesség, hogy Pythonban ugyanaz a változó akár eltérő típusú értékeket is tárolhat.

1
2
3
val = 42     
val = 12.345 
val = "sajt" 

Például a fenti kódban a val változó kezdetben egy egész számot, majd egy valós számot, később pedig egy szöveget tárol. Ezt a jelenséget dinamikusan típusosságnak nevezzük.

Azt, hogy egy adott pillanatban egy változó éppen milyen típusú adatot tárol, egyszerűen lekérdezhetjük a type() függvény segítségével.

1
2
val = "Ez egy szöveg"
print(type(val))

Kimenet

<class 'str'>

Alapvető operátorok

A Python nyelv fontosabb operátorai:

Kategória Operátorok
Aritmetikai operátorok +, -, *, /, //, %, **
Hozzárendelő operátorok =, +=, -=, *=, /=
Összehasonlító operátorok ==, !=, <, <=, >, >=
Logikai operátorok and, or, not

A legtöbb operátor a C-ben és Javában tanultakkal megegyező módon viselkedik. Néhány operátor viszont a megszokottaktól eltérő módon működik:

  • A / operátor mindig (egész operandusok esetén is) lebegőpontos osztást végez.
  • Egészosztást a // (dupla per) operátorral végezhetünk.
  • Hatványozásra a ** (dupla csillag) operátor alkalmas.
  • A logikai operátorok eltérnek a C-ben megszokottaktól: and (logikai ÉS), or (logikai VAGY), not (logikai tagadás).
1
2
3
print(5 / 2)     # lebegőpontos (valós) osztás
print(5 // 2)    # egészosztás
print(5 ** 2)    # hatványozás

Kimenet

2.5 2 25

Inkrementálás, dekrementálás

Fontos megjegyezni, hogy a C-ben tanult inkrementáló/dekrementáló operátorok, vagyis a ++ és a -- operátorok Pythonban nem léteznek (se prefix, se posztfix formában)!

1
2
szam = 10
szam++          # ez nem fog működni! (értelemszerűen a szam-- se működne)

Kimenet

File "<stdin>", line 1 szam++ ^ SyntaxError: invalid syntax

Ezek helyett használjuk a += 1, illetve -= 1 alternatívákat az érték 1-gyel való növeléséhez, illetve csökkentéséhez.

1
2
3
4
5
6
7
szam = 10

szam += 1       # érték megnövelése 1-gyel
print(szam)

szam -= 1       # érték csökkentése 1-gyel
print(szam)

Kimenet

11 10

Típuskonverzió

Pythonban szükségünk lehet arra, hogy egy adatot más típusra konvertáljunk.

Ha egy szöveget egész számmá akarunk alakítani, akkor az int() függvényt használjuk.

1
int("42")           # 42

Ha egy szöveget lebegőpontos számra szeretnénk konvertálni, a float() függvény használatos.

1
float("3.14")       # 3.14

Pythonban van egy olyan szabály, hogy szöveget csak szöveggel lehet összefűzni. Ha egy szöveget nem egy másik szöveggel akarunk összefűzni, akkor hibát kapunk.

1
print("Az élet értelme: " + 42)

Kimenet

Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: can only concatenate str (not "int") to str

Ekkor a nem szöveges típusú adatot először szöveggé kell konvertálnunk az str() függvénnyel.

1
print("Az élet értelme: " + str(42))

Kimenet

Az élet értelme: 42

Beolvasás a konzolról

Ha Pythonban adatot szeretnénk beolvasni a felhasználói bemenetről, akkor az input() függvény lesz a barátunk. A függvény visszatér a beolvasott adattal, így egyszerűen eltárolhatjuk azt egy változóban, ha szeretnénk.

Az input()-nak opcionálisan átadható egy szöveges paraméter is. Ez a szöveg az input adat beolvasásakor jelenik meg, így ezt általában arra használjuk, hogy tájékoztassuk a felhasználót, hogy milyen bemeneti adatot vár a programunk.

Fontos megjegyezni, hogy az input() függvény minden esetben egy szöveget olvas be, amit szükség esetén más típusra kell konvertálnunk.

1
2
nev = input("Hogy hívnak? ")    # input adat eltárolása változóban
print("Szia " + nev + "!")

Kimenet

Hogy hívnak? Tamás Szia Tamás!

Példa: Olvassunk be két egész számot a felhasználói inputról, és írassuk ki az összegüket!

1
2
3
4
5
6
7
8
a = input("Első szám: ")         # beolvasás
b = input("Második szám: ")

a = int(a)                       # konvertálás egész számra
b = int(b)

sum = a + b
print("Az összeg: " + str(sum))  # konvertálás stringre

Kimenet

Első szám: 5 Második szám: 2 Az összeg: 7

Feladatok

  1. Írj egy programot, ami bekéri a felhasználó adatait változóban, majd soronként kiírja azt!

Utolsó frissítés: 2021-09-13 14:05:13