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.
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:
- 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.
- 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.
- Először a felhasználó beír egy karakterláncot, amelyet az n változó elfogad.
- 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.
- 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
- 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.
- A felhasználó beír egy új értéket, amelyet az n változóhoz rendel.
- 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.
- Operátor segítségével if Meghatározza, hogy van-e maradék egy szám 2-vel való elosztása után.
- Ha nem, akkor a „páros” szöveg kerül visszaadásra.
- 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á.
si kód ahaan usoo gudbi
иси
Helló
lol