while lykkja í Python. Hvernig það virkar, dæmi um notkun

Lykkjur eru eitt helsta verkfæri hvers tungumáls. Það eru tvær grunnlykkjur í Python, önnur þeirra er while. Íhugaðu það, og einnig til að skilja myndina betur, einn í viðbót. Reyndar, í samanburði við eitthvað svipað, er miklu auðveldara að skilja hvaða efni sem er, er það ekki?

Hugmyndin um hringrás

Lykkju er þörf þegar ákveðna aðgerð þarf að framkvæma mörgum sinnum. Þetta er mjög einfalt, vegna þess að í raun er notkunarsvið fyrir hringrás miklu meira. Það eru tvær megingerðir af lykkjum í Python: fyrir og á meðan. Vinsælast er fyrir.

Til viðbótar við sérstakar aðgerðir geturðu lykkjuð mismunandi kóðastykki upp að ákveðnum tímapunkti. Þetta getur verið ákveðinn fjölda sinnum, eða svo lengi sem tiltekið ástand er satt.

Áður en við byrjum að skilja gerðir af lykkjum og á meðan, sérstaklega, þurfum við enn að skilja hvað endurtekning er. Þetta er ein endurtekning á aðgerð eða röð aðgerða á yfirstandandi lotu í núverandi forritskeyrslu.

Hjóla fyrir

For lykkjan okkar er ekki teljari eins og á mörgum öðrum tungumálum. Verkefni þess er að telja upp ákveðna röð gilda. Hvað þýðir þetta? Segjum að við höfum lista yfir þætti. Í fyrsta lagi tekur lykkjan fyrsta, annað, þriðja og svo framvegis.

Kosturinn við þessa lykkju í Python er að þú þarft ekki að ákvarða vísitölu frumefnisins til að vita hvenær á að fara út úr lykkjunni. Allt verður gert sjálfkrafa.

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

>>> fyrir þátt í spisok:

… print(þáttur + 2)

...

12

42

22

32

Í dæminu okkar notuðum við breytuna þáttur á eftir fyrir skipuninni. Almennt séð getur nafnið verið hvað sem er. Til dæmis er vinsæl heiti i. Og með hverri endurtekningu verður þessari breyta úthlutað ákveðnum hlut af listanum, sem við kölluðum viðeigandi orð.

Í okkar tilviki er listinn röð af tölum 10,40,20,30. Við hverja endurtekningu birtist samsvarandi gildi í breytunni. Til dæmis, um leið og lykkjan byrjar, breytan þáttur gildið 10 er úthlutað. Í næstu endurtekningu breytist tíun í töluna 40, í þriðja skiptið breytist hún í töluna 20 og loks, í síðustu endurtekningu lykkjunnar, breytist hún í 30.

Merkið fyrir lok lotunnar er lok þáttanna á listanum.

Ef þú þarft lykkjuna til að framkvæma klassíska upptalningu á gildum, eins og í öðrum forritunarmálum, ættir þú að búa til lista með röð náttúrulegra talna upp að því gildi sem við þurfum.

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

Eða notaðu aðgerðina len(), til að ákvarða lengd listans. En í þessu tilfelli er betra að nota lykkju á meðan, vegna þess að það er engin þörf á að nota breytu.

Ef þú þarft að breyta röð gilda á listanum skaltu lykkja fyrir og hér kemur til bjargar. Til að gera þetta, við hverja endurtekningu, verður að úthluta hverjum þætti listans viðeigandi gildi.

Þó að lykkja

Ólíkt hringrásinni fyrir, sem einfaldlega endurtekur yfir gildi röðarinnar, lykkjunnar meðan hefur fleiri not. Nafn þessarar tegundar hringrása er þýtt sem „ennþá“. Það er, "þar til".

Þetta er alhliða lykkja sem er að finna á öllum forritunarmálum. Og að sumu leyti líkist það skilyrtum rekstraraðila jamm, sem framkvæmir athugun til að athuga hvort tiltekið skilyrði sé uppfyllt. Aðeins í mótsögn við skilyrta rekstraraðila, meðan framkvæmir athugunina við hverja endurtekningu, ekki bara einu sinni. Og aðeins ef skilyrðið er rangt, lýkur lykkjan og skipunin sem fylgir henni er framkvæmd. Í einföldum orðum, ef ástandið sem hann vinnur við er ekki lengur í gildi.

Ef við teiknum hringrás meðan á einfaldan hátt er þetta gert með slíku kerfi.while lykkja í Python. Hvernig það virkar, dæmi um notkun

Aðalgrein forritsins (sem liggur utan lykkjunnar) er sýnd á þessari mynd með bláum ferhyrningum. Grænblár táknar líkama hringrásarinnar. Aftur á móti er tígur ástand sem er athugað við hverja endurtekningu.

Cycle meðan getur valdið tveimur undantekningum:

  1. Ef í upphafi lykkjunnar skilar rökræna tjáningin ekki sönn, þá byrjar hún einfaldlega ekki eftir að hafa lokið áður en hún er framkvæmd. Almennt séð er þetta ástand eðlilegt, vegna þess að undir vissum kringumstæðum gæti umsóknin ekki gert ráð fyrir tilvist tjáningar í lykkjuhlutanum.
  2. Ef tjáningin er alltaf sönn getur þetta leitt til lykkju. Það er að segja til endalausrar fletningar hringrásarinnar. Þess vegna ætti alltaf að vera útgönguyfirlýsing frá lykkjunni eða forritinu í slíkum forritum. Hins vegar mun þessi staða koma upp ef forritið gat ákvarðað sannleika eða ósannindi tiltekins ástands. Ef henni tókst ekki að gera þetta, þá er villa skilað þegar forritinu er hætt. Eða þú getur séð um villuna og þá, ef hún kemur upp, verður ákveðinn kóði keyrður.

Það getur verið gríðarlegur fjöldi valkosta um hvernig eigi að meðhöndla villu. Til dæmis gæti forritið beðið notandann um að slá inn gögn rétt. Þannig að ef einstaklingur gaf til kynna neikvæða tölu þar sem hún getur aðeins verið jákvæð, eða setti inn stafi þar sem aðeins tölur ættu að vera, getur forritið sagt frá því.

Þó að lykkja dæmi

Hér er dæmi um kóða sem sér um villu í þessu tilfelli.

n = input(“Sláðu inn heiltölu: “) 

á meðan tegund(n) != int:

    Prófaðu:

        n = int(n)

    nema ValueError:

        print ("Röng færsla!")

        n = input(“Sláðu inn heiltölu: “) 

ef n % 2 == 0:

    print(„Jafnvel“)

Annar:

    print ("Skrítið")

Hafðu í huga að Python notar tvípunkta til að lýsa yfir flóknum kóðasmíðum.

Í kóðanum hér að ofan skilgreindum við sem skilyrði að við ættum að athuga hvort talan sé heil tala. Ef já, þá er false skilað. Ef ekki, þá satt.

Í seinni hluta kóðans, þar sem rekstraraðili er notaður if, við notuðum % stjórnandann til að finna afganginn eftir skiptingaraðgerðina. Næsta skref er að athuga hvort talan sé slétt. Ef ekki, þá er afgangurinn einn í þessu tilfelli. Samkvæmt því er fjöldinn furðulegur. 

Í einföldu máli, kóðinn hér að ofan athugar fyrst hvort strengurinn sem notandinn slær inn sé tala. Ef já, þá er annað athugað til að sjá hvort það sé eftir af skiptingu með tveimur. En seinni blokkin verður ekki keyrð fyrr en gildið sem notandinn slær inn er tölulegt.

Það er, lykkjan verður keyrð reglulega þar til ástandið kemur upp. Í þessum aðstæðum virkar þetta svona. 

Það er að segja, þú getur farið frá því gagnstæða: lykkja ákveðna aðgerð þar til atburðurinn verður rangur.

Kóðaþáttun

Nú skulum við sjá nánar hvernig þessi kóða virkar. Til að gera þetta munum við greina það skref fyrir skref.

  1. Fyrst setur notandinn inn streng sem er samþykktur af breytunni n. 
  2. Með því að nota lykkju meðan tegund þessarar breytu er hakað. Við fyrstu færslu er það ekki jafnt int. Þess vegna, sem afleiðing af prófuninni, kemur í ljós að þetta ástand er satt. Þess vegna er lykkjumálið slegið inn.
  3. Með aðstoð rekstraraðila reyna við erum að reyna að breyta streng í tölu. Ef þetta er gert kemur engin villa upp. Í samræmi við það er engin þörf á að afgreiða það. Því fer túlkurinn aftur í byrjun lykkjunnar og samkvæmt niðurstöðum athugunarinnar kemur í ljós að hún er orðin heiltala. Svo skulum við fara í skref 7
  4. Ef umbreytingin tókst ekki, þá er ValueError varpað. Í þessu tilviki er áætlunarflæðið sent til nema meðhöndlarans.
  5. Notandinn setur inn nýtt gildi sem er úthlutað breytunni n.
  6. Túlkurinn fer aftur í skref 2 og athugar aftur. Ef það er heiltölugildi skaltu fara í skref 7. Ef ekki er reynt að breyta aftur samkvæmt skrefi 3.
  7. Með aðstoð rekstraraðila if Ákveður hvort það sé afgangur eftir að deilt hefur verið í tölu með 2. 
  8. Ef ekki er textinn „jafnvel“ skilaður.
  9. Ef ekki er textinn „skrýtinn“ skilaður.

Skoðum nú slíkt dæmi. Reyndu að ákvarða hversu oft þessi hringrás mun fara í gegnum?

samtals = 100 

i = 0

meðan ég <5:

    n = int(inntak())

    samtals = samtals — n

    i = i + 1 

print(„Eftir“, samtals)

Rétt svar er 5. Upphaflega gildi breytunnar i - núll. Túlkurinn athugar hvort breytan sé jöfn i 4 eða færri. Ef já, þá er gildinu skilað. satt, og lykkjan er framkvæmd í samræmi við það. Gildið er hækkað um einn.

Eftir fyrstu endurtekningu verður gildi breytunnar 1. Athugun er framkvæmd og forritið skilur að þessi tala er aftur minni en 5. Í samræmi við það er lykkjuhlutinn keyrður í annað sinn. Þar sem skrefin eru svipuð er gildið einnig aukið um eitt og breytan er nú jöfn 2.

Þetta gildi er líka minna en fimm. Síðan er lykkjan keyrð í þriðja sinn, bætt við breytuna i 1 og það fær gildið 3. Þetta er aftur minna en fimm. Og svo kemur að sjöttu endurtekningu lykkjunnar, þar sem gildi breytunnar i jafngildir 5 (enda var það upphaflega núll, eftir því sem við munum). Í samræmi við það stenst þetta ástand ekki prófið og lykkjunni er sjálfkrafa hætt og skipt er yfir í næsta skref, sem er utan þess (eða stöðvun forrits, ef eftirfarandi skref eru ekki til staðar).

Hringrásin getur líka átt sér stað í gagnstæða átt. Hér er dæmi um kóða þar sem við hverja síðari endurtekningu er einn dreginn frá núverandi gildi breytunnar. 

samtals = 100 

en samtals > 0:

    n = int(inntak())

    samtals = samtals — n 

print(„Auðlindin búin“)

Reyndu að giska á hvað þetta forrit gerir! Ímyndaðu þér það í breytu Samtals upplýsingar um forritsauðlindina eru geymdar. Í hvert skipti athugar túlkurinn hvort auðlindin sé til. Ef ekki, þá birtist textinn „Tilföng er full“ og forritið lokar. Og með hverri endurtekningu á lykkjunni minnkar auðlindin um þá tölu sem notandinn tilgreinir.

Og nú heimanám. Prófaðu að breyta ofangreindum kóða þannig að breytan geti ekki líkamlega orðið neikvæð. 

3 Comments

  1. si kóða ahaan usoo gudbi

Skildu eftir skilaboð