samtang loop sa Python. Giunsa kini molihok, mga pananglitan sa paggamit

Ang mga loop usa sa mga nag-unang himan sa bisan unsang pinulongan. Adunay duha ka sukaranan nga mga galong sa Python, usa niini samtang. Hunahunaa kini, ug alang usab sa mas maayong pagsabot sa hulagway, usa pa. Sa pagkatinuod, kon itandi sa susamang butang, mas sayon ​​sabton ang bisan unsang materyal, dili ba?

Ang konsepto sa usa ka siklo

Ang usa ka loop gikinahanglan kung ang usa ka piho nga aksyon kinahanglan nga himuon sa daghang mga higayon. Kini mao ang kaayo simplistic, tungod kay sa pagkatinuod ang lain-laing mga aplikasyon alang sa mga siklo mas lapad. Adunay duha ka nag-unang matang sa mga galong sa Python: alang ug samtang. Ang labing popular kay para.

Dugang sa piho nga mga aksyon, mahimo nimong i-loop ang lainlaing mga piraso sa code hangtod sa usa ka punto. Kini mahimong usa ka piho nga gidaghanon sa mga higayon, o basta ang usa ka partikular nga kondisyon tinuod.

Sa dili pa kita magsugod sa pagsabut sa mga matang sa mga galong ug samtang, sa partikular, kita kinahanglan pa nga makasabut unsa ang pag-uli. Kini mao ang usa ka pagbalik-balik sa usa ka aksyon o han-ay sa mga aksyon sa panahon sa kasamtangan nga cycle sulod sa kasamtangan nga aplikasyon run.

Cycle Para sa

Ang atong For loop dili usa ka counter, sama sa daghang ubang mga pinulongan. Ang tahas niini mao ang pag-ihap sa usa ka piho nga han-ay sa mga kantidad. Unsay buot ipasabot niini? Ingnon ta nga kita adunay usa ka lista sa mga elemento. Una, ang loop mokuha sa una, ikaduha, ikatulo, ug uban pa.

Ang bentaha niini nga loop sa Python mao nga dili nimo kinahanglan nga mahibal-an ang indeks sa elemento aron mahibal-an kung kanus-a mogawas sa loop. Ang tanan awtomatikong buhaton.

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

>>> para sa elemento sa spisok:

… print(elemento + 2)

...

12

42

22

32

Sa among pananglitan, gigamit namon ang variable elemento human sa alang sa sugo. Sa kinatibuk-an, ang ngalan mahimong bisan unsa. Pananglitan, ang usa ka popular nga ngalan mao ang i. Ug sa matag pag-uli, kini nga variable hatagan usa ka piho nga butang gikan sa lista, nga among gitawag nga angay nga pulong.

Sa among kaso, ang lista usa ka han-ay sa mga numero 10,40,20,30. Sa matag pag-uli, ang katumbas nga kantidad makita sa variable. Pananglitan, sa diha nga ang loop magsugod, ang variable elemento ang kantidad nga 10 gi-assign. Sa sunod nga pag-uli, ang napulo nahimo nga numero 40, sa ikatulo nga higayon kini nahimo nga numero 20, ug sa katapusan, sa katapusan nga pag-uli sa loop, nahimo kini nga 30.

Ang signal alang sa katapusan sa siklo mao ang katapusan sa mga elemento sa lista.

Kung kinahanglan nimo ang loop aron mahimo ang usa ka klasiko nga pag-ihap sa mga kantidad, sama sa ubang mga programming language, kinahanglan ka maghimo usa ka lista nga adunay pagkasunod-sunod sa natural nga mga numero hangtod sa kantidad nga kinahanglan namon.

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

O gamita ang function len(), aron mahibal-an ang gitas-on sa lista. Apan sa kini nga kaso mas maayo nga gamiton ang usa ka loop samtang, tungod kay dili kinahanglan nga mogamit usa ka variable.

Kung kinahanglan nimo nga usbon ang pagkasunod-sunod sa mga kantidad sa lista, loop alang sa ug ania moabut sa pagluwas. Aron mahimo kini, sa matag pag-uli, ang matag elemento sa lista kinahanglan nga hatagan usa ka angay nga kantidad.

Samtang ang Loop

Dili sama sa cycle alang sa, nga yano nga nagbalikbalik sa mga kantidad sa pagkasunod-sunod, ang loop samtang adunay mas daghang gamit. Ang ngalan niini nga matang sa mga siklo gihubad nga "pa". Sa ato pa, "hangtod".

Kini usa ka universal loop nga makita sa tanan nga mga programming language. Ug sa pipila ka mga paagi kini susama sa usa ka conditional operator yew, nga naghimo sa usa ka pagsusi aron makita kung ang usa ka piho nga kondisyon natuman. Sukwahi lamang sa conditional operator, samtang naghimo sa pagsusi sa matag pag-uli, dili lang kausa. Ug kung ang kondisyon dili tinuod, ang loop matapos ug ang sugo nga nagsunod niini gipatuman. Sa yano nga mga pulong, kung dili na balido ang sitwasyon nga iyang gitrabahoan.

Kung magdrowing kita og cycle samtang Sa yano nga paagi, kini gihimo gamit ang ingon nga laraw.samtang loop sa Python. Giunsa kini molihok, mga pananglitan sa paggamit

Ang nag-unang sanga sa programa (nga nagdagan sa gawas sa loop) gihulagway sa kini nga numero nga adunay asul nga mga rektanggulo. Ang turquoise nagrepresentar sa lawas sa siklo. Sa baylo, ang usa ka rhombus usa ka kondisyon nga gisusi sa matag pag-uli.

Siklo samtang mahimong moresulta sa duha ka eksepsiyon:

  1. Kung sa sinugdanan sa loop ang lohikal nga ekspresyon dili mobalik nga tinuod, nan kini dili magsugod, nga nahuman sa wala pa ipatuman. Sa kinatibuk-an, kini nga sitwasyon mao ang normal, tungod kay sa ilalum sa pipila ka mga kahimtang, ang aplikasyon mahimong dili paghatag alang sa presensya sa mga ekspresyon sa loop lawas.
  2. Kung ang ekspresyon kanunay nga tinuod, kini mahimong mosangpot sa usa ka loop. Kana mao, sa walay katapusan nga pag-scroll sa siklo. Busa, sa maong mga programa, kinahanglan kanunay adunay exit statement gikan sa loop o programa. Bisan pa, kini nga sitwasyon motungha kung ang programa makahimo sa pagtino sa kamatuoran o kabakakan sa usa ka partikular nga kondisyon. Kung napakyas siya sa pagbuhat niini, usa ka sayup ang gibalik sa pagtapos sa programa. O mahimo nimong madumala ang sayup, ug unya, kung mahitabo kini, ang piho nga code ipatuman.

Mahimong adunay daghang mga kapilian kung giunsa pagdumala ang usa ka sayup. Pananglitan, ang programa mahimong mangutana sa user sa pagsulod sa data sa husto nga paagi. Busa, kung ang usa ka tawo nagpakita sa usa ka negatibo nga numero diin kini mahimo lamang nga positibo, o gisulod ang mga letra diin ang mga numero ra ang kinahanglan, ang programa makasulti bahin niini.

Samtang Mga Pananglitan sa Loop

Ania ang usa ka pananglitan sa code nga nagdumala sa usa ka sayup sa kini nga kaso.

n = input("Pagsulod ug integer:") 

samtang type(n) != int:

    Sulayi:

        n = int(n)

    gawas ang ValueError:

        print("Sayop nga entry!")

        n = input("Pagsulod ug integer:") 

kon n % 2 == 0:

    print("Bisan")

uban pa:

    print ("Katingad-an")

Hinumdumi nga ang Python naggamit sa mga colon aron ipahayag ang komplikado nga mga kodigo sa code.

Sa code sa ibabaw, among gihubit ingon nga usa ka kondisyon nga among susihon kung ang numero usa ka integer. Kung oo, nan ang bakak ibalik. Kung dili, nan tinuod.

Sa ikaduhang bahin sa code, diin gigamit ang operator if, gigamit namo ang % operator sa pagpangita sa nahibilin human sa operasyon sa division. Ang sunod nga lakang mao ang pagsusi kung parehas ba ang numero. Kung dili, nan ang nahabilin usa sa kini nga kaso. Tungod niini, ang numero kay katingad-an. 

Sa yano nga mga termino, ang kodigo sa ibabaw una nga nagsusi kung ang string nga gisulod sa tiggamit usa ka numero. Kung oo, unya ang usa ka ikaduha nga pagsusi gihimo aron makita kung adunay nahabilin nga dibisyon sa duha. Apan ang ikaduhang block dili ipatuman hangtod ang kantidad nga gisulod sa user kay numeric.

Sa ato pa, ang loop kanunay nga ipatuman hangtod mahitabo ang kondisyon. Sa kini nga kahimtang, kini molihok sama niini. 

Kana mao, mahimo ka nga moadto gikan sa atbang: i-loop ang usa ka piho nga aksyon hangtod nga ang panghitabo mahimong sayup.

Pag-parse sa code

Karon atong tan-awon sa mas detalyado kung giunsa kini nga code molihok. Aron mahimo kini, atong analisahon kini nga lakang sa lakang.

  1. Una, ang user mosulod sa usa ka hilo, nga gidawat sa variable n. 
  2. Paggamit sa usa ka loop samtang ang matang niini nga variable gisusi. Sa unang entry, dili kini patas int. Busa, isip resulta sa pagsulay, nakita nga tinuod kini nga kondisyon. Busa, ang loop nga lawas gisulod.
  3. Uban sa tabang sa usa ka operator pagsulay kami naningkamot sa pag-convert sa usa ka string ngadto sa usa ka numero. Kung nahimo kini, nan wala’y sayup nga mahitabo. Tungod niini, dili kinahanglan nga iproseso kini. Busa, ang tighubad mibalik sa sinugdanan sa loop, ug sumala sa mga resulta sa tseke, kini nahimo nga usa ka integer. Busa moadto kita sa lakang 7
  4. Kung ang pagkakabig wala molampos, unya ang usa ka ValueError ilabay. Sa kini nga kaso, ang dagan sa programa gipadala sa gawas nga tigdumala.
  5. Ang user mosulod sa usa ka bag-ong bili, nga gi-assign sa variable n.
  6. Ang tighubad mobalik sa lakang 2 ug mosusi pag-usab. Kung kini usa ka integer nga kantidad, adto sa lakang 7. Kung dili, ang pagkakabig gisulayan pag-usab sumala sa lakang 3.
  7. Uban sa tabang sa usa ka operator if Pagtino kon adunay nahibilin human sa pagbahin sa usa ka numero sa 2. 
  8. Kung dili, ang teksto nga "gani" gibalik.
  9. Kung dili, ang teksto nga "odd" ibalik.

Tagda karon ang maong pananglitan. Sulayi sa pagtino kon sa unsang paagi sa daghang mga higayon nga kini nga cycle moagi?

total = 100 

i = 0

samtang ako <5:

    n = int(input())

    total = total — n

    ako = i + 1 

print("Nabilin", total)

Ang husto nga tubag mao ang 5. Sa sinugdan, ang bili sa variable i – sero. Gisusi sa tighubad kung parehas ang variable i 4 o ubos pa. Kung oo, ibalik ang kantidad. tinuod nga, ug ang loop gipatuman sumala niana. Ang bili gidugangan sa usa.

Human sa unang pag-uli, ang bili sa variable mahimong 1. Usa ka tseke ang gihimo, ug ang programa nakasabut nga kini nga numero ubos na usab sa 5. Tungod niini, ang loop body gipatuman sa ikaduhang higayon. Tungod kay ang mga lakang managsama, ang kantidad gidugangan usab sa usa, ug ang variable karon katumbas sa 2.

Kini nga kantidad ubos usab sa lima. Dayon ang loop ipatuman sa ikatulo nga higayon, idugang sa variable i 1 ug kini gi-assign sa bili 3. Kini usab ubos sa lima. Ug mao nga kini moabut ngadto sa ikaunom nga pag-uli sa laang, diin ang bili sa variable i katumbas sa 5 (human sa tanan, kini orihinal nga zero, kutob sa atong mahinumduman). Tungod niini, kini nga kondisyon dili moagi sa pagsulay, ug ang loop awtomatik nga gitapos ug ang transisyon ngadto sa sunod nga lakang, nga anaa sa gawas niini (o ang pagtapos sa programa, kung ang mosunod nga mga lakang wala gihatag), gihimo.

Ang siklo mahimo usab nga mahitabo sa atbang nga direksyon. Ania ang usa ka pananglitan sa code diin, sa matag sunod-sunod nga pag-uli, ang usa gikuha gikan sa kasamtangan nga bili sa variable. 

total = 100 

samtang total > 0:

    n = int(input())

    total = total — n 

print("Nahurot na ang kahinguhaan")

Sulayi pagtag-an kung unsa kini nga programa! Hunahunaa kana sa usa ka variable Total impormasyon mahitungod sa programa nga kapanguhaan gitipigan. Matag higayon nga susihon sa tighubad kung naa ba ang kapanguhaan. Kung dili, unya ang teksto nga "Resource exhausted" gipakita ug ang programa magsira. Ug sa matag pag-uli sa loop, ang kapanguhaan mikunhod sa gidaghanon nga gitino sa user.

Ug karon homework. Sulayi ang pagbag-o sa code sa ibabaw aron ang variable dili mahimong negatibo. 

4 Comments

  1. si code ahaan usoo gudbi

Leave sa usa ka Reply