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. 

Python while ciklus működése illusztráción

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:

 

Python random randint példa véletlenszám generálásához

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
visszaszamlalas = 10
while visszaszamlalas > 0:
    print(visszaszamlalas)
    visszaszamlalas -=1
print(„Kilövé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
paros_szam = 2
while paros_szam <= 20:
    print(paros_szam)
    paros_szam += 2

print(„Vége”)

vagy

paros_szam = 2
darab = 0

while darab < 10:
    print(paros_szam)
    paros_szam += 2
    darab += 1

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
szam = int(input(„Adj meg egy számot: „))
osszeg = 0

while szam != 0:
   osszeg = osszeg + szam
   szam = int(input(„Adj meg egy számot: „))

print(„A számok összege: „, osszeg)

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
szam = int(input(„Adj meg egy számot 0 és 5 között: „))

while not 0 <= szam <= 5:
    szam = int(input(„A megadott szám helytelen. Adj meg egy számot 0 és 5 között: „))

print(„Köszönöm!”)

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
szo = input(„Adj meg egy szót. Ha kész vagy, lépj ki Enterrel: „)

while szo != „”:
    szo = input(„Adj meg egy szt. Ha kész vagy, lépj ki Enterrel: „)

print(„Vége”)

6. Számolás 3-tól 15-ig

Írj egy programot, amely kiiratja a számokat 3-tól 15-ig

Megoldás
szam = 3

while szam <=15:
    print(szam)
    szam += 1
   
print(„Vége”)

7. Páratlan számok

Írj programot, amely kiiratja az 1 és 15 közötti páratlan számokat while ciklussal

Megoldás
szam = 1
while szam <= 15:
    print(szam)
    szam +=2

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
szam = int(input(„Adj meg egy pozitív számot: „))

while szam <= 0:
    szam = int(input(„Adj meg egy pozitív számot: „))

print(„Rendben, ez már pozitív szám!”)

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
szam = int(input(„Adj meg egy számot: „))
darab = 0
osszeg = 0

while szam != 0:
    darab += 1
    osszeg += szam
    szam = int(input(„Adj meg egy számot: „))

if darab > 0:
    print(„A beírt számok összege: „, osszeg)
    print(„A beírt számok száma: „, darab, „darab”)
    print(„A beírt számok átlaga:”, osszeg / darab)
else:
    print(„Nem adtál meg egyetlen számot sem.”)

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
valasz = input(„Megtanultad a leckét? (igen/nem): „)

while valasz != „igen” and valasz != „nem”:
    valasz = input(„Hibás válasz. Nem ezt kérdeztem! Megtanultad a leckét? „)

print(„Elfogadott válasz.”)
   
Vidám anime lány számítógépnél grafikát készít, Inkscape alapok tanulása

Ha szeretnél továbbhaladni a Python programozással, lépj a következő leckére: