ndërsa loop në Python. Si funksionon, shembuj të përdorimit

Sythet janë një nga mjetet kryesore të çdo gjuhe. Ekzistojnë dy sythe bazë në Python, njëra prej të cilave është while. Konsideroni atë, dhe gjithashtu për një kuptim më të mirë të figurës, një më shumë. Në të vërtetë, në krahasim me diçka të ngjashme, është shumë më e lehtë të kuptosh çdo material, apo jo?

Koncepti i një cikli

Një lak është i nevojshëm kur një veprim i caktuar duhet të kryhet disa herë. Kjo është shumë e thjeshtë, sepse në realitet gama e aplikimeve për cikle është shumë më e gjerë. Ekzistojnë dy lloje kryesore të sytheve në Python: for dhe while. Më e njohura është për.

Përveç veprimeve specifike, ju mund të futni pjesë të ndryshme të kodit deri në një pikë të caktuar. Kjo mund të jetë një numër i caktuar herë, ose për sa kohë që një kusht i caktuar është i vërtetë.

Para se të fillojmë të kuptojmë llojet e sytheve dhe ndërkohë që, në veçanti, ende duhet të kuptojmë se çfarë është përsëritja. Kjo është një përsëritje e një veprimi ose sekuence veprimesh gjatë ciklit aktual brenda ekzekutimit aktual të aplikacionit.

Cikli Për

Laku ynë For nuk është një numërues, si në shumë gjuhë të tjera. Detyra e tij është të numërojë një sekuencë të caktuar vlerash. Çfarë do të thotë kjo? Le të themi se kemi një listë elementësh. Së pari, lak merr të parën, të dytën, të tretën, e kështu me radhë.

Avantazhi i këtij cikli në Python është se nuk keni nevojë të përcaktoni indeksin e elementit për të ditur se kur duhet të dilni nga cikli. Gjithçka do të bëhet automatikisht.

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

>>> për elementin në spisok:

… printim (element + 2)

...

12

42

22

32

Në shembullin tonë, ne kemi përdorur variablin element pas komandës për. Në përgjithësi, emri mund të jetë çdo gjë. Për shembull, një emërtim popullor është i. Dhe me çdo përsëritje, kësaj ndryshore do t'i caktohet një objekt specifik nga lista, të cilin e quajtëm fjala e duhur.

Në rastin tonë, lista është një sekuencë e numrave 10,40,20,30. Në çdo përsëritje, vlera përkatëse shfaqet në ndryshore. Për shembull, sapo fillon cikli, ndryshorja element caktohet vlera 10. Në përsëritjen tjetër, dhjetëshja kthehet në numrin 40, herën e tretë kthehet në numrin 20 dhe në fund, në përsëritjen e fundit të ciklit, kthehet në 30.

Sinjali për fundin e ciklit është fundi i elementeve në listë.

Nëse ju nevojitet cikli për të kryer një numërim klasik të vlerave, si në gjuhët e tjera të programimit, duhet të krijoni një listë me një sekuencë numrash natyrorë deri në vlerën që na nevojitet.

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

Ose përdorni funksionin len (), për të përcaktuar gjatësinë e listës. Por në këtë rast është më mirë të përdorni një lak derisa, sepse nuk ka nevojë të përdoret një ndryshore.

Nëse keni nevojë të ndryshoni sekuencën e vlerave në listë, lakoni për dhe këtu vjen në shpëtim. Për ta bërë këtë, në çdo përsëritje, çdo elementi të listës duhet t'i caktohet një vlerë e përshtatshme.

Ndërsa Loop

Ndryshe nga cikli për, i cili thjesht përsëritet mbi vlerat e sekuencës, lakut ndërsa ka më shumë përdorime. Emri i këtij lloji të cikleve përkthehet si "ende". Kjo është, "deri".

Ky është një lak universal që gjendet në të gjitha gjuhët e programimit. Dhe në një farë mënyre i ngjan një operatori të kushtëzuar yew, e cila kryen një kontroll për të parë nëse plotësohet një kusht i caktuar. Vetëm në kontrast me operatorin e kushtëzuar, ndërsa kryen kontrollin në çdo përsëritje, jo vetëm një herë. Dhe vetëm nëse kushti është false, cikli përfundon dhe komanda që pason ekzekutohet. Me fjalë të thjeshta, nëse situata në të cilën ai punon nuk vlen më.

Nëse vizatojmë një cikël ndërsa në mënyrë të thjeshtë, kjo bëhet duke përdorur një skemë të tillë.ndërsa loop në Python. Si funksionon, shembuj të përdorimit

Dega kryesore e programit (e cila shkon jashtë ciklit) është paraqitur në këtë figurë me drejtkëndësha blu. Bruz përfaqëson trupin e ciklit. Nga ana tjetër, një romb është një kusht që kontrollohet në çdo përsëritje.

Cikël ndërsa mund të rezultojë në dy përjashtime:

  1. Nëse në fillim të ciklit shprehja logjike nuk kthehet e vërtetë, atëherë ajo thjesht nuk fillon, pasi të ketë përfunduar përpara ekzekutimit. Në përgjithësi, kjo situatë është normale, sepse në rrethana të caktuara, aplikacioni mund të mos parashikojë praninë e shprehjeve në trupin e lakut.
  2. Nëse shprehja është gjithmonë e vërtetë, kjo mund të çojë në një lak. Kjo do të thotë, në lëvizjen e pafund të ciklit. Prandaj, në programe të tilla, duhet të ketë gjithmonë një deklaratë daljeje nga cikli ose programi. Megjithatë, kjo situatë do të lindë nëse programi ishte në gjendje të përcaktonte vërtetësinë ose falsitetin e një gjendjeje të caktuar. Nëse ajo nuk arriti ta bëjë këtë, atëherë një gabim kthehet me përfundimin e programit. Ose mund ta trajtoni gabimin dhe më pas, nëse ndodh, kodi i caktuar do të ekzekutohet.

Mund të ketë një numër të madh opsionesh për mënyrën e trajtimit të një gabimi. Për shembull, programi mund t'i kërkojë përdoruesit të fusë saktë të dhënat. Pra, nëse një person ka treguar një numër negativ ku mund të jetë vetëm pozitiv, ose ka futur shkronja ku duhet të jenë vetëm numrat, programi mund të tregojë për të.

Ndërsa Shembujt e ciklit

Këtu është një shembull i kodit që trajton një gabim në këtë rast.

n = hyrje ("Fut një numër të plotë: ") 

ndërsa tip(n) != int:

    Provoni:

        n = int(n)

    përveç ValueError:

        print ("Hyrje e gabuar!")

        n = hyrje ("Fut një numër të plotë: ") 

nëse n % 2 == 0:

    print ("Edhe")

tjeter:

    print ("Tek")

Mbani në mend se Python përdor dy pika për të deklaruar konstruksione komplekse të kodit.

Në kodin e mësipërm, ne përcaktuam si kusht që duhet të kontrollojmë nëse numri është një numër i plotë. Nëse po, atëherë false kthehet. Nëse jo, atëherë e vërtetë.

Në pjesën e dytë të kodit, ku përdoret operatori if, kemi përdorur operatorin % për të gjetur pjesën e mbetur pas operacionit të ndarjes. Hapi tjetër është të kontrolloni nëse numri është çift. Nëse jo, atëherë pjesa e mbetur është një në këtë rast. Prandaj, numri është tek. 

Me fjalë të thjeshta, kodi i mësipërm fillimisht kontrollon nëse vargu i futur nga përdoruesi është një numër. Nëse po, atëherë bëhet një kontroll i dytë për të parë nëse ka mbetur nga pjesëtimi me dy. Por blloku i dytë nuk do të ekzekutohet derisa vlera e futur nga përdoruesi të jetë numerike.

Kjo do të thotë, cikli do të ekzekutohet rregullisht derisa të ndodhë gjendja. Në këtë situatë, funksionon kështu. 

Kjo do të thotë, ju mund të shkoni nga e kundërta: lakoni një veprim të caktuar derisa ngjarja të bëhet e rreme.

Parimi i kodit

Tani le të shohim më në detaje se si funksionon ky kod. Për ta bërë këtë, ne do ta analizojmë atë hap pas hapi.

  1. Së pari, përdoruesi fut një varg, i cili pranohet nga ndryshorja n. 
  2. Duke përdorur një lak ndërsa kontrollohet lloji i kësaj variabli. Në hyrjen e parë, nuk është e barabartë int. Prandaj, si rezultat i testit, konstatohet se kjo gjendje është e vërtetë. Prandaj, trupi i lakut futet.
  3. Me ndihmën e një operatori përpjekje ne po përpiqemi të konvertojmë një varg në një numër. Nëse kjo është bërë, atëherë nuk ndodh asnjë gabim. Prandaj, nuk ka nevojë për ta përpunuar atë. Prandaj, përkthyesi kthehet në fillim të ciklit, dhe sipas rezultateve të kontrollit, rezulton se ai është bërë një numër i plotë. Pra, le të shkojmë në hapin 7
  4. Nëse konvertimi ishte i pasuksesshëm, atëherë hidhet një ValueError. Në këtë rast, rrjedha e programit dërgohet te mbajtësi i përjashtimit.
  5. Përdoruesi fut një vlerë të re, e cila i caktohet ndryshores n.
  6. Përkthyesi kthehet në hapin 2 dhe kontrollon përsëri. Nëse është një vlerë e plotë, shkoni në hapin 7. Nëse jo, konvertimi tentohet përsëri sipas hapit 3.
  7. Me ndihmën e një operatori if Përcakton nëse ka mbetje pas pjesëtimit të një numri me 2. 
  8. Nëse jo, teksti "madje" kthehet.
  9. Nëse jo, teksti "i çuditshëm" kthehet.

Konsideroni tani një shembull të tillë. Mundohuni të përcaktoni se sa herë do të kalojë ky cikël?

total = 100 

i = 0

ndërsa unë < 5:

    n = int(hyrje())

    total = total — n

    i = i + 1 

print ("E mbetur", total)

Përgjigja e saktë është 5. Fillimisht, vlera e ndryshores i - zero. Përkthyesi kontrollon nëse ndryshorja është e barabartë i 4 ose më pak. Nëse po, atëherë vlera kthehet. i vërtetë, dhe cikli ekzekutohet në përputhje me rrethanat. Vlera është rritur me një.

Pas përsëritjes së parë, vlera e ndryshores bëhet 1. Bëhet një kontroll dhe programi kupton që ky numër është përsëri më i vogël se 5. Prandaj, trupi i ciklit ekzekutohet për herë të dytë. Meqenëse hapat janë të ngjashëm, vlera gjithashtu rritet me një, dhe ndryshorja tani është e barabartë me 2.

Kjo vlerë është gjithashtu më pak se pesë. Pastaj cikli ekzekutohet për herë të tretë, i shtohet ndryshores i 1 dhe i është caktuar vlera 3. Kjo është përsëri më pak se pesë. Dhe kështu vjen deri te përsëritja e gjashtë e ciklit, në të cilin vlera e ndryshores i është e barabartë me 5 (në fund të fundit, fillimisht ishte zero, me sa mbajmë mend). Në përputhje me rrethanat, ky kusht nuk e kalon testin, dhe cikli përfundon automatikisht dhe kryhet kalimi në hapin tjetër, i cili është jashtë tij (ose përfundimi i programit, nëse hapat e mëposhtëm nuk ofrohen).

Cikli mund të ndodhë edhe në drejtim të kundërt. Këtu është një shembull i kodit ku, me çdo përsëritje të mëvonshme, një zbritet nga vlera aktuale e ndryshores. 

total = 100 

ndërsa gjithsej > 0:

    n = int(hyrje())

    total = total — n 

print ("Burimi i shteruar")

Mundohuni të merrni me mend se çfarë bën ky program! Imagjinoni që në një ndryshore total informacioni rreth burimit të programit ruhet. Çdo herë përkthyesi kontrollon nëse burimi ekziston. Nëse jo, atëherë shfaqet teksti "Resource exhausted" dhe programi mbyllet. Dhe me çdo përsëritje të lakut, burimi zvogëlohet me numrin që përdoruesi specifikon.

Dhe tani detyrat e shtëpisë. Provoni të ndryshoni kodin e mësipërm në mënyrë që ndryshorja të mos bëhet fizikisht negative. 

4 Comments

  1. si kod ahaan usoo gudbi

  2. Përshëndetje

Lini një Përgjigju