Feltételes Utasítások a Pythonban
Mi az a feltételes utasítás?
A feltételes utasítások lehetővé teszik, hogy a programunk különböző kódokat hajtson végre attól függően, hogy egy feltétel teljesül-e vagy sem. Olyan, mint egy útkereszteződés a programban: a feltételtől függően más-más irányba haladhatunk tovább.
# Egyszerű feltételes utasítás példa
kor = 18
if kor >= 18: # Ha a kor nagyobb vagy egyenlő 18-cal
print("Felnőtt") # Akkor ezt hajtjuk végre
else: # Különben
print("Kiskorú") # Ezt hajtjuk végre
Próbáld ki!
Mikor használjuk?
Döntések meghozatala
Amikor különböző kódot kell végrehajtani a feltételektől függően.
Adatok validálása
Bemeneti adatok ellenőrzése, hibakezelés.
Elágazó programlogika
Különböző programútvonalak kezelése.
IF utasítás
Az IF utasítás működése
Az IF utasítás egy alapvető vezérlési szerkezet, ami lehetővé teszi, hogy a program csak akkor hajtson végre bizonyos kódrészleteket, ha egy megadott feltétel teljesül.
Szintaxis
if feltétel: # A feltétel után kettőspont!
# Behúzott kódrészlet
# Ez csak akkor fut le, ha a feltétel igaz
utasítások...
Összehasonlító operátorok
Gyakorlati példa: Páros vagy páratlan?
Nézzünk egy egyszerű példát, ami eldönti egy számról, hogy páros vagy páratlan!
# Páros vagy páratlan szám vizsgálata
szam = int(input('Kérem adjon meg egy egész számot: '))
if szam % 2 == 0: # Osztás maradékát vizsgáljuk
print('A szám páros!')
else:
print('A szám páratlan!')
Próbáld ki!
Abszolút érték példa
Az IF utasítás használatával könnyen meghatározhatjuk egy szám abszolút értékét.
# Abszolút érték meghatározása
szam = float(input('Szám= '))
if szam >= 0:
print(f'A szám abszolút értéke: {szam}')
else:
print(f'A szám abszolút értéke: {-szam}')
Próbáld ki!
ELSE ág
Az ELSE szerepe
Az ELSE ág akkor fut le, ha sem az IF, sem az esetleges ELIF feltételek nem teljesültek. Ez az alapértelmezett vagy "minden más esetben" ág.
Szintaxis
if feltétel:
# Ez fut, ha a feltétel igaz
else:
# Ez fut, ha a feltétel hamis
# Több feltétel esetén:
if első_feltétel:
# Ez fut, ha az első feltétel igaz
elif második_feltétel:
# Ez fut, ha a második feltétel igaz
else:
# Ez fut, ha egyik feltétel sem igaz
Az ELSE ágat nem kötelező használni. Ha nincs szükség alapértelmezett esetre, elhagyható. Az ELSE mindig az utolsó ág, nem követheti több feltétel!
Páros-páratlan vizsgálat ELSE-szel
Egy szám vagy páros, vagy páratlan - tökéletes példa az ELSE használatára!
print('Páros-páratlan meghatározása\n')
# Adatbekérés billentyűzetről
bekert_szam = int(input('Kérem adjon meg egy egész számot: '))
# Kétágú elágazás
if bekert_szam % 2 == 0: # Ha osztható 2-vel
print('A szám páros!') # akkor páros
else: # különben
print('A szám páratlan!') # páratlan
ELSE használata hibaellenőrzésben
Az ELSE gyakran használt hibaellenőrzésre vagy alapértelmezett értékek beállítására.
# Felhasználói input ellenőrzése
felhasznalonev = input("Add meg a felhasználóneved: ")
if len(felhasznalonev) >= 3:
print(f"Üdvözöllek, {felhasznalonev}!")
else:
print("Hiba: A felhasználónév túl rövid!")
Próbáld ki!
Összetett feltételek
Logikai operátorok
A logikai operátorokkal több feltételt kapcsolhatunk össze egy összetett feltétellé. A Python három alapvető logikai operátort biztosít:
if kor >= 18 and jogsi_van:
print("Vezethet autót")
if fizetes_online or fizetes_kp:
print("Sikeres fizetés")
if not problema_van:
print("Minden rendben!")
Háromszög szerkeszthetősége
Nézzünk egy példát összetett feltételre! Egy háromszög akkor szerkeszthető, ha bármely két oldalának összege nagyobb a harmadik oldalnál.
import math # matematikai függvények használatához
a_oldal = int(input('a= '))
b_oldal = int(input('b= '))
c_oldal = int(input('c= '))
# Logikai operátorok használata:
# and - minden feltételnek teljesülnie kell
if (a_oldal + b_oldal > c_oldal) and \
(a_oldal + c_oldal > b_oldal) and \
(b_oldal + c_oldal > a_oldal):
kerulet = a_oldal + b_oldal + c_oldal
print(f'Kerület: {kerulet}')
s = kerulet / 2
terulet = math.sqrt(s * (s - a_oldal) * \
(s - b_oldal) * (s - c_oldal))
print(f'Terület: {terulet:.2f}')
else:
print('NEM szerkeszthető!')
Próbáld ki!
Gyakorló feladatok
Feladatok megoldása
Az alábbi feladatok segítenek a feltételes utasítások gyakorlásában. Minden feladatnál megtalálod a leírást, a példakódot, és ki is próbálhatod őket.
1. Feladat: Egyszerű számbekérés és összehasonlítás
Kérj be a felhasználótól két számot, majd hasonlítsd össze őket! Írd ki, hogy az első szám kisebb, egyenlő vagy nagyobb, mint a második szám!
# Számok bekérése
elso_szam = float(input("Add meg az első számot: "))
masodik_szam = float(input("Add meg a második számot: "))
# Összehasonlítás
if elso_szam < masodik_szam:
print("Az első szám kisebb, mint a második")
elif elso_szam == masodik_szam:
print("A két szám egyenlő")
else:
print("Az első szám nagyobb, mint a második")
Próbáld ki!
2. Feladat: Kisebb vagy nagyobb?
Kérj be a felhasználótól három számot, majd írd ki a legkisebbet és a legnagyobbat közülük!
# Három szám bekérése
a = float(input("Add meg az első számot: "))
b = float(input("Add meg a második számot: "))
c = float(input("Add meg a harmadik számot: "))
# Legnagyobb szám meghatározása
legnagyobb = a
if b > legnagyobb:
legnagyobb = b
if c > legnagyobb:
legnagyobb = c
# Legkisebb szám meghatározása
legkisebb = a
if b < legkisebb:
legkisebb = b
if c < legkisebb:
legkisebb = c
print(f"A legkisebb szám: {legkisebb}")
print(f"A legnagyobb szám: {legnagyobb}")
Próbáld ki!
3. Feladat: Belépési feltételek ellenőrzése
Kérd be a felhasználó életkorát, majd állapítsd meg, hogy beléphet-e egy szórakozóhelyre, ahol a belépési korhatár 18 év!
# Életkor bekérése
eletkor = int(input("Add meg az életkorodat: "))
# Korhatár ellenőrzése
if eletkor >= 18:
print("Belépés engedélyezve!")
else:
print("Sajnálom, nem léphetsz be!")
Próbáld ki!
4. Feladat: Oszthatóság vizsgálata
Kérj be egy egész számot a felhasználótól, majd vizsgáld meg, hogy osztható-e 3-mal vagy 5-tel! Írd ki a megfelelő üzenetet!
# Szám bekérése
szam = int(input("Adj meg egy egész számot: "))
# Oszthatóság vizsgálata
if szam % 3 == 0 and szam % 5 == 0:
print("A szám osztható 3-mal és 5-tel is!")
elif szam % 3 == 0:
print("A szám osztható 3-mal!")
elif szam % 5 == 0:
print("A szám osztható 5-tel!")
else:
print("A szám nem osztható sem 3-mal, sem 5-tel!")
Próbáld ki!
5. Feladat: Évszak meghatározása
Kérj be egy hónapot számként (1-től 12-ig), majd írd ki, hogy melyik évszakhoz tartozik! (Tavasz: 3-5, Nyár: 6-8, Ősz: 9-11, Tél: 12-2)
# Hónap bekérése
honap = int(input("Add meg a hónap számát (1-12): "))
# Évszak meghatározása
if honap in (3, 4, 5):
print("Tavasz")
elif honap in (6, 7, 8):
print("Nyár")
elif honap in (9, 10, 11):
print("Ősz")
elif honap in (12, 1, 2):
print("Tél")
else:
print("Érvénytelen hónapszám!")
Próbáld ki!
6. Feladat: Egyszerű számológép
Kérj be két számot és egy műveletet (+, -, *, /), majd végezd el a műveletet, és írd ki az eredményt!
# Adatok bekérése
szam1 = float(input("Első szám: "))
szam2 = float(input("Második szám: "))
művelet = input("Művelet (+, -, *, /): ")
# Művelet végrehajtása
if művelet == '+':
eredmeny = szam1 + szam2
elif művelet == '-':
eredmeny = szam1 - szam2
elif művelet == '*':
eredmeny = szam1 * szam2
elif művelet == '/':
if szam2 != 0:
eredmeny = szam1 / szam2
else:
print("Nullával nem lehet osztani!")
else:
print("Érvénytelen művelet!")
Próbáld ki!
Kombinált példák
Komplex bankautomata szimuláció
Ez a példa egy egyszerű bankautomata működését szimulálja, ahol ellenőrizzük a PIN kódot, majd különböző műveleteket végezhetünk az egyenleggel.
# Bankautomata szimuláció
PIN = "1234" # Helyes PIN kód
egyenleg = 100000 # Kezdő egyenleg
# PIN kód ellenőrzése
bevitt_pin = input("Kérem adja meg a PIN kódot: ")
if bevitt_pin == PIN:
print("\nSikeres bejelentkezés!")
print(f"Az Ön egyenlege: {egyenleg} Ft\n")
print("Válasszon műveletet:")
print("1 - Készpénz felvétel")
print("2 - Egyenleg lekérdezés")
print("3 - Kilépés")
valasztas = input("Választás: ")
if valasztas == "1":
osszeg = int(input("Kérem adja meg az összeget: "))
if osszeg <= egyenleg:
egyenleg -= osszeg
print(f"Sikeres felvétel! Új egyenleg: {egyenleg} Ft")
else:
print("Nincs elegendő fedezet!")
elif valasztas == "2":
print(f"Az Ön egyenlege: {egyenleg} Ft")
elif valasztas == "3":
print("Viszontlátásra!")
else:
print("Érvénytelen választás!")
else:
print("Hibás PIN kód!")