Python
While ciklus Pythonban
A programozásban gyakran előfordul , hogy egy utasítást vagy több sorból álló blokkot többször szeretnénk végrehajtani. Ezt leírhatnánk újra és újra, de ennél van egy sokkal jobb megoldás: a ciklus. A while ciklus akkor hasznos, ha azt szeretnénk, hogy egy művelet addig ismétlődjön, amíg egy feltétel igaz. A Pyhtonban a while ciklus addig fut, amíg a megadott feltétel igaz.
Mi az a while ciklus?
A while szó jelentése: amíg. A while ciklus tehát azt mondja a programnak: amíg egy feltétel igaz, addig hajtsd végre ezt a blokkot.
Általános alakja:
while feltétel:
utasítás
Nagyon fontos, hogy a while után egy feltétel álljon, a sor végén pedig kettőspont legyen. Az alatta levő behúzott sorok tartoznak a ciklus törzséhez.
Lássuk ezt egy konkrét példával. Írjunk ki minden egész számot 1-től 10-ig:
Mi történik itt?
- A szam = 1 sorban létrehozunk egy változót, amely 1-ről indul
- A while szam <= 10: azt jelenti, hogy amíg a szám kisebb vagy egyenlő 10-zel, fusson a ciklus
- a print(szam) kiírja az aktuális értéket
- a szam = szam + 1 megnöveli a változó értékét eggyel, hogy a következő körben már a következő szám jöjjön. Ha ezt a növelést kihagynánk, a feltétel mindig igaz maradna, és a ciklus soha nem érne véget. Ezt végtelen ciklusnak nevezzük.
A szam = szam + 1 leírható rövidebb módon is: szam += 1. A Python dokumentációja az ilyen += alakot kiegészített értékadásként írja le, például a += 2, a szokásos esetben a hosszabb a = a + 2 rövidebb formája. Ez így rövidebb, tisztább, gyakran használjuk
Szöveg kiírása többször
Most legyen egy másik változónk, és írjuk ki ötször, hogy „Legyen szép napod!”
Ebben a példában a változó számolja, hogy hányszor futott le a ciklus. Amíg a számláló kisebb vagy egyenlő öttel, a program kiírja a szöveget.
Minden kör végén eggyel növeljük a számlálót.
Mire kell odafigyelni a while ciklusnál?
1. Legyen jól megadva a feltétel. A ciklus addig fut, amíg a feltétel igaz. Ha rossz feltételt írunk, a program nem úgy fog működni, ahogy szeretnénk.
2. Változzon valami a ciklusban. Ha a feltételben szereplő változó értéke nem változik, akkor könnyen végtelen ciklus lesz belőle.
Döntsön a felhasználó a ciklus ismétléséről
A while ciklus nem csak számlálásra jó. Olyan helyzetekre is használhatjuk, amikor a program addig kérdez és ismétel valamit, amíg a felhasználó azt nem mondja, hogy elég.
A folytatja változó kezdetben True, vagyis igaz. Amíg ez tart, a ciklus fut. A program minden körben megkérdezi a felhasználót, hogy igaz-e még a feltétel. Ha a válasz értéke „n”, akkor a folytatja értéke False lesz. Ekkor a while feltétele már nem igaz, tehát a ciklus leáll.
Adatbekérés while ciklussal
A while ciklus egyik legfontosabb felhasználása az ellenőrzött adatbekérés. Például kérjünk be a felhasználótól egy egész számot 0 és 5 között. Ha rossz értéket ad meg, kérjük be újra.
A 0 <= szam <= 5 azt vizsgálja, hogy a szám beleesik-e a megadott intervallumba. A not miatt a ciklus akkor fut, ha nem igaz, hogy a szám 0 és 5 között van.
Vagyis:
- ha jó számot ad meg a felhasználó, a ciklus nem fut le
- ha rossz számot ad meg, a ciklus újra bekéri az adatot.
Kilépés ENTER lenyomásával
Csinálhatunk olyat is, hogy a program szavakat kér be, és addig ismétli a bekérést, amíg a felhasználó csak egy ENTER-t nem nyom.
Az ENTER – üres szövegrész – lesz a kilépési jel.
Miért hasznos a while ciklus?
A while különösen jó választás, ha nem tudjuk előre, pontosan hányszor kell ismételni valamit. Például:
- addig kérünk be adatot, amíg jó nem lesz
- addig ismétlünk egy kérdést, amíg a felhasználó ki nem lép
- addig növelünk egy számlálót, amíg el nem ér egy határt.
Ez különbözteti meg a while ciklust attól a helyzettől, amikor előre tudjuk az ismétlések számát.
Összefoglalás
A while ciklus segítségével a Pythonban addig ismételhetünk egy utasítést, vagy utasításblokkot, amíg egy feltétel igaz. Nagyon hasznos számlálásra, adatellenőrzésre és olyan helyzetekre, amikor nem tudjuk előre, hányszor kell megismételni valamit.
A while ciklus használatánál figyelni kell arra, hogy a feltétel egyszer majd hamissá váljon, különben végtelen ciklus keletkezik.
Feladatok
1. Visszaszámlálás
Írj programot, amely 10-től 1-ig kiírja a számokat while ciklussal, majd a végén kiírja, hogy Kilövés!
Megoldás
2. Páros számok kiírása
Írj egy olyan programot, amely kiírja az első 10 páros számot while ciklussal
Megoldás
vagy
3. Összegzés addig, amíg 0 nem jön ki
Írj programot, amely számokat kér be a felhasználótól, és addig folytatja a bekérést, amíg a felhasználó 0-t nem ír be. A végén írja ki a beírt számok összegét.
Megoldás
4. Adatbekérés ellenőrzéssel
Írj programot, amely addig kér be egy egész számot, amíg a felhasználó 0 és 5 közötti számot nem ad meg. Ha rossz értéket ad meg, kérje be újra. Ha jó értéket ad meg, írja ki: Köszönöm!
Megoldás
5. Kilépés Enterrel
Írj programot, amely szavakat kér be a felhasználótól. A program addig fusson, amíg a felhasználó be nem nyom egy Entert. A ciklus végén írja ki: Vége
Megoldás
6. Számolás 3-tól 15-ig
Írj egy programot, amely kiiratja a számokat 3-tól 15-ig
Megoldás
7. Páratlan számok
Írj programot, amely kiiratja az 1 és 15 közötti páratlan számokat while ciklussal
Megoldás
8. Addig kérdezz, amíg páratlan szám nem jön
Írj programot, amely addig kér be számokat, amíg a felhasználó pozitív számot nem ad meg. Ha jó számot ír be, jelenjen meg: Rendben, ez már pozitív szám
Megoldás
9. A számok átlaga 0-ig
Írj programot, amely számokat kér be a felhasználótól. A bekérés addig tartson, amíg a felhasználó 0-t nem ír be. A végén írd ki a beírt számok összegét, hány darab számot adott meg a felhasználó és az átlagot. A 0 csak leállítja, nem számít a számolásba.
Megoldás
10. Igen vagy nem?
Írj programot, amely addig kér be választ a felhasználótól, amíg az nem írja be, hogy igen vagy nem. A mást ír be, kérdezze újra. Ha jó választ írt be, írja ki: Elfogadom
Megoldás










Trackback/Pingback