Ciklusok a Pythonban
Mi az a ciklus?
A ciklus egy olyan programozási szerkezet, amely lehetővé teszi, hogy ugyanazt a kódrészt többször végrehajtsuk anélkül, hogy többször leírnánk. Ez különösen hasznos, amikor ugyanazt a műveletet szeretnénk végrehajtani többször, vagy végig akarunk menni egy sorozaton.
For ciklus
Akkor használjuk, amikor előre tudjuk, hányszor szeretnénk ismételni valamit.
# For ciklus példa
for i in range(5):
print(i) # 0-tól 4-ig kiírja a számokat
While ciklus
Akkor használjuk, amikor egy feltétel teljesüléséig szeretnénk ismételni valamit.
# While ciklus példa
szam = 1
while szam <= 5:
print(szam) # 1-től 5-ig kiírja a számokat
szam += 1
Próbáld ki!
Mikor használjunk ciklust?
Sorozatok feldolgozása
Amikor listákon, szövegeken vagy más sorozatokon szeretnénk végigmenni.
Ismétlődő műveletek
Amikor ugyanazt a műveletet többször kell végrehajtani.
Feltételes ismétlés
Amikor addig kell ismételni valamit, amíg egy feltétel teljesül.
For Ciklus
A For ciklus működése
A For ciklus egy számlálós ciklus, amely előre meghatározott számú ismétlést hajt végre. Pythonban gyakran használjuk listák, sztringek bejárására vagy egy művelet többszöri végrehajtására.
Szintaxis
for változó in sorozat:
# Végrehajtandó utasítások
utasítások...
változó
minden körben felveszi a sorozat következő értékét.
sorozat
lehet lista, string, range() vagy bármilyen iterálható objektum.
Csillagok rajzolása
# Csillagok rajzolása a képernyőre
darab = int(input("Hány sornyi csillagot akarsz? "))
for sor in range(darab+1):
print("*"*sor)
Karakterek kiírása egyesével
# Karakterek kiíratása egyesével
szoveg = input("Add meg a szöveget: ")
for karakter in szoveg:
print(karakter)
Számok összege
# Számok összege
bekert_szam = int(input("Adja meg, hogy meddig szeretné összeadni a számokat: "))
osszeg = 0
for szam in range(bekert_szam+1):
osszeg += szam
print(f"Az összeg: {osszeg}")
While Ciklus
A While ciklus működése
A While ciklus egy feltételes ciklus, amely addig ismétli a benne lévő utasításokat, amíg a megadott feltétel igaz. Ez különösen hasznos olyan esetekben, amikor nem tudjuk előre, hány ismétlésre lesz szükség.
Szintaxis
while feltétel:
# Végrehajtandó utasítások
utasítások...
feltétel
bármilyen logikai kifejezés lehet, ami True vagy False értéket ad.
Számok kiírása amíg el nem éri a 10-et
# Számláló while ciklussal
szam = 1
while szam <= 10:
print(szam)
szam += 1
Jelszavas belépés
# Jelszavas belépés
jelszo = ""
while jelszo != "titok":
jelszo = input("Írd be a jelszót: ")
print("Helyes jelszó!")
Számok visszaírása nulláig
# Számok visszaírása amíg nem nulla
bekert_szam = 1
while bekert_szam != 0:
bekert_szam = int(input("Kérem adjon meg egy számot. A kilépéshez adjon 0-t: "))
print(f"Az általad adott szám: {bekert_szam}")
Gyakorló feladatok
Feladatok megoldása
Az alábbi feladatok segítenek a ciklusok 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: Szorzótábla
Készíts egy programot, amely kiírja egy tetszőleges szám szorzótábláját 1-től 10-ig!
# Szorzótábla készítése
bekert_szam = int(input("Melyik szám szorzótábláját szeretnéd? "))
for i in range(10+1):
print(f"{i}*{bekert_szam}={i*bekert_szam}")
Próbáld ki!
2. Feladat: Páros számok listázása
Írd ki az összes páros számot egy megadott határig!
# Páros számok kiírása
hatar = int(input("Add meg a határt: "))
for szam in range(2, hatar + 1, 2):
print(szam)
Próbáld ki!
3. Feladat: Szavak ismétlése
Írj egy programot, amely egy megadott szót többször kiír egymás után!
# Szó ismétlése
szo = input("Adj meg egy szót: ")
ismetles = int(input("Hányszor ismételjem? "))
for i in range(ismetles):
print(szo)
Próbáld ki!
Kombinált példák
Találd ki a számot játék
Ez a példa a while és for ciklusok együttes használatát mutatja be egy egyszerű számkitalálós játékban.
# Számkitaláló játék
import random
# Generálunk egy véletlenszámot 1 és 100 között
gondolt_szam = random.randint(1, 100)
tippek_szama = 0
max_probalkozas = 7
print("Gondoltam egy számra 1 és 100 között.")
print(f"Maximum {max_probalkozas} tipped lehet!")
# While ciklus a játék futtatásához
while tippek_szama < max_probalkozas:
try:
tipp = int(input("Mi a tipped? "))
tippek_szama += 1
if tipp == gondolt_szam:
print(f"Gratulálok! Kitaláltad {tippek_szama} próbálkozásból!")
break
elif tipp < gondolt_szam:
print("A gondolt szám nagyobb!")
else:
print("A gondolt szám kisebb!")
# For ciklussal jelezzük a maradék próbálkozások számát
print("Még ", end="")
for i in range(max_probalkozas - tippek_szama):
print("♥", end="")
print(" életed van.")
except ValueError:
print("Kérlek számot adj meg!")
Karácsonyi fa rajzoló
Ez a példa a for ciklusok egymásba ágyazásával rajzol egy karácsonyfát.
# Karácsonyfa rajzoló
def karacsonyfa(magassag):
# Fa koronája
for i in range(magassag):
# Szóközök a behúzáshoz
for j in range(magassag - i - 1):
print(" ", end="")
# Csillagok a fa ágaihoz
for k in range(2 * i + 1):
print("*", end="")
print() # Új sor
# Fa törzse
for i in range(2):
for j in range(magassag - 2):
print(" ", end="")
print("|||")
magassag = int(input("Add meg a fa magasságát: "))