buclă while în Python. Cum funcționează, exemple de utilizare

Buclele sunt unul dintre instrumentele principale ale oricărei limbi. Există două bucle de bază în Python, dintre care una este while. Luați în considerare și, de asemenea, pentru o mai bună înțelegere a imaginii, încă unul. Într-adevăr, în comparație cu ceva asemănător, este mult mai ușor de înțeles orice material, nu-i așa?

Conceptul de ciclu

Este necesară o buclă atunci când o anumită acțiune trebuie efectuată de mai multe ori. Acest lucru este foarte simplist, deoarece în realitate gama de aplicații pentru cicluri este mult mai largă. Există două tipuri principale de bucle în Python: for și while. Cel mai popular este pentru.

Pe lângă acțiunile specifice, puteți bucla diferite bucăți de cod până la un anumit punct. Acest lucru poate fi de un anumit număr de ori sau atâta timp cât o anumită condiție este adevărată.

Înainte de a începe să înțelegem tipurile de bucle și, în special, mai trebuie să înțelegem ce este iterația. Aceasta este o repetare a unei acțiuni sau secvențe de acțiuni în timpul ciclului curent în cadrul rulării curente a aplicației.

Ciclul Pentru

Bucla noastră For nu este un contor, ca în multe alte limbi. Sarcina sa este de a enumera o anumită secvență de valori. Ce inseamna asta? Să presupunem că avem o listă de elemente. În primul rând, bucla ia primul, al doilea, al treilea și așa mai departe.

Avantajul acestei bucle în Python este că nu trebuie să determinați indexul elementului pentru a ști când să ieșiți din buclă. Totul se va face automat.

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

>>> pentru elementul din spisok:

… print(element + 2)

...

12

42

22

32

În exemplul nostru, am folosit variabila element după comanda for. În general, numele poate fi orice. De exemplu, o denumire populară este i. Și cu fiecare iterație, acestei variabile i se va atribui un obiect specific din listă, pe care l-am numit cuvântul potrivit.

În cazul nostru, lista este o succesiune de numere 10,40,20,30. La fiecare iterație, valoarea corespunzătoare apare în variabilă. De exemplu, de îndată ce bucla începe, variabila element se atribuie valoarea 10. La următoarea iterație, zece se transformă în numărul 40, a treia oară se transformă în numărul 20 și, în final, la ultima iterație a buclei, se transformă în 30.

Semnalul pentru sfârșitul ciclului este sfârșitul elementelor din listă.

Dacă aveți nevoie de buclă pentru a efectua o enumerare clasică de valori, ca în alte limbaje de programare, ar trebui să creați o listă cu o secvență de numere naturale până la valoarea de care avem nevoie.

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

Sau folosiți funcția len(), pentru a determina lungimea listei. Dar în acest caz este mai bine să folosiți o buclă in timp ce, deoarece nu este nevoie să folosiți o variabilă.

Dacă trebuie să schimbați secvența valorilor din listă, bucla pentru și aici vine în ajutor. Pentru a face acest lucru, la fiecare iterație, fiecărui element al listei trebuie să i se atribuie o valoare adecvată.

În timp ce Loop

Spre deosebire de ciclu pentru, care iterează pur și simplu peste valorile secvenței, buclei în timp ce are mai multe utilizări. Numele acestui tip de cicluri este tradus prin „încă”. Adică „până”.

Aceasta este o buclă universală care se găsește în toate limbajele de programare. Și în anumite privințe seamănă cu un operator condiționat tisa, care efectuează o verificare pentru a vedea dacă o anumită condiție este îndeplinită. Numai în contrast cu operatorul condiționat, în timp ce efectuează verificarea la fiecare iterație, nu o singură dată. Și numai dacă condiția este falsă, bucla se termină și comanda care o urmează este executată. In cuvinte simple, daca situatia in care lucreaza nu mai este valabila.

Dacă desenăm un ciclu în timp ce simplist, acest lucru se face folosind o astfel de schemă.buclă while în Python. Cum funcționează, exemple de utilizare

Ramura principală a programului (care rulează în afara buclei) este reprezentată în această figură cu dreptunghiuri albastre. Turcoazul reprezintă corpul ciclului. La rândul său, un romb este o condiție care este verificată la fiecare iterație.

Ciclu în timp ce poate duce la două excepții:

  1. Dacă la începutul buclei expresia logică nu returnează adevărată, atunci pur și simplu nu începe, fiind finalizată înainte de execuție. În general, această situație este normală, deoarece în anumite circumstanțe, aplicația poate să nu prevadă prezența expresiilor în corpul buclei.
  2. Dacă expresia este întotdeauna adevărată, aceasta poate duce la o buclă. Adică până la defilarea nesfârșită a ciclului. Prin urmare, în astfel de programe, ar trebui să existe întotdeauna o instrucțiune de ieșire din buclă sau program. Cu toate acestea, această situație va apărea dacă programul a fost capabil să determine adevărul sau falsitatea unei anumite condiții. Dacă ea nu a reușit să facă acest lucru, atunci o eroare este returnată la terminarea programului. Sau puteți gestiona eroarea și apoi, dacă apare, un anumit cod va fi executat.

Poate exista un număr mare de opțiuni pentru a gestiona o eroare. De exemplu, programul poate cere utilizatorului să introducă datele corect. Deci, dacă o persoană a indicat un număr negativ unde poate fi doar pozitiv sau a introdus litere unde ar trebui să fie doar cifre, programul poate spune despre acesta.

Exemple de bucle While

Iată un exemplu de cod care tratează o eroare în acest caz.

n = input(„Introduceți un număr întreg: “) 

în timp ce tip(n) != int:

    Încerca:

        n = int(n)

    cu excepția ValueError:

        print(„Intrare greșită!”)

        n = input(„Introduceți un număr întreg: “) 

dacă n % 2 == 0:

    print(„Chiar”)

altceva:

    print(„Impar”)

Rețineți că Python folosește două puncte pentru a declara constructe de cod complexe.

În codul de mai sus, am definit ca o condiție pe care ar trebui să verificăm dacă numărul este un întreg. Dacă da, atunci se returnează false. Dacă nu, atunci adevărat.

În a doua parte a codului, unde este utilizat operatorul if, am folosit operatorul % pentru a găsi restul după operația de împărțire. Următorul pas este să verificați dacă numărul este par. Dacă nu, atunci restul este unul în acest caz. În consecință, numărul este impar. 

În termeni simpli, codul de mai sus verifică mai întâi dacă șirul introdus de utilizator este un număr. Dacă da, atunci se face o a doua verificare pentru a vedea dacă mai există un rest din împărțirea cu doi. Dar al doilea bloc nu va fi executat până când valoarea introdusă de utilizator nu este numerică.

Adică, bucla va fi executată în mod regulat până când apare condiția. În această situație, funcționează așa. 

Adică, puteți merge de la opus: bucla o anumită acțiune până când evenimentul devine fals.

Analiza codului

Acum să vedem mai detaliat cum funcționează acest cod. Pentru a face acest lucru, o vom analiza pas cu pas.

  1. În primul rând, utilizatorul introduce un șir, care este acceptat de variabila n. 
  2. Folosind o buclă în timp ce se verifică tipul acestei variabile. La prima intrare, nu este egal int. Prin urmare, în urma testului, se constată că această condiție este adevărată. Prin urmare, corpul buclei este introdus.
  3. Cu ajutorul unui operator încerca încercăm să convertim un șir într-un număr. Dacă se face acest lucru, atunci nu apare nicio eroare. Prin urmare, nu este nevoie să-l procesați. Prin urmare, interpretul revine la începutul buclei și, conform rezultatelor verificării, se dovedește că a devenit un număr întreg. Deci, să trecem la pasul 7
  4. Dacă conversia nu a reușit, se afișează o valoare ValueError. În acest caz, fluxul de program este trimis către handler-ul except.
  5. Utilizatorul introduce o nouă valoare, care este atribuită variabilei n.
  6. Interpretul revine la pasul 2 și verifică din nou. Dacă este o valoare întreagă, treceți la pasul 7. Dacă nu, conversia este încercată din nou conform pasului 3.
  7. Cu ajutorul unui operator if Stabilește dacă există un rest după împărțirea unui număr la 2. 
  8. Dacă nu, textul „chiar” este returnat.
  9. Dacă nu, textul „impar” este returnat.

Luați în considerare acum un astfel de exemplu. Încercați să determinați de câte ori va trece acest ciclu?

total = 100 

i = 0

în timp ce i < 5:

    n = int(input())

    total = total — n

    i = i + 1 

print(„Rămas”, total)

Răspunsul corect este 5. Inițial, valoarea variabilei i – zero. Interpretul verifică dacă variabila este egală i 4 sau mai puțin. Dacă da, atunci valoarea este returnată. adevărat, iar bucla este executată în consecință. Valoarea este mărită cu unu.

După prima iterație, valoarea variabilei devine 1. Se efectuează o verificare, iar programul înțelege că acest număr este din nou mai mic decât 5. În consecință, corpul buclei este executat pentru a doua oară. Deoarece pașii sunt similari, valoarea este de asemenea crescută cu unu, iar variabila este acum egală cu 2.

Această valoare este, de asemenea, mai mică de cinci. Apoi bucla este executată a treia oară, adăugată la variabilă i 1 și i se atribuie valoarea 3. Aceasta este din nou mai mică de cinci. Și așa se ajunge la a șasea iterație a buclei, la care valoarea variabilei i este egal cu 5 (la urma urmei, a fost inițial zero, din câte ne amintim). În consecință, această condiție nu trece testul, iar bucla se termină automat și se efectuează tranziția la următorul pas, care este în afara acesteia (sau terminarea programului, dacă nu sunt furnizați următorii pași).

Ciclul poate avea loc și în sens invers. Iată un exemplu de cod în care, cu fiecare iterație ulterioară, unul este scăzut din valoarea curentă a variabilei. 

total = 100 

în timp ce total > 0:

    n = int(input())

    total = total — n 

print(„Resursa epuizată”)

Încercați să ghiciți ce face acest program! Imaginați-vă că într-o variabilă total sunt stocate informații despre resursa programului. De fiecare dată interpretul verifică dacă resursa există. Dacă nu, atunci este afișat textul „Resurse epuizate” și programul se închide. Și cu fiecare iterație a buclei, resursa scade cu numărul specificat de utilizator.

Și acum temele. Încercați să schimbați codul de mai sus, astfel încât variabila să nu devină fizic negativă. 

4 Comentarii

  1. si code ahaan usoo gudbi

Lasă un comentariu