wakati kitanzi kwenye Python. Jinsi inavyofanya kazi, mifano ya matumizi

Vitanzi ni mojawapo ya zana kuu za lugha yoyote. Kuna vitanzi viwili vya msingi katika Python, moja ambayo ni wakati. Fikiria, na pia kwa ufahamu bora wa picha, moja zaidi. Hakika, kwa kulinganisha na kitu sawa, ni rahisi zaidi kuelewa nyenzo yoyote, sivyo?

Dhana ya mzunguko

Kitanzi kinahitajika wakati kitendo fulani kinahitaji kufanywa mara kadhaa. Hii ni rahisi sana, kwa sababu kwa kweli anuwai ya matumizi ya mizunguko ni pana zaidi. Kuna aina mbili kuu za vitanzi katika Python: kwa na wakati. Maarufu zaidi ni kwa.

Mbali na vitendo maalum, unaweza kuunganisha vipande tofauti vya msimbo hadi hatua fulani. Hii inaweza kuwa idadi fulani ya nyakati, au mradi hali fulani ni kweli.

Kabla ya kuanza kuelewa aina za vitanzi na wakati, hasa, bado tunahitaji kuelewa ni nini iteration. Huu ni urudiaji mmoja wa kitendo au mfuatano wa vitendo wakati wa mzunguko wa sasa ndani ya uendeshaji wa sasa wa programu.

Mzunguko Kwa

Yetu Kwa kitanzi sio kihesabu, kama katika lugha zingine nyingi. Kazi yake ni kuhesabu mlolongo fulani wa maadili. Je, hii ina maana gani? Hebu tuseme tuna orodha ya vipengele. Kwanza, kitanzi kinachukua kwanza, pili, tatu, na kadhalika.

Faida ya kitanzi hiki kwenye Python ni kwamba hauitaji kuamua faharisi ya kitu hicho kujua wakati wa kutoka kwa kitanzi. Kila kitu kitafanyika moja kwa moja.

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

>>> kwa kipengele katika spisok:

… chapisha(kipengele + 2)

...

12

42

22

32

Katika mfano wetu, tulitumia kutofautisha kipengele baada ya amri. Kwa ujumla, jina linaweza kuwa chochote. Kwa mfano, jina maarufu ni i. Na kwa kila iteration, variable hii itakuwa kwa ajili ya kitu maalum kutoka orodha, ambayo sisi kuitwa neno sahihi.

Kwa upande wetu, orodha ni mlolongo wa nambari 10,40,20,30. Katika kila iteration, thamani sambamba inaonekana katika variable. Kwa mfano, mara tu kitanzi kinapoanza, kutofautiana kipengele thamani ya 10 imetolewa. Katika iteration inayofuata, kumi inageuka kuwa nambari 40, mara ya tatu inageuka kuwa nambari 20, na hatimaye, kwenye iteration ya mwisho ya kitanzi, inageuka 30.

Ishara ya mwisho wa mzunguko ni mwisho wa vipengele katika orodha.

Ikiwa unahitaji kitanzi ili kutekeleza hesabu ya kawaida ya maadili, kama ilivyo katika lugha zingine za programu, unapaswa kuunda orodha yenye mlolongo wa nambari asilia hadi thamani tunayohitaji.

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

Au tumia kitendakazi lensi (), kuamua urefu wa orodha. Lakini katika kesi hii ni bora kutumia kitanzi wakati, kwa sababu hakuna haja ya kutumia variable.

Ikiwa unahitaji kubadilisha mlolongo wa maadili kwenye orodha, kitanzi kwa na hapa inakuja kuwaokoa. Ili kufanya hivyo, katika kila iteration, kila kipengele cha orodha lazima kupewa thamani sahihi.

Wakati Kitanzi

Tofauti na mzunguko kwa, ambayo inarudia tu juu ya maadili ya mlolongo, kitanzi wakati ina matumizi zaidi. Jina la aina hii ya mizunguko hutafsiriwa kama "bado". Hiyo ni, "mpaka".

Hiki ni kitanzi cha ulimwengu wote ambacho kinapatikana katika lugha zote za programu. Na kwa namna fulani inafanana na operator wa masharti ndio, ambayo hufanya ukaguzi ili kuona ikiwa hali fulani imefikiwa. Tofauti tu na mwendeshaji wa masharti, wakati hufanya ukaguzi kwa kila marudio, sio mara moja tu. Na tu ikiwa hali ni ya uwongo, kitanzi kinaisha na amri inayoifuata inatekelezwa. Kwa maneno rahisi, ikiwa hali ambayo anafanya kazi haifai tena.

Ikiwa tunachora mzunguko wakati kwa urahisi, hii inafanywa kwa kutumia mpango kama huo.wakati kitanzi kwenye Python. Jinsi inavyofanya kazi, mifano ya matumizi

Tawi kuu la programu (ambalo linaendesha nje ya kitanzi) linaonyeshwa kwenye takwimu hii na mistatili ya bluu. Turquoise inawakilisha mwili wa mzunguko. Kwa upande wake, rhombus ni hali ambayo inaangaliwa kwa kila iteration.

Msafara wakati inaweza kusababisha tofauti mbili:

  1. Ikiwa mwanzoni mwa kitanzi usemi wa kimantiki haurudi kweli, basi hauanza tu, ukiwa umekamilika kabla ya utekelezaji. Kwa ujumla, hali hii ni ya kawaida, kwa sababu chini ya hali fulani, maombi hayawezi kutoa uwepo wa maneno katika mwili wa kitanzi.
  2. Ikiwa usemi ni kweli kila wakati, hii inaweza kusababisha kitanzi. Hiyo ni, kwa kusonga bila mwisho kwa mzunguko. Kwa hiyo, katika programu hizo, lazima iwe na taarifa ya kuondoka kutoka kwa kitanzi au programu. Walakini, hali hii itatokea ikiwa programu iliweza kuamua ukweli au uwongo wa hali fulani. Ikiwa alishindwa kufanya hivi, basi kosa linarudishwa na kusitishwa kwa programu. Au unaweza kushughulikia kosa, na kisha, ikiwa hutokea, kanuni fulani itatekelezwa.

Kunaweza kuwa na idadi kubwa ya chaguzi za jinsi ya kushughulikia kosa. Kwa mfano, programu inaweza kuuliza mtumiaji kuingiza data kwa usahihi. Kwa hivyo, ikiwa mtu alionyesha nambari hasi ambapo inaweza kuwa chanya tu, au herufi zilizoingia ambapo nambari tu zinapaswa kuwa, programu inaweza kusema juu yake.

Wakati Kitanzi Mifano

Hapa kuna mfano wa nambari ambayo inashughulikia makosa katika kesi hii.

n = ingizo("Ingiza nambari kamili:") 

huku type(n) != int:

    Jaribu:

        n = int(n)

    isipokuwa Thamani ya Thamani:

        chapa ("Ingizo lisilo sahihi!")

        n = ingizo("Ingiza nambari kamili:") 

ikiwa n % 2 == 0:

    chapa ("Hata")

mwingine:

    chapa ("Isiyo ya kawaida")

Kumbuka kuwa Python hutumia koloni kutangaza muundo tata wa nambari.

Katika nambari iliyo hapo juu, tulifafanua kama hali ambayo tunapaswa kuangalia ikiwa nambari ni nambari kamili. Ikiwa ndio, basi uwongo unarudishwa. Ikiwa sivyo, basi ni kweli.

Katika sehemu ya pili ya kanuni, ambapo operator hutumiwa if, tulitumia opereta % kupata salio baada ya operesheni ya mgawanyiko. Hatua inayofuata ni kuangalia ikiwa nambari ni sawa. Ikiwa sivyo, basi iliyobaki ni moja katika kesi hii. Ipasavyo, nambari ni isiyo ya kawaida. 

Kwa maneno rahisi, nambari iliyo hapo juu hukagua kwanza ikiwa kamba iliyoingizwa na mtumiaji ni nambari. Ikiwa ndio, basi hundi ya pili inafanywa ili kuona ikiwa kuna salio la mgawanyiko na mbili. Lakini kizuizi cha pili hakitatekelezwa hadi thamani iliyoingizwa na mtumiaji iwe nambari.

Hiyo ni, kitanzi kitatekelezwa mara kwa mara hadi hali hiyo itatokea. Katika hali hii, inafanya kazi kama hii. 

Hiyo ni, unaweza kwenda kutoka kinyume: kitanzi kitendo fulani mpaka tukio litakuwa uongo.

Uchanganuzi wa msimbo

Sasa hebu tuone kwa undani zaidi jinsi kanuni hii inavyofanya kazi. Ili kufanya hivyo, tutachambua hatua kwa hatua.

  1. Kwanza, mtumiaji huingia kwenye kamba, ambayo inakubaliwa na kutofautiana n. 
  2. Kwa kutumia kitanzi wakati aina ya variable hii ni checked. Kwenye kiingilio cha kwanza, sio sawa int. Kwa hiyo, kutokana na mtihani huo, hupatikana kuwa hali hii ni kweli. Kwa hiyo, mwili wa kitanzi umeingia.
  3. Kwa msaada wa operator kujaribu tunajaribu kubadilisha mfuatano kuwa nambari. Ikiwa hii imefanywa, basi hakuna kosa linalotokea. Ipasavyo, hakuna haja ya kuishughulikia. Kwa hiyo, mkalimani anarudi mwanzo wa kitanzi, na kwa mujibu wa matokeo ya hundi, inageuka kuwa imekuwa integer. Kwa hivyo wacha tuende kwa hatua ya 7
  4. Ikiwa ubadilishaji haukufaulu, basi ValueError hutupwa. Katika kesi hii, mtiririko wa programu hutumwa kwa kidhibiti isipokuwa.
  5. Mtumiaji huingiza thamani mpya, ambayo imepewa tofauti n.
  6. Mkalimani anarudi kwa hatua ya 2 na kuangalia tena. Ikiwa ni thamani kamili, nenda kwenye hatua ya 7. Ikiwa sivyo, ubadilishaji utajaribiwa tena kulingana na hatua ya 3.
  7. Kwa msaada wa operator if Huamua ikiwa kuna salio baada ya kugawanya nambari na 2. 
  8. Ikiwa sivyo, maandishi "hata" yanarudishwa.
  9. Ikiwa sivyo, maandishi "isiyo ya kawaida" yanarudishwa.

Fikiria sasa mfano kama huo. Jaribu kuamua ni mara ngapi mzunguko huu utapitia?

jumla = 100 

mimi = 0

wakati mimi <5:

    n = ingizo(input())

    jumla = jumla - n

    mimi = mimi + 1 

chapa ("Zilizosalia", jumla)

Jibu sahihi ni 5. Awali, thamani ya kutofautiana i - sufuri. Mkalimani huangalia ikiwa kigezo ni sawa i 4 au chini. Ikiwa ndio, basi thamani inarudishwa. kweli, na kitanzi kinatekelezwa ipasavyo. Thamani inaongezeka kwa moja.

Baada ya kurudia kwa mara ya kwanza, thamani ya kutofautiana inakuwa 1. Cheki inafanywa, na programu inaelewa kuwa nambari hii ni tena chini ya 5. Kwa hiyo, mwili wa kitanzi unatekelezwa kwa mara ya pili. Kwa kuwa hatua zinafanana, thamani pia inaongezeka kwa moja, na kutofautisha sasa ni sawa na 2.

Thamani hii pia ni chini ya tano. Kisha kitanzi kinatekelezwa mara ya tatu, kimeongezwa kwa kutofautiana i 1 na imepewa thamani 3. Hii ni chini ya tano tena. Na hivyo inakuja iteration sita ya kitanzi, ambapo thamani ya kutofautiana i sawa na 5 (baada ya yote, awali ilikuwa sifuri, kwa kadiri tunavyokumbuka). Ipasavyo, hali hii haipiti mtihani, na kitanzi kinasimamishwa moja kwa moja na mpito kwa hatua inayofuata, ambayo iko nje yake (au kukomesha programu, ikiwa hatua zifuatazo hazijatolewa), hufanyika.

Mzunguko unaweza pia kutokea kwa mwelekeo tofauti. Hapa kuna mfano wa nambari ambapo, kwa kila marudio yanayofuata, moja hutolewa kutoka kwa thamani ya sasa ya kutofautisha. 

jumla = 100 

wakati jumla > 0:

    n = ingizo(input())

    jumla = jumla - n 

chapa ("Rasilimali imechoka")

Jaribu kukisia programu hii inafanya nini! Fikiria kwamba katika variable jumla ya habari kuhusu rasilimali ya programu huhifadhiwa. Kila wakati mkalimani anakagua kama rasilimali ipo. Ikiwa sio, basi maandishi "Rasilimali imechoka" yanaonyeshwa na programu inafunga. Na kwa kila marudio ya kitanzi, rasilimali hupungua kwa nambari ambayo mtumiaji anabainisha.

Na sasa kazi ya nyumbani. Jaribu kubadilisha nambari iliyo hapo juu ili utofauti usiweze kuwa hasi. 

4 Maoni

  1. si code ahaan usoo gudbi

Acha Reply