while cyklus v Pythone. Ako to funguje, príklady použitia

Slučky sú jedným z hlavných nástrojov akéhokoľvek jazyka. V Pythone sú dve základné slučky, z ktorých jedna je while. Zvážte to a tiež pre lepšie pochopenie obrázku ešte jeden. Naozaj, v porovnaní s niečím podobným je oveľa jednoduchšie pochopiť akýkoľvek materiál, však?

Koncept cyklu

Slučka je potrebná, keď je potrebné vykonať určitú akciu viackrát. Je to veľmi zjednodušené, pretože v skutočnosti je rozsah aplikácií pre cykly oveľa širší. V Pythone existujú dva hlavné typy slučiek: for a while. Najpopulárnejší je pre.

Okrem špecifických akcií môžete do určitého bodu zacykliť rôzne časti kódu. Môže to byť určitý počet krát, alebo pokiaľ platí určitá podmienka.

Predtým, ako začneme chápať typy slučiek a najmä, musíme ešte pochopiť, čo je iterácia. Toto je jedno opakovanie akcie alebo sekvencie akcií počas aktuálneho cyklu v rámci aktuálneho spustenia aplikácie.

Cyklus Pre

Naša slučka For nie je počítadlom, ako v mnohých iných jazykoch. Jeho úlohou je vymenovať určitú postupnosť hodnôt. Čo to znamená? Povedzme, že máme zoznam prvkov. Po prvé, slučka trvá prvý, druhý, tretí atď.

Výhodou tejto slučky v Pythone je, že nemusíte určovať index prvku, aby ste vedeli, kedy opustiť slučku. Všetko sa vykoná automaticky.

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

>>> pre prvok v spisok:

… vytlačiť (prvok + 2)

...

12

42

22

32

V našom príklade sme použili premennú element po príkaze for. Vo všeobecnosti môže byť názov akýkoľvek. Napríklad populárne označenie je i. A pri každej iterácii bude tejto premennej priradený konkrétny objekt zo zoznamu, ktorý sme nazvali príslušným slovom.

V našom prípade je zoznam postupnosťou čísel 10,40,20,30. Pri každej iterácii sa v premennej objaví zodpovedajúca hodnota. Napríklad, akonáhle sa cyklus spustí, premenná element je priradená hodnota 10. Pri ďalšej iterácii sa desať zmení na číslo 40, tretíkrát sa zmení na číslo 20 a nakoniec sa pri poslednej iterácii cyklu zmení na 30.

Signál pre koniec cyklu je koniec prvkov v zozname.

Ak potrebujete, aby cyklus vykonal klasické vyčíslenie hodnôt, ako v iných programovacích jazykoch, mali by ste vytvoriť zoznam s postupnosťou prirodzených čísel až do hodnoty, ktorú potrebujeme.

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

Alebo použite funkciu len(), na určenie dĺžky zoznamu. Ale v tomto prípade je lepšie použiť slučku zatiaľ čo, pretože nie je potrebné použiť premennú.

Ak potrebujete zmeniť postupnosť hodnôt v zozname, slučka pre a tu prichádza na záchranu. Na tento účel musí byť pri každej iterácii každému prvku zoznamu priradená príslušná hodnota.

Zatiaľ čo Loop

Na rozdiel od cyklu pre, ktorý jednoducho iteruje cez hodnoty sekvencie, slučky zatiaľ čo má viac využití. Názov tohto typu cyklov sa prekladá ako „zatiaľ“. Teda „až“.

Toto je univerzálna slučka, ktorá sa nachádza vo všetkých programovacích jazykoch. A v niektorých ohľadoch pripomína podmienený operátor tis, ktorý vykoná kontrolu, či je splnená určitá podmienka. Iba na rozdiel od podmieneného operátora, zatiaľ čo vykoná kontrolu pri každej iterácii, nie iba raz. A iba ak je podmienka nepravdivá, cyklus sa skončí a vykoná sa príkaz, ktorý nasleduje. Jednoducho povedané, ak už neplatí situácia, v ktorej pracuje.

Ak nakreslíme cyklus zatiaľ čo zjednodušene sa to robí pomocou takejto schémy.while cyklus v Pythone. Ako to funguje, príklady použitia

Hlavná vetva programu (ktorá beží mimo slučky) je na tomto obrázku znázornená modrými obdĺžnikmi. Tyrkysová predstavuje telo cyklu. Na druhej strane, kosoštvorec je stav, ktorý sa kontroluje pri každej iterácii.

Cyklus zatiaľ čo môže viesť k dvom výnimkám:

  1. Ak na začiatku cyklu logický výraz nevráti hodnotu true, potom sa jednoducho nezačne po dokončení pred vykonaním. Vo všeobecnosti je táto situácia normálna, pretože za určitých okolností aplikácia nemusí zabezpečiť prítomnosť výrazov v tele slučky.
  2. Ak je výraz vždy pravdivý, môže to viesť k slučke. Teda do nekonečného rolovania cyklu. Preto by v takýchto programoch mal vždy existovať príkaz ukončenia cyklu alebo programu. Táto situácia však nastane, ak program dokázal určiť pravdivosť alebo nepravdivosť konkrétnej podmienky. Ak to neurobí, vráti sa chyba s ukončením programu. Alebo môžete chybu vyriešiť a ak sa vyskytne, vykoná sa určitý kód.

Možností, ako chybu riešiť, môže byť obrovské množstvo. Program môže napríklad požiadať používateľa, aby zadal údaje správne. Takže, ak osoba uviedla záporné číslo, kde môže byť iba kladné, alebo zadala písmená, kde by mali byť iba čísla, program o tom môže povedať.

Príklady slučky

Tu je príklad kódu, ktorý v tomto prípade rieši chybu.

n = input(“Zadajte celé číslo:”) 

while type(n) != int:

    vyskúšajte nasledujúci postup:

        n = int (n)

    okrem ValueError:

        vytlačiť („Chybné zadanie!“)

        n = input(“Zadajte celé číslo:”) 

ak n % 2 == 0:

    vytlačiť („párne“)

inak:

    vytlačiť („Nepárne“)

Majte na pamäti, že Python používa dvojbodky na deklarovanie zložitých konštrukcií kódu.

Vo vyššie uvedenom kóde sme definovali ako podmienku, že by sme mali skontrolovať, či je číslo celé číslo. Ak áno, vráti sa false. Ak nie, tak pravda.

V druhej časti kódu, kde sa používa operátor if, použili sme operátor % na nájdenie zvyšku po operácii delenia. Ďalším krokom je skontrolovať, či je číslo párne. Ak nie, zvyšok je v tomto prípade jedna. Podľa toho je číslo nepárne. 

Zjednodušene povedané, vyššie uvedený kód najskôr skontroluje, či reťazec zadaný používateľom je číslo. Ak áno, vykoná sa druhá kontrola, aby sa zistilo, či existuje zvyšok delenia dvoma. Ale druhý blok sa nevykoná, kým hodnota zadaná používateľom nebude číselná.

To znamená, že cyklus sa bude pravidelne vykonávať, kým nenastane podmienka. V tejto situácii to funguje takto. 

To znamená, že môžete ísť z opaku: opakovať určitú akciu, kým sa udalosť nestane falošnou.

Analýza kódu

Teraz sa pozrime podrobnejšie, ako tento kód funguje. Aby sme to dosiahli, analyzujeme ho krok za krokom.

  1. Najprv používateľ zadá reťazec, ktorý je akceptovaný premennou n. 
  2. Pomocou slučky zatiaľ čo kontroluje sa typ tejto premennej. Pri prvom vstupe to nie je rovnaké int. Preto sa ako výsledok testu zistilo, že táto podmienka je pravdivá. Preto sa zadá telo slučky.
  3. S pomocou operátora skúsiť snažíme sa previesť reťazec na číslo. Ak sa tak stane, nedôjde k žiadnej chybe. Preto nie je potrebné ho spracovávať. Preto sa tlmočník vráti na začiatok cyklu a podľa výsledkov kontroly sa ukáže, že sa stal celým číslom. Poďme teda na krok 7
  4. Ak bola konverzia neúspešná, zobrazí sa chyba ValueError. V tomto prípade sa tok programu odošle obslužnému programu okrem.
  5. Užívateľ zadá novú hodnotu, ktorá je priradená premennej n.
  6. Tlmočník sa vráti na krok 2 a znova skontroluje. Ak je to celočíselná hodnota, prejdite na krok 7. Ak nie, konverzia sa uskutoční znova podľa kroku 3.
  7. S pomocou operátora if Určuje, či po delení čísla 2 existuje zvyšok. 
  8. Ak nie, vráti sa text „párne“.
  9. Ak nie, vráti sa text „nepárne“.

Zvážte teraz takýto príklad. Skúste určiť, koľkokrát tento cyklus prejde?

spolu = 100 

i = 0

kým ja < 5:

    n = int(vstup())

    celkom = celkom — n

    i = i + 1 

vytlačiť („Zostávajúce“, celkom)

Správna odpoveď je 5. Na začiatku je to hodnota premennej i – nula. Tlmočník skontroluje, či sa premenná rovná i 4 alebo menej. Ak áno, hodnota sa vráti. pravdivýa slučka sa vykoná podľa toho. Hodnota sa zvýši o jednu.

Po prvej iterácii sa hodnota premennej stane 1. Vykoná sa kontrola a program pochopí, že toto číslo je opäť menšie ako 5. Podľa toho sa telo cyklu vykoná druhýkrát. Keďže kroky sú podobné, hodnota sa tiež zvýši o jednu a premenná sa teraz rovná 2.

Táto hodnota je tiež menšia ako päť. Potom sa cyklus vykoná tretíkrát a pridá sa k premennej i 1 a je mu priradená hodnota 3. To je opäť menej ako päť. A tak prichádza k šiestej iterácii cyklu, pri ktorej je hodnota premennej i rovná sa 5 (pokiaľ si pamätáme, pôvodne bola nula). V súlade s tým táto podmienka neprejde testom a slučka sa automaticky ukončí a vykoná sa prechod na ďalší krok, ktorý je mimo nej (alebo ukončenie programu, ak nie sú poskytnuté nasledujúce kroky).

Cyklus môže prebiehať aj v opačnom smere. Tu je príklad kódu, kde sa pri každej nasledujúcej iterácii jedna odpočítava od aktuálnej hodnoty premennej. 

spolu = 100 

zatiaľ čo súčet > 0:

    n = int(vstup())

    celkom = celkom — n 

vytlačiť („Vyčerpaný zdroj“)

Skúste uhádnuť, čo tento program robí! Predstavte si to v premennej celkový sú uložené informácie o zdroji programu. Zakaždým, keď tlmočník skontroluje, či zdroj existuje. Ak nie, zobrazí sa text „Vyčerpaný zdroj“ a program sa zatvorí. A s každou iteráciou cyklu sa zdroj znižuje o číslo, ktoré zadá používateľ.

A teraz domáca úloha. Skúste zmeniť vyššie uvedený kód tak, aby sa premenná nemohla fyzicky stať zápornou. 

4 Komentáre

  1. si kód ahaan usoo gudbi

  2. Ahoj

  3. lol

Nechaj odpoveď