Python if else
Python
Hogyan működik a python if else szerkezet?
Az eddigi programjaink minden utasítást ugyanabban a sorrendben hajtottak végre. Ez jó kezdet, de egy iő után ennél többre van szükségünk. Sokszor előfordul, hogy a programnak el kell döntenie, mit csináljon egy adott helyzetben. Más történjen akkor, ha egy szám negatív, más akkor, ha nulla, és megint más akkor, ha pozitív?
Erre valók a feltételes utasítások, más néven elágazások. A Pythonban az if, else és elif utasításokat használjuk.
Miért van szükség feltételes utasításra?
A Python if else szerkezet azért fontos, mert a program így nem ugyanazt csinálja minden helyzetben, hanem a feltétel alapján képes eltérő utasításokat végrehajtani.
Nézzük ezt a példát:
szam = int(input(„Adj meg egy egész számot! „))
print(A megadott szám negatív.”)
Ez így nem jó, mert a program minden esetben kiírja, hogy a szám negatív, akkor is, ha a felhasználó pozitív számot adott meg. A programnak tehát meg kell vizsgálnia, hogy a szám valóban kisebb-e nullánál. Erre használjuk az if utasítást.
szam = int(input(„Adj meg egy egész számot! „)
if szam < 0:
print(„A megadott szám negatív.”)
A program itt csak akkor írja ki az üzenetét, ha a megadott szám kisebb nullánál. Ha pozitív számot írunk be, nem történik semmi.
Az if utasítás szabályai:
- a feltétel if szóval kezdődik
- a sor végén kettőspont (:) van
- az alá tartozó utasításokat beljebb kell írni. ezt általában egy tabulátorral oldjuk meg. A pythonban a behúzás nem dísz, hanem szabály. A feltételhez csak a behúzott sorok tartoznak. Ha nem húzzuk beljebb, nem tartozik a feltételhez, ezért a program minden esetben végrehajtja.
Írj egy programot, amely bekér egy egész számot, és csak akkor írja ki, hogy a szám pozitív, ha a megadott szám nagyobb mint 0.
Megoldás
Az else utasítás
Sokszor nemcsak azt szeretnénk megmondani, mi történjen akkor, ha egy feltétel igaz, hanem azt is, mi legyen, ha nem igaz. Erre való az else.
Az else azt jelenti: különben.
Az elif utasítás
Előfordulhat, hogy nemcsak két esetet szeretnénk megkülönböztetni, hanem többet is. Erre használjuk az elif utasítást. Jelentése: egyébként ha. Az előző példánknál ez a harmadik eset lehet a nulla. Írjuk le az alábbi programot:
ha a bekért szám negatív, írja ki, hogy negatív
ha a szám nulla, írja ki, hogy nulla
különben csak pozitív lehet.
Az egyenlőségvizsgálat jele a Pythonban: ==. Nagyon fontos különbség van a = és a == között. Az egy darab egyenlőségjel értékadást jelent. Ezzel adunk értéket egy változónak, pl. szam = 5.
A két darab egyenlőségjel összehasonlítást jelent. Ezzel vizsgáljuk, hogy az érték egyenlő-e valamivel, pl. szam == 0
Egyéb összehasonlító jelek:
< – kisebb mint
> – nagyobb mint
<= – kisebb egyenlő
>= – nagyobb egyenlő
== – egyenlő vajon?
!= – nem egyenlő
Ezekkel tudjuk megadni, milyen feltételt vizsgáljon a program.
Hogyan működik az if, elif és else?
A Python a feltételeket felülről lefelé vizsgálja. Amelyik először igaz lesz, annak a blokkját hajtja végre. Például ebben a kódban
A program először megnézi, hogy a szám kisebb-e nullánál. Ha igen, kiírja, hogy negatív és már nem vizsgálja tovább a többi esetet.
Ha nem, akkor megnézi, hogy egyenlő-e nullával. Ha ez sem igaz, akkor az else ág fut le.
Példa az életkoroddal
Készíts egy olyan programot, ahol bekéred a felhasználó életkorát, majd megállapítod és kiírod, hogy nagykorú-e.
Megoldás
Összefoglalás
A feltételes utasítások segítségével a program képes eldönteni, hogy egy adott helyzetben mit tegyen. Az if azt jelenti, hogy ha, az else azt jelenti, hogy különben, az elif pedig egyébként ha.
A Python if az egyik legfontosabb programozási alap, mert ezzel tudjuk a programot különböző esetek szerint eltérő irányba terelni. Az elágazások nélkül a program minden esetben ugyanazt csinálná, így nem tudna valódi döntéseket hozni.
Gyakorló feladatok
1. Írj programot, amely bekér egy számot és eldönti páros vagy páratlan-e.
Megoldás
2. Írj egy programot, amely bekér egy egész számot, majd eldönti, hogy a szám osztható-e 3-mal.
Megoldás
3. Írj egy programot, amely bekér egy egész számot, majd eldönti, hogy a szám egyjegyű-e.
Megoldás
4. Írj egy programot, amely bekér egy egész számot, majd eldönti, hogy a szám 5 és 20 közé esik-e.
Megoldás
print(„A feltétel nem teljesült”)
5. Írj egy programot, amely bekér egy egész számot, majd eldönti, hogy a szám kétjegyű-e
Megoldás
szam = int(input(„Adj meg egy számot: „))
if 10 <= abs(szam) <= 99:
print(„A szám kétjegyű.”)
else:
print(„A szám nem kétjegyű.”)
Az abs az abszolút értéket adja meg, így nem kell vizsgálni külön a pozitív, negatív számokat.
6. Írj egy programot, amely bekéri egy hónap sorszámát 1 és 12 között, majd kiírja, hogy az adott hónap melyik évszahoz tartozik
Megoldás
Ha számolunk azzal is, hogy a felhasználó nem a megadott számok közül választ:
honap = int(input(„Adj meg egy számot 1 és 12 között: „))
if 3 <= honap <= 5:
print(„Tavaszi hónap.”)
elif 6 <= honap <= 8:
print(„Nyári hónap.”)
elif 9 <= honap <= 11:
print(„Őszi hónap.”)
elif honap == 12 or 1 <= honap <= 2:
print(„Téli hónap.”)
else:
print(„Ez nem érvényes hónap.”)
7. Írj egy programot, amely bekér egy óra értéket 0 és 23 között, majd kiírja, hogy a napszak: hajnal, reggel, délelőtt, délután, este, éjjel. Te döntöd el, hogy melyik napszak meddig tartson, de a határokat add meg egyértelműen a programban.
Megoldás
if 0 <= ora <= 3 or 22 <= ora <= 23:
print(„Éjjel”)
elif 3 < ora < 6:
print(„Hajnal”)
elif 6 <= ora <= 9:
print(„Reggel”)
elif 9 < ora < 12:
print(„Délelőtt”)
elif ora == 12:
print(„Dél”)
elif 12 < ora < 18:
print(„Délután”)
elif 18 <= ora < 22:
print(„Este”)
else:
print(„Érvénytelen szám”)
Ha részletesebben szeretnél olvasni a Python if else működéséről, nézd meg a hivatalos Python dokumentáció control flow fejezetét.
























