Python: ciklusok

Programozás Python

While ciklus, elöl tesztelő ciklus

Elől tesztelő ciklus – While. A While ciklus megvizsgálja a belépési feltételt, ha igaz végrehajtja az utasításokat. A ciklusokat ismétlődő feladatok végrahajtására használjuk.

Írassuk ki a számokat 1-től 10-ig! Ez azt jelenti, hogy a feltételnek vagy <11-et adunk, vagy <=10-et. Az i változó értéke mindig 1-el fog növekedni, ahányszor lefut a ciklus. Amikor eléri a 11-et, akkor már ki fog lépni a ciklusból, és az else ág fut le. Az else ág opcionális. Természetesen nem mindegy, hogy a print előtt, vagy után növelhük az i értékét! Próbáld ki!

A continue utasítást akkor használjuk, ha szeretnénk egy feltételt megvizsgálni, és utána folytatni a ciklust. Például ha i=5, írjuk ki, hogy hoppá! Itt az i értékét nem fogja kiírni, csak a hoppát!

A break utasítást is használhatjuk feltétel vizsgálatra, de ez megszakítja a ciklus futását! Amikor elérünk péládul 5-ig, akkor ki fog lépni a ciklusból.

Példa: Írasd ki 1-100 közötti hárommal osztható számokat!

Gyakorlás:

Írj egy programot, amely [1;12] intervallumon állít elő 20 darab véletlenszámot! A képernyőre kizárólag csak a 3-mal oszthatóakat írja ki, és a végén informálja a felhasználót arról is, hány darab ilyen szám volt.

For cilus

A Pythonban kicsit eltérően működik a for ciklus, mint más programnyelveken. A Pythonban elsősorban összetett adattípusok (sor, lista, szótár, string, halmaz) elemein tudunk végighaladni a segítségével. Így kicsit előre kell vennünk ezeket a fogalmakat is.

Lista bejárása for ciklussal

A lista elemekből áll, ezeket az elemeket szoktuk kiolvasni, bővíteni, törölni… Majd későbbb még visszatérünk rá. Jelen példában csak szeretném kiíratni az összes elemét. A lista neve: napok. A lista elemeit szögletes zárójelek között felsoroljuk. Utána a for ciklus segítségével kiíratjuk: for x in napok Tehát amíg nem ér a napok elemszámának végére, addig fut a print(x). Az ‘i’ a lista elemet jelöli, ciklus változó, értéke eggyel nő minden lefutáskor. Számozása 0-tól kezdődik és elemszám-1-ig tart. Más porgramozási nyelveken ezt részletesen ki kell fejteni, lásd C#, JS… Itt sokkal egyszerűbb.

Több lista párhuzamos bejárása zip() függvény segítségével

String bejárása for ciklussal

Nagyon hasonló, egyszerű, mint a listánál. Ebben az esetben karakterenként tudunk végigmenni egy stringen. A stringekre is visszatérünk még.

A While ciklushoz hasonlóan a FOR ciklusnál is használhatunk break és continue argumentumot. A continue utasítással megállíthatjuk a for ciklus iterációjat, majd folytathatjuk tovább. A break utasítással pedig ki tudunk „ugrani” a ciklusból ott ahol éppen tart.

A for ciklusban is használhatunk else utasítást, ami akkor fut le, amikor végzett az iterációkkal. (break esetén nem fog kiírni semmit, mert megszakítottuk a ciklus futását.)

Range függvény. Ez hasonlít leginkább a C#-ra, itt megadhatjuk mettől-meddig menjen a for ciklus, és milyen lépésközökkel. A range(1, 51, 2) azt jelenti, hogy 1-től megy 50-ig, és kettesével nő a ciklusváltozó x értéke. Magyarul, csak a páratlan számokat fogja ebben az esetben kiírni. A range-nél a meddig értékéhez tulajdonképpen hozzá kell adni egyet.

A range(start, stop, step) legfőbb ereje abban rejlik, hogy egész számok egy sorozatát állítja elő, anélkül, hogy ténylegesen létrehozná és memóriában tárolná az összes számot (ezért tekintjük generátornak/iterátornak), ami nagy adathalmazok esetén rendkívül erőforrás-hatékony. Mivel a range objektum tudja tárolás nélkül is, hogy mely számokat tartalmazza, rendkívül gyorsan lehet ellenőrizni vele, hogy egy adott szám beletartozik-e a megadott intervallumba.

Természetesen itt is lehet egyszerűsíteni. Ha csak egy paramétert írok: for x in range(6) az azt jelenti, hogy alapból 0-tól kezdve számoz, így 0 – 5-ig növekszik egyesével a ciklusváltozó értéke. Ha két paramétert adok meg, akkor alapból egyesével növeli a ciklusváltozó értékét.

A Python List comprehension (listagenerátor) egy tömör és hatékony módszer a listák létrehozására vagy meglévő listák átalakítására.

Most akkor FOR vagy WHILE?

A for ciklust akkor érdemes használni, ha előre tudod a ciklus futásainak számát, vagy ha egy ismert adathalmaz (egy ún. iterable – pl. lista, string, tuple, range objektum) összes elemén végig akarsz menni, sorban, az elsőtől az utolsóig.

A while ciklust akkor érdemes használni, ha nem tudod előre a ciklus futásainak pontos számát, de van egy feltétel, aminek teljesülnie kell a ciklus futásához. A ciklus addig fut, amíg ez a feltétel igaz (True). Végtelen ciklus akkor fordul elő, ha a while ciklus feltétele soha nem válik hamissá (False). Ez a program lefagyásához vagy erőforrás pazarláshoz vezet.

Nézzünk néhány egyszerű példát for ciklusra!

Gondoltam egy számot játék

Készíts Gondoltam egy számot játékot! A program 1-100 közötti számot sorsoljon, a játékosnak 5 db próbálkozási lehetősége legyen.

Kő, papír, olló játék – számokkal

Frissítve: 2026.06.25.