Kihagyás

4. Elágazások

Eddig a programjaink nagyon egyszerűek voltak: a számítógép fentről lefelé, sorról sorra végrehajtotta az utasításokat, kivétel nélkül mindet. A való életben azonban folyamatosan döntéseket hozunk: "Ha esik az eső, viszek esernyőt, különben nem."

A programozásban ezt a döntéshozatalt elágazásoknak (vagy feltételes utasításoknak) nevezzük. Ennek segítségével a programunk képes lesz arra, hogy bizonyos kódrészleteket csak akkor futtasson le, ha egy adott feltétel teljesül.

4.1. A döntéshozatal alapja: az if utasítás

A Pythonban a legegyszerűbb elágazást az if (angolul: ha) kulcsszóval hozzuk létre.

kor = 18

# Megvizsgáljuk, hogy a kor nagyobb vagy egyenlő-e 18-cal
if kor >= 18:
    print("Már elmúltál 18 éves.")
    print("Vásárolhatsz mozijegyet a felnőtt filmekre is.")

print("Ez a sor mindenképpen lefut, mert már nincs behúzva.")

Két nagyon fontos Python szabály, amit itt meg kell jegyezned:

  1. Kettőspont (:): Az if sorának legvégére mindig egy kettőspontot kell tenni. Ezzel jelezzük a gépnek, hogy "figyelj, most jön az, amit akkor kell csinálnod, ha a feltétel igaz!"

  2. Behúzás (Indentation): A Python abból tudja, hogy mely utasítások tartoznak az elágazásba, hogy azokat beljebb húzzuk (általában egy Tabulátor vagy 4 szóköz segítségével). Amint megszünteted a behúzást, a program újra a normál, normál sorrendben futó részbe ér.

4.2. Összehasonlító operátorok

Az elágazásoknál feltételeket vizsgálunk. Ezekhez a feltételekhez összehasonlító operátorokat használunk. Íme a legfontosabbak:

Operátor Jelentés Példa Eredmény
== Egyenlő (Figyeld meg: két egyenlőségjel!) 5 == 5 Igaz (True)
!= Nem egyenlő 5 != 3 Igaz (True)
< Kisebb, mint 5 < 10 Igaz (True)
> Nagyobb, mint 5 > 10 Hamis (False)
<= Kisebb vagy egyenlő 5 <= 5 Igaz (True)
>= Nagyobb vagy egyenlő 10 >= 3 Igaz (True)

Gyakori hiba! Ne keverd össze az értékadást (=) az összehasonlítással (==)! Ha egy változóba bele akarsz tenni valamit, egy egyenlőségjelet használsz (kor = 18). Ha azt akarod vizsgálni, hogy egyenlő-e vele, akkor kettőt (if kor == 18:).

4.3. Kétirányú elágazás: az else ág

Mi van akkor, ha nemcsak akkor szeretnénk csinálni valamit, ha a feltétel igaz, hanem akkor is, ha hamis? Erre való az else (különben) ág.

Az else ághoz sosem írunk feltételt, hiszen ez pontosan azt jelenti: "minden más esetben, ha a fenti dolog nem teljesült".

homerseklet = 15

if homerseklet > 20:
    print("Jó idő van, menjünk a strandra!")
else:
    print("Inkább maradjunk otthon és olvassunk.")

4.4. Többirányú elágazás: az elif ág

Sokszor nem elég két lehetőség. Képzeljük el, hogy osztályzatokat akarunk kiírni pontszám alapján. Erre a Python az elif (az "else if", azaz "különben ha" rövidítése) kulcsszót használja. Bármennyi elif ágat betehetsz egy if és egy else közé.

pontszam = 85

if pontszam >= 90:
    print("Kiváló eredmény (5)!")
elif pontszam >= 80:
    print("Jó eredmény (4).")
elif pontszam >= 60:
    print("Közepes eredmény (3).")
else:
    print("Sajnos ez most nem sikerült.")
Működés: A gép fentről lefelé halad. Amint talál egy igaz feltételt, lefuttatja a hozzá tartozó (behúzott) blokkot, és a többi ágat (az alatta lévő elif és else részeket) teljesen átugorja!

4.5. Logikai operátorok (Összetett feltételek)

Előfordulhat, hogy egyszerre több feltételnek is teljesülnie kell. A Python ehhez angol szavakat használ, ami nagyon könnyen olvashatóvá teszi a kódot:

  • and (ÉS): Csak akkor igaz, ha a bal ÉS a jobb oldali feltétel is igaz.
  • or (VAGY): Igaz, ha legalább az EGYIK feltétel igaz a kettő közül.
  • not (NEM): Megfordítja a feltétel eredményét.
van_jegy = True
van_diakigazolvany = False

# Csak akkor engedjük be, ha van jegye ÉS van diákigazolványa is
if van_jegy == True and van_diakigazolvany == True:
    print("Bemehetsz a moziba diákkedvezménnyel.")
else:
    print("Hiányzik a jegy vagy az igazolvány!")

# Példa a VAGY használatára:
hetvege_van = True
unnepnap_van = False

if hetvege_van == True or unnepnap_van == True:
    print("Ma nem kell iskolába menni!")

💻 Feladatok

  1. Jelszó ellenőrző: Hozz létre egy titkos_jelszo nevű változót, és adj neki egy általad kitalált szöveges értéket (pl. "Kukorica123"). Hozz létre egy felhasznalo_tippje változót is egy másik szöveggel. Írj egy if-else elágazást: ha a két változó megegyezik, írja ki, hogy "Sikeres belépés", ha nem, akkor azt, hogy "Hibás jelszó!".
  2. Mozi korhatár: Készíts egy programot, amely egy kor nevű változóba elmenti a felhasználó életkorát (egy számot).

    Ha a kor kisebb, mint 12, írja ki: "A filmet csak szülői kísérettel nézheted meg."

    Ha a kor 12 és 16 között van (használd az elif és az and operátorokat!), írja ki: "A filmet megnézheted, de ijesztő jeleneteket tartalmaz."

    Egyéb esetben (else) írja ki: "Jó szórakozást a filmhez!"

  3. Páros vagy páratlan: (Kutatómunka) Keress rá az interneten, mi az a "modulo" operátor (a Pythonban % jelöli), és hogyan tudod segítségével eldönteni egy számról, hogy páros vagy páratlan. Írj rá egy rövid if-else programot!