medtem ko v Pythonu. Kako deluje, primeri uporabe

Zanke so eno glavnih orodij katerega koli jezika. V Pythonu obstajata dve osnovni zanki, ena od njih je medtem. Razmislite o tem in za boljše razumevanje slike še eno. Dejansko je v primerjavi s podobnim veliko lažje razumeti katero koli gradivo, kajne?

Koncept cikla

Zanka je potrebna, ko je treba določeno dejanje izvesti večkrat. To je zelo poenostavljeno, saj je v resnici obseg uporabe ciklov veliko širši. V Pythonu obstajata dve glavni vrsti zank: for in while. Najbolj priljubljena je za.

Poleg določenih dejanj lahko zankate različne dele kode do določene točke. To je lahko določeno število krat ali dokler velja določen pogoj.

Preden začnemo razumeti vrste zank in zlasti while, moramo še vedno razumeti, kaj je iteracija. To je ena ponovitev dejanja ali zaporedja dejanj med trenutnim ciklom znotraj trenutnega izvajanja aplikacije.

Cikel za

Naša zanka For ni števec, kot v mnogih drugih jezikih. Njegova naloga je našteti določeno zaporedje vrednosti. Kaj to pomeni? Recimo, da imamo seznam elementov. Najprej zanka zavzame prvo, drugo, tretjo in tako naprej.

Prednost te zanke v Pythonu je, da vam ni treba določiti indeksa elementa, da bi vedeli, kdaj izstopiti iz zanke. Vse bo narejeno samodejno.

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

>>> za element v seznamu:

… natisni (element + 2)

...

12

42

22

32

V našem primeru smo uporabili spremenljivko element po ukazu for. Na splošno je ime lahko karkoli. Na primer, priljubljena oznaka je i. In z vsako ponovitvijo bo tej spremenljivki dodeljen določen objekt s seznama, ki smo ga poimenovali z ustrezno besedo.

V našem primeru je seznam zaporedje številk 10,40,20,30. Pri vsaki ponovitvi se v spremenljivki pojavi ustrezna vrednost. Na primer, takoj ko se zanka začne, spremenljivka element dodeljena je vrednost 10. Pri naslednji ponovitvi se desetica spremeni v številko 40, tretjič se spremeni v številko 20 in končno, pri zadnji ponovitvi zanke, se spremeni v 30.

Signal za konec cikla je konec elementov na seznamu.

Če potrebujete zanko za klasično naštevanje vrednosti, kot v drugih programskih jezikih, morate ustvariti seznam z zaporedjem naravnih števil do vrednosti, ki jo potrebujemo.

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

Ali pa uporabite funkcijo len(), za določitev dolžine seznama. Toda v tem primeru je bolje uporabiti zanko medtem, ker ni potrebe po uporabi spremenljivke.

Če morate spremeniti zaporedje vrednosti na seznamu, zanko za in tukaj pride na pomoč. Da bi to naredili, mora biti pri vsaki ponovitvi vsakemu elementu seznama dodeljena ustrezna vrednost.

Medtem ko Loop

Za razliko od cikla za, ki preprosto ponavlja vrednosti zaporedja, zanke medtem ima več uporab. Ime te vrste ciklov je prevedeno kot "še". Se pravi "dokler".

To je univerzalna zanka, ki jo najdemo v vseh programskih jezikih. In na nek način je podoben pogojnemu operaterju tisa, ki izvaja preverjanje, ali je določen pogoj izpolnjen. Samo v nasprotju s pogojnim operatorjem, medtem izvede preverjanje ob vsaki ponovitvi, ne le enkrat. In le če je pogoj napačen, se zanka konča in ukaz, ki ji sledi, se izvede. Preprosto povedano, če situacija, v kateri dela, ne velja več.

Če narišemo cikel medtem poenostavljeno se to naredi s takšno shemo.medtem ko v Pythonu. Kako deluje, primeri uporabe

Glavna veja programa (ki poteka zunaj zanke) je na tej sliki prikazana z modrimi pravokotniki. Turkizna predstavlja telo cikla. Po drugi strani pa je romb pogoj, ki se preveri pri vsaki ponovitvi.

Cycle medtem lahko povzroči dve izjemi:

  1. Če na začetku zanke logični izraz ne vrne true, potem se preprosto ne začne, saj se je končal pred izvedbo. Na splošno je ta situacija normalna, saj v določenih okoliščinah aplikacija morda ne zagotavlja prisotnosti izrazov v telesu zanke.
  2. Če je izraz vedno resničen, lahko to povzroči zanko. Se pravi do neskončnega listanja cikla. Zato mora biti v takšnih programih vedno prisoten izhodni stavek iz zanke ali programa. Vendar pa bo do te situacije prišlo, če je program uspel ugotoviti resničnost ali lažnost določenega pogoja. Če tega ni storila, se ob prekinitvi programa vrne napaka. Lahko pa odpravite napako in potem, če se pojavi, se izvede določena koda.

Obstaja lahko ogromno možnosti, kako ravnati z napako. Na primer, program lahko od uporabnika zahteva pravilen vnos podatkov. Torej, če je oseba navedla negativno število, kjer je lahko le pozitivno, ali vnesla črke, kjer bi morale biti samo številke, lahko program o tem pove.

Primeri zanke Medtem

Tukaj je primer kode, ki obravnava napako v tem primeru.

n = input("Vnesite celo število: ") 

medtem ko tip(n) != int:

    poskusite:

        n = int(n)

    razen ValueError:

        print(“Napačen vnos!”)

        n = input("Vnesite celo število: ") 

če je n % 2 == 0:

    natisni ("Even")

drugo:

    natisni (»liho«)

Upoštevajte, da Python uporablja dvopičja za razglasitev zapletenih konstrukcij kode.

V zgornji kodi smo kot pogoj definirali, da moramo preveriti, ali je število celo število. Če da, potem je vrnjeno false. Če ne, potem res.

V drugem delu kode, kjer je uporabljen operator if, smo za iskanje ostanka po operaciji deljenja uporabili operator %. Naslednji korak je preveriti, ali je število sodo. Če ne, potem je ostanek v tem primeru ena. V skladu s tem je število liho. 

Preprosto povedano, zgornja koda najprej preveri, ali je niz, ki ga vnese uporabnik, številka. Če da, se izvede drugo preverjanje, da se ugotovi, ali obstaja ostanek deljenja z dve. Toda drugi blok se ne bo izvedel, dokler vrednost, ki jo vnese uporabnik, ni številska.

To pomeni, da se bo zanka redno izvajala, dokler se ne pojavi pogoj. V tej situaciji deluje takole. 

To pomeni, da lahko greste od nasprotnega: ponavljajte določeno dejanje, dokler dogodek ne postane napačen.

Razčlenjevanje kode

Zdaj pa poglejmo podrobneje, kako ta koda deluje. Da bi to naredili, ga bomo analizirali korak za korakom.

  1. Najprej uporabnik vnese niz, ki ga sprejme spremenljivka n. 
  2. Uporaba zanke medtem tip te spremenljivke je preverjen. Pri prvem vnosu ni enako int. Zato se na podlagi testa ugotovi, da ta pogoj drži. Zato se vnese telo zanke.
  3. S pomočjo operaterja poskusite poskušamo pretvoriti niz v število. Če je to storjeno, se napaka ne pojavi. V skladu s tem ga ni treba obdelati. Zato se tolmač vrne na začetek zanke in glede na rezultate preverjanja se izkaže, da je postalo celo število. Torej pojdimo na 7. korak
  4. Če pretvorba ni bila uspešna, se prikaže ValueError. V tem primeru se tok programa pošlje obdelovalcu razen.
  5. Uporabnik vnese novo vrednost, ki je pripisana spremenljivki n.
  6. Tolmač se vrne na 2. korak in znova preveri. Če je vrednost celo število, pojdite na 7. korak. Če ni, se pretvorba znova poskusi v skladu s 3. korakom.
  7. S pomočjo operaterja if Ugotovi, ali obstaja ostanek po deljenju števila z 2. 
  8. Če ne, je vrnjeno besedilo "celo".
  9. Če ni, je vrnjeno besedilo »odd«.

Razmislite zdaj o takem primeru. Poskusite ugotoviti, kolikokrat se bo ta cikel odvijal?

skupaj = 100 

i = 0

medtem ko sem <5:

    n = int(vhod())

    skupaj = skupaj — n

    i = i + 1 

print(“Preostalo”, skupno)

Pravilen odgovor je 5. Na začetku vrednost spremenljivke i – nič. Tolmač preveri, ali je spremenljivka enaka i 4 ali manj. Če da, je vrnjena vrednost. Res, in zanka se ustrezno izvede. Vrednost se poveča za eno.

Po prvi ponovitvi postane vrednost spremenljivke 1. Izvede se preverjanje in program razume, da je to število spet manjše od 5. V skladu s tem se telo zanke izvede drugič. Ker so koraki podobni, se tudi vrednost poveča za ena in spremenljivka je zdaj enaka 2.

Tudi ta vrednost je manjša od pet. Nato se zanka izvede tretjič, dodana spremenljivki i 1 in mu je dodeljena vrednost 3. To je spet manj kot pet. In tako pride do šeste ponovitve zanke, pri kateri je vrednost spremenljivke i je enako 5 (navsezadnje je bilo prvotno nič, kolikor se spomnimo). V skladu s tem ta pogoj ne opravi preizkusa in zanka se samodejno prekine in izvede se prehod na naslednji korak, ki je zunaj nje (ali prekinitev programa, če naslednji koraki niso zagotovljeni).

Cikel se lahko zgodi tudi v nasprotni smeri. Tukaj je primer kode, kjer se z vsako naslednjo ponovitvijo ena odšteje od trenutne vrednosti spremenljivke. 

skupaj = 100 

medtem ko je skupno > 0:

    n = int(vhod())

    skupaj = skupaj — n 

natisni (“Viri so izčrpani”)

Poskusite uganiti, kaj počne ta program! Predstavljajte si to v spremenljivki Skupaj shranjene so informacije o programskem viru. Vsakič tolmač preveri, ali vir obstaja. V nasprotnem primeru se prikaže besedilo »Viri so porabljeni« in program se zapre. Z vsako ponovitvijo zanke se vir zmanjša za število, ki ga določi uporabnik.

In zdaj domača naloga. Poskusite spremeniti zgornjo kodo, tako da spremenljivka fizično ne more postati negativna. 

4 Komentarji

  1. si code ahaan usoo gudbi

Pustite Odgovori