while petlja u Pythonu. Kako radi, primjeri korištenja

Petlje su jedan od glavnih alata svakog jezika. U Pythonu postoje dvije osnovne petlje, od kojih je jedna while. Razmotrite to, a za bolje razumijevanje slike, još jedan. Zaista, u poređenju sa nečim sličnim, mnogo je lakše razumjeti bilo koji materijal, zar ne?

Koncept ciklusa

Petlja je potrebna kada se određena radnja mora izvesti više puta. Ovo je vrlo pojednostavljeno, jer je u stvarnosti raspon primjena ciklusa mnogo širi. Postoje dvije glavne vrste petlji u Pythonu: for i while. Najpopularniji je za.

Pored specifičnih radnji, možete petljati različite dijelove koda do određene točke. To može biti određeni broj puta ili sve dok je određeni uvjet istinit.

Pre nego što počnemo da razumemo tipove petlji i dok, posebno, još uvek moramo da razumemo šta je iteracija. Ovo je jedno ponavljanje radnje ili niza radnji tokom trenutnog ciklusa unutar trenutnog pokretanja aplikacije.

Cycle For

Naša For petlja nije brojač, kao u mnogim drugim jezicima. Njegov zadatak je da nabroji određeni niz vrijednosti. Šta to znači? Recimo da imamo listu elemenata. Prvo, petlja uzima prvu, drugu, treću i tako dalje.

Prednost ove petlje u Pythonu je u tome što ne morate odrediti indeks elementa da biste znali kada da izađete iz petlje. Sve će biti urađeno automatski.

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

>>> za element u spisoku:

… print(element + 2)

...

12

42

22

32

U našem primjeru koristili smo varijablu element nakon komande for. Općenito, ime može biti bilo koje. Na primjer, popularna oznaka je i. I sa svakom iteracijom, ovoj varijabli će biti dodijeljen određeni objekt sa liste, koji smo nazvali odgovarajućom riječju.

U našem slučaju, lista je niz brojeva 10,40,20,30. Na svakoj iteraciji, odgovarajuća vrijednost se pojavljuje u varijabli. Na primjer, čim započne petlja, varijabla element dodjeljuje se vrijednost 10. U sljedećoj iteraciji, desetica se pretvara u broj 40, treći put se pretvara u broj 20, i konačno, na posljednjoj iteraciji petlje, pretvara se u 30.

Signal za kraj ciklusa je kraj elemenata u listi.

Ako vam je potrebna petlja za izvođenje klasičnog nabrajanja vrijednosti, kao u drugim programskim jezicima, trebali biste kreirati listu sa nizom prirodnih brojeva do vrijednosti koja nam je potrebna.

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

Ili koristite funkciju len(), da odredite dužinu liste. Ali u ovom slučaju je bolje koristiti petlju dok, jer nema potrebe za korištenjem varijable.

Ako trebate promijeniti redoslijed vrijednosti na listi, ponovite petlju za i tu dolazi u pomoć. Da biste to učinili, pri svakoj iteraciji, svakom elementu liste mora biti dodijeljena odgovarajuća vrijednost.

Dok petlja

Za razliku od ciklusa za, koji jednostavno iterira preko vrijednosti niza, petlje dok ima više namjena. Naziv ove vrste ciklusa preveden je kao „još“. Odnosno, “do”.

Ovo je univerzalna petlja koja se nalazi u svim programskim jezicima. I na neki način liči na uslovni operator tisa, koji vrši provjeru da li je ispunjen određeni uvjet. Samo za razliku od uslovnog operatora, dok vrši provjeru na svakoj iteraciji, a ne samo jednom. I samo ako je uslov netačan, petlja se završava i naredba koja je slijedi se izvršava. Jednostavnim riječima, ako situacija u kojoj radi više ne vrijedi.

Ako nacrtamo ciklus dok pojednostavljeno, to se radi pomoću takve šeme.while petlja u Pythonu. Kako radi, primjeri korištenja

Glavna grana programa (koja se pokreće izvan petlje) je prikazana na ovoj slici sa plavim pravokutnicima. Tirkizna boja predstavlja tijelo ciklusa. Zauzvrat, romb je uslov koji se provjerava na svakoj iteraciji.

ciklus dok može rezultirati sa dva izuzetka:

  1. Ako na početku petlje logički izraz ne vrati true, onda jednostavno ne počinje, nakon što je završen prije izvršenja. Općenito, ova situacija je normalna, jer pod određenim okolnostima aplikacija možda neće osigurati prisustvo izraza u tijelu petlje.
  2. Ako je izraz uvijek istinit, to može dovesti do petlje. Odnosno, do beskonačnog pomeranja ciklusa. Stoga u takvim programima uvijek treba postojati izlazna izjava iz petlje ili programa. Međutim, ova situacija će se pojaviti ako je program bio u stanju da utvrdi istinitost ili netačnost određenog stanja. Ako to nije uspjela, onda se vraća greška sa prekidom programa. Ili možete riješiti grešku, a zatim, ako se dogodi, određeni kod će biti izvršen.

Može postojati ogroman broj opcija za rješavanje greške. Na primjer, program može tražiti od korisnika da ispravno unese podatke. Dakle, ako je osoba naznačila negativan broj gdje može biti samo pozitivan, ili unela slova gdje bi trebali biti samo brojevi, program može reći o tome.

Dok petlje Primjeri

Evo primjera koda koji obrađuje grešku u ovom slučaju.

n = input(“Unesite cijeli broj: “) 

dok tip(n) != int:

    Pokušajte:

        n = int(n)

    osim ValueError:

        print(“Pogrešan unos!”)

        n = input(“Unesite cijeli broj: “) 

ako je n % 2 == 0:

    print(“Čak”)

drugo:

    print(“Neparan”)

Imajte na umu da Python koristi dvotočke za deklariranje složenih konstrukcija koda.

U gornjem kodu smo definirali kao uvjet da treba provjeriti da li je broj cijeli broj. Ako da, onda se vraća false. Ako ne, onda je istina.

U drugom dijelu koda, gdje se koristi operator if, koristili smo % operator da pronađemo ostatak nakon operacije dijeljenja. Sljedeći korak je provjeriti je li broj paran. Ako nije, onda je ostatak u ovom slučaju jedan. Shodno tome, broj je neparan. 

Jednostavno rečeno, gornji kod prvo provjerava da li je niz koji je unio korisnik broj. Ako da, onda se vrši druga provjera da se vidi da li postoji ostatak dijeljenja sa dva. Ali drugi blok se neće izvršiti sve dok vrijednost koju unese korisnik nije numerička.

To jest, petlja će se redovno izvršavati sve dok se uvjet ne dogodi. U ovoj situaciji to funkcionira ovako. 

Odnosno, možete ići od suprotnog: petljajte određenu radnju dok događaj ne postane lažan.

Parsing koda

Pogledajmo detaljnije kako ovaj kod radi. Da bismo to učinili, analizirat ćemo ga korak po korak.

  1. Prvo, korisnik unosi string, koji je prihvaćen od strane varijable n. 
  2. Korištenje petlje dok tip ove varijable se provjerava. Na prvom unosu nije jednako Int. Stoga, kao rezultat testa, utvrđeno je da je ovaj uslov tačan. Stoga se unosi tijelo petlje.
  3. Uz pomoć operatera pokušati pokušavamo pretvoriti niz u broj. Ako je to učinjeno, onda neće doći do greške. Shodno tome, nema potrebe da se obrađuje. Stoga se interpretator vraća na početak petlje, a prema rezultatima provjere ispada da je postao cijeli broj. Dakle, idemo na korak 7
  4. Ako je konverzija bila neuspješna, onda se izbacuje ValueError. U ovom slučaju, tok programa se šalje rukovaocu osim.
  5. Korisnik unosi novu vrijednost, koja se dodjeljuje varijabli n.
  6. Tumač se vraća na korak 2 i ponovo provjerava. Ako je to cjelobrojna vrijednost, idite na korak 7. Ako nije, ponovo se pokušava konverzija prema koraku 3.
  7. Uz pomoć operatera if Određuje postoji li ostatak nakon dijeljenja broja sa 2. 
  8. Ako nije, vraća se tekst "parno".
  9. Ako nije, vraća se tekst “odd”.

Razmotrite sada jedan takav primjer. Pokušajte odrediti koliko puta će ovaj ciklus proći?

ukupno = 100 

i = 0

dok sam < 5:

    n = int(input())

    ukupno = ukupno — n

    i = i + 1 

print(“Preostalo”, ukupno)

Tačan odgovor je 5. U početku, vrijednost varijable i – nula. Interpretator provjerava da li je varijabla jednaka i 4 ili manje. Ako je odgovor da, vrijednost se vraća. istinski, i petlja se izvršava u skladu s tim. Vrijednost se povećava za jedan.

Nakon prve iteracije, vrijednost varijable postaje 1. Izvršava se provjera i program razumije da je ovaj broj opet manji od 5. Shodno tome, tijelo petlje se izvršava po drugi put. Pošto su koraci slični, vrijednost se također povećava za jedan, a varijabla je sada jednaka 2.

Ova vrijednost je također manja od pet. Zatim se petlja izvršava treći put, dodaje se promenljivoj i 1 i dodjeljuje mu se vrijednost 3. Ovo je opet manje od pet. I tako dolazi do šeste iteracije petlje, na kojoj se vrijednost varijable i jednako 5 (na kraju krajeva, prvobitno je bila nula, koliko se sjećamo). U skladu s tim, ovaj uvjet ne prolazi test, a petlja se automatski prekida i vrši se prijelaz na sljedeći korak koji je izvan njega (ili završetak programa, ako sljedeći koraci nisu predviđeni).

Ciklus se može odvijati i u suprotnom smjeru. Evo primjera koda gdje se, sa svakom sljedećom iteracijom, jedan oduzima od trenutne vrijednosti varijable. 

ukupno = 100 

dok je ukupno > 0:

    n = int(input())

    ukupno = ukupno — n 

print(“Resource su iscrpljeni”)

Pokušajte da pogodite šta ovaj program radi! Zamislite to u varijabli Ukupno informacije o programskom resursu se pohranjuju. Svaki put tumač provjerava da li resurs postoji. Ako nije, onda se prikazuje tekst “Resource exhausted” i program se zatvara. I sa svakom iteracijom petlje, resurs se smanjuje za broj koji korisnik odredi.

A sada domaći. Pokušajte promijeniti gornji kod tako da varijabla ne može fizički postati negativna. 

3 Komentari

  1. si code ahaan usoo gudbi

Ostavite odgovor