A ciklusok (más néven loopok) olyan programozási struktúrák, amelyek lehetővé teszik, hogy egy adott kódblokkot többször futtassunk.
A ciklusok használatával hatékonyan lehet ismétlődő feladatokat végrehajtani a programokban.
Pythonban két ciklust ismerünk: while és for ciklus
A while ciklust akkor használjuk, ha nem tudjuk előre, hogy hányszor kell futtatni a kódblokkot, de van egy feltétel, ami alapján eldönthetjük, hogy folytatjuk-e a futtatást.
A while ciklust szokták elöltesztelő ciklusnak is hívni, mivel először megvizsgálja, hogy egy általunk megadott feltétel fennáll‑e, és ha igen, akkor lefutnak a ciklusban lévő parancsok, a folyamat pedig mindaddig ismétlődik, amíg a megadott feltétel fennáll.
Általános formája:
while feltétel:
# kódblokk
A ciklus addig fut, amíg a feltétel igaz.
Példaként, írjunk egy while ciklust, amely a számokat írja ki 1-től 5-ig. A ciklus addig ismétlődik, amíg az i változó értéke eléri az 5-öt.
i = 1
while i <= 5:
print(i)
i += 1 # i = i + 1
A fenti példában az i változó értéke folyamatosan növekszik eggyel minden egyes cikluson belül, amíg el nem éri az 5-öt. A ciklusmagban található print() függvény kiírja az aktuális i értékét, majd az i értéke növekszik eggyel. A ciklus futása tehát 5-ször ismétlődik, mivel a ciklusfeltétel igaz minden egyes futás után, amíg az i értéke el nem éri az 5-öt.
A while ciklust sokféle módon lehet alkalmazni, azonban fontos, hogy vigyázzunk az olyan végtelen ciklusokkal, amelyek sosem állnak le, mert azok a program futását blokkolhatják. Egy végtelen ciklust akkor hozunk létre, ha a feltétel sosem válik hamisra.
Példák:
A program addig kérdezi a felhasználótól, hogy mondja-e még egyszer, hogy "Vidd ki a szemetet!", amíg a felhasználó nem válaszol "n"-nel.
folytatja = True
while folytatja:
print('Vidd ki a szemetet!')
valasz = input('Mondjam még egyszer? (i/n)')
if valasz == 'n':
folytatja = False
print('>> Program vége! <<')
A program addig kér a felhasználótól új számot, amíg az nincs 5 és 10 között.
szam = int(input('Adj meg egy számot 5 és 10 között! '))
# while szam < 5 or 10 < szam:
while not 5 <= szam <= 10:
szam = int(input('Helytelen érték! Adj meg egy számot 5 és 10 között! '))
print('Rendben!')