míg a ciklus Pythonban. Hogyan működik, használati példák

A hurkok bármely nyelv egyik fő eszköze. A Pythonban két alapvető hurok található, amelyek közül az egyik a while. Fontolja meg ezt, és a kép jobb megértéséhez még egyet. Valójában valami hasonlóhoz képest sokkal könnyebb megérteni bármilyen anyagot, nem igaz?

A ciklus fogalma

A hurokra akkor van szükség, ha egy bizonyos műveletet többször kell végrehajtani. Ez nagyon leegyszerűsítő, mert a valóságban a ciklusok alkalmazási köre sokkal szélesebb. A Pythonban két fő ciklustípus létezik: for és while. A legnépszerűbb a.

A konkrét műveletek mellett egy bizonyos pontig különböző kódrészleteket is hurkolhat. Ez előfordulhat bizonyos számú alkalommal, vagy mindaddig, amíg egy adott feltétel igaz.

Mielőtt elkezdenénk megérteni a hurkok típusait, és különösen, még mindig meg kell értenünk, mi az iteráció. Ez egy művelet vagy műveletsorozat egy megismétlése az aktuális ciklusban az aktuális alkalmazásfutáson belül.

Cycle For

A For ciklusunk nem számláló, mint sok más nyelven. Feladata egy bizonyos értéksor felsorolása. Mit is jelent ez? Tegyük fel, hogy van egy elemlistánk. Először is, a hurok veszi az elsőt, a másodikat, a harmadikat és így tovább.

Ennek a ciklusnak az az előnye a Pythonban, hogy nem kell meghatároznia az elem indexét, hogy tudja, mikor kell kilépnie a ciklusból. Minden automatikusan megtörténik.

>>> spisok = [10, 40, 20, 30]

>>> a spisok elemhez:

… nyomtatás (elem + 2)

...

12

42

22

32

Példánkban a változót használtuk elem a for parancs után. Általában a név bármi lehet. Például népszerű elnevezés az i. És minden iterációnál ehhez a változóhoz egy adott objektum lesz hozzárendelve a listából, amit a megfelelő szónak neveztünk el.

Esetünkben a lista 10,40,20,30 számsor. Minden iterációnál megjelenik a megfelelő érték a változóban. Például amint a ciklus elindul, a változó elem a 10-es érték van hozzárendelve. A következő iterációban a tízből 40, harmadszor 20-ba, végül a ciklus utolsó iterációjában 30 lesz.

A ciklus végének jelzése a lista elemeinek vége.

Ha szüksége van a ciklusra az értékek klasszikus felsorolásához, mint más programozási nyelvekben, akkor hozzon létre egy listát természetes számok sorozatával a szükséges értékig.

>>> spisok = [1,2,3,4,5]

Vagy használja a funkciót len(), a lista hosszának meghatározásához. De ebben az esetben jobb hurkot használni míg, mert nincs szükség változó használatára.

Ha módosítania kell az értékek sorrendjét a listában, ismételje meg a ciklust mert és itt jön a segítség. Ehhez minden iterációnál a lista minden eleméhez megfelelő értéket kell rendelni.

Míg a hurok

A ciklustól eltérően mert, amely egyszerűen a sorozat, a hurok értékei fölött iterál míg több felhasználási területe van. Az ilyen típusú ciklusok nevét „még”-nek fordítják. Vagyis „amíg”.

Ez egy univerzális ciklus, amely minden programozási nyelvben megtalálható. És bizonyos szempontból hasonlít egy feltételes operátorra tiszafa, amely ellenőrzi, hogy egy bizonyos feltétel teljesül-e. Csak ellentétben a feltételes operátorral, míg minden iterációnál elvégzi az ellenőrzést, nem csak egyszer. És csak ha a feltétel hamis, a ciklus véget ér, és az azt követő parancs végrehajtásra kerül. Egyszerűen fogalmazva, ha a helyzet, amelyben dolgozik, már nem érvényes.

Ha ciklust rajzolunk míg leegyszerűsítve ez egy ilyen séma segítségével történik.míg a ciklus Pythonban. Hogyan működik, használati példák

A program fő ága (amely a cikluson kívül fut) ezen az ábrán kék téglalapokkal van ábrázolva. A türkiz a ciklus testét képviseli. A rombusz viszont egy feltétel, amelyet minden iterációnál ellenőriznek.

Ciklus míg két kivételt eredményezhet:

  1. Ha a ciklus elején a logikai kifejezés nem ad vissza igazat, akkor egyszerűen nem indul el, miután a végrehajtás előtt befejeződött. Általában ez a helyzet normális, mert bizonyos körülmények között előfordulhat, hogy az alkalmazás nem rendelkezik kifejezések jelenlétéről a ciklustörzsben.
  2. Ha a kifejezés mindig igaz, ez ciklushoz vezethet. Vagyis a ciklus végtelen görgetéséig. Ezért az ilyen programokban mindig legyen egy kilépési utasítás a ciklusból vagy programból. Ez a helyzet azonban akkor áll elő, ha a program képes volt meghatározni egy adott feltétel igazát vagy hamisságát. Ha ezt nem tette meg, akkor a program leállításakor hibaüzenet jelenik meg. Vagy kezelheti a hibát, és ha előfordul, akkor bizonyos kód végrehajtásra kerül.

Nagyon sok lehetőség kínálkozik a hiba kezelésére. Például a program megkérheti a felhasználót az adatok helyes megadására. Tehát, ha valaki negatív számot jelölt meg, ahol csak pozitív lehet, vagy olyan betűket írt be, ahol csak számoknak kell lenniük, a program tud róla mondani.

Míg hurokpéldák

Íme egy példa arra a kódra, amely ebben az esetben hibát kezel.

n = bemenet ("Adjon meg egy egész számot: ") 

while type(n) != int:

    próbálja ki:

        n = int(n)

    kivéve ValueError:

        print ("Rossz bejegyzés!")

        n = bemenet ("Adjon meg egy egész számot: ") 

ha n % 2 == 0:

    nyomtat ("Páros")

más:

    nyomtatás ("Páratlan")

Ne feledje, hogy a Python kettőspontokat használ az összetett kódkonstrukciók deklarálásához.

A fenti kódban feltételként határoztuk meg, hogy ellenőriznünk kell, hogy a szám egész szám-e. Ha igen, akkor hamis értéket ad vissza. Ha nem, akkor igaz.

A kód második részében, ahol az operátort használjuk if, a % operátort használtuk az osztási művelet utáni maradék megkeresésére. A következő lépés annak ellenőrzése, hogy a szám páros-e. Ha nem, akkor ebben az esetben a maradék egy. Ennek megfelelően a szám páratlan. 

Egyszerűen fogalmazva, a fenti kód először ellenőrzi, hogy a felhasználó által beírt karakterlánc szám-e. Ha igen, akkor egy második ellenőrzést kell végezni annak megállapítására, hogy van-e maradék a kettővel való osztásból. De a második blokk mindaddig nem kerül végrehajtásra, amíg a felhasználó által beírt érték numerikus.

Vagyis a ciklus rendszeresen végrehajtásra kerül, amíg a feltétel be nem következik. Ebben a helyzetben ez így működik. 

Vagyis el lehet indulni az ellenkezőjétől is: ciklus egy bizonyos műveletet addig, amíg az esemény hamis lesz.

Kódelemzés

Most nézzük meg részletesebben, hogyan működik ez a kód. Ehhez lépésről lépésre elemezzük.

  1. Először a felhasználó beír egy karakterláncot, amelyet az n változó elfogad. 
  2. Hurok segítségével míg ennek a változónak a típusa ellenőrzésre kerül. Az első bejegyzésnél nem egyenlő int. Ezért a teszt eredményeként kiderül, hogy ez a feltétel igaz. Ezért belép a huroktestbe.
  3. Operátor segítségével megpróbál egy karakterláncot próbálunk számmá alakítani. Ha ez megtörténik, akkor nem történik hiba. Ennek megfelelően nem szükséges feldolgozni. Ezért az értelmező visszatér a ciklus elejére, és az ellenőrzés eredménye alapján kiderül, hogy egész szám lett. Tehát menjünk a 7. lépésre
  4. Ha a konverzió sikertelen volt, akkor ValueError hibaüzenet jelenik meg. Ebben az esetben a programfolyamat a kivételkezelőnek kerül elküldésre.
  5. A felhasználó beír egy új értéket, amelyet az n változóhoz rendel.
  6. A tolmács visszatér a 2. lépéshez, és újra ellenőrzi. Ha ez egy egész szám, folytassa a 7. lépéssel. Ha nem, akkor a 3. lépésnek megfelelően újra megkísérli az átalakítást.
  7. Operátor segítségével if Meghatározza, hogy van-e maradék egy szám 2-vel való elosztása után. 
  8. Ha nem, akkor a „páros” szöveg kerül visszaadásra.
  9. Ha nem, akkor a „páratlan” szöveg jelenik meg.

Gondoljunk most egy ilyen példára. Próbáld meg meghatározni, hogy ez a ciklus hányszor megy keresztül?

összesen = 100 

i = 0

míg én <5:

    n = int(bemenet())

    összesen = összesen — n

    i = i + 1 

nyomtatás ("fennmaradó", összesen)

A helyes válasz: 5. Kezdetben a változó értéke i – nulla. Az értelmező ellenőrzi, hogy a változó egyenlő-e i 4 vagy kevesebb. Ha igen, akkor a rendszer visszaadja az értéket. igaz, és a ciklus ennek megfelelően kerül végrehajtásra. Az érték eggyel nő.

Az első iteráció után a változó értéke 1 lesz. Ellenőrzés történik, és a program megérti, hogy ez a szám ismét kisebb, mint 5. Ennek megfelelően a ciklustörzs másodszor is végrehajtásra kerül. Mivel a lépések hasonlóak, az értéket is eggyel növeljük, és a változó most 2-vel egyenlő.

Ez az érték is kevesebb, mint öt. Ezután a ciklus harmadik alkalommal kerül végrehajtásra, hozzáadva a változóhoz i 1, és a 3 értéket kapja. Ez ismét kevesebb, mint öt. És így jön a ciklus hatodik iterációja, amelynél a változó értéke i egyenlő 5-tel (végül is eredetileg nulla volt, amennyire emlékszünk). Ennek megfelelően ez a feltétel nem megy át a teszten, és a ciklus automatikusan befejeződik, és megtörténik az átmenet a következő, azon kívül eső lépésre (vagy programlezárásra, ha a következő lépések nincsenek megadva).

A ciklus ellenkező irányban is előfordulhat. Íme egy példa arra a kódra, ahol minden következő iterációnál egyet levonunk a változó aktuális értékéből. 

összesen = 100 

míg összesen > 0:

    n = int(bemenet())

    összesen = összesen — n 

print ("Az erőforrás kimerült")

Próbáld kitalálni, mit csinál ez a program! Képzeld el ezt egy változóban teljes a program erőforrásával kapcsolatos információk tárolásra kerülnek. Minden alkalommal, amikor a tolmács ellenőrzi, hogy az erőforrás létezik-e. Ha nem, akkor az „Erőforrás kimerült” szöveg jelenik meg, és a program bezárul. És a ciklus minden iterációjával az erőforrás a felhasználó által megadott számmal csökken.

És most a házi feladat. Próbálja megváltoztatni a fenti kódot, hogy a változó fizikailag ne válhasson negatívvá. 

4 Comments

  1. si kód ahaan usoo gudbi

Hagy egy Válaszol