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:
-
Kettőspont (
:): Azifsorá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!" -
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.")
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
- Jelszó ellenőrző: Hozz létre egy
titkos_jelszonevű változót, és adj neki egy általad kitalált szöveges értéket (pl."Kukorica123"). Hozz létre egyfelhasznalo_tippjeváltozót is egy másik szöveggel. Írj egyif-elseelágazást: ha a két változó megegyezik, írja ki, hogy "Sikeres belépés", ha nem, akkor azt, hogy "Hibás jelszó!". -
Mozi korhatár: Készíts egy programot, amely egy
kornevű 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 azandoperátorokat!), írja ki: "A filmet megnézheted, de ijesztő jeleneteket tartalmaz."Egyéb esetben (
else) írja ki: "Jó szórakozást a filmhez!" -
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övidif-elseprogramot!