Masharti ikiwa taarifa katika Python. Syntax, vinginevyo/elif vitalu, mifano

Katika mchakato wa kujifunza kwa programu, mara nyingi ni muhimu kuunda programu ambazo si rahisi kuomba katika maisha halisi. Baada ya yote, mara kwa mara unapaswa kufuata maelekezo tu chini ya hali fulani. Ili kuweza kutekeleza hili katika programu, lugha zote zina taarifa za udhibiti. Kwa msaada wao, unaweza kudhibiti mtiririko wa utekelezaji wa kanuni, kuunda loops au kufanya vitendo fulani tu wakati hali fulani ni kweli.

Leo tutazungumza juu ya ikiwa taarifa, ambayo inakagua hali ya sasa kwa hali fulani, na kwa kuzingatia habari hii, hufanya maamuzi juu ya vitendo zaidi.

Aina za Taarifa za Udhibiti

Kwa ujumla, ikiwa sio taarifa pekee inayodhibiti mtiririko wa programu. Vile vile yeye mwenyewe anaweza kuwa sehemu ya mlolongo mkubwa wa waendeshaji.

Pia kuna vitanzi na taarifa zinazodhibiti mchakato wa utekelezaji wake. Leo tutazungumza tu juu ya mwendeshaji wa masharti na minyororo ambayo inaweza kushiriki.

Katika programu, kuna kitu kama matawi. Ni hili haswa ambalo linamaanisha mlolongo wa amri ambazo hutekelezwa tu ikiwa hali fulani ni kweli. Vigezo vyenyewe vinaweza kuwa tofauti:

  1. Usawa wa kigezo kwa thamani fulani.
  2. Kufanya kitendo maalum.
  3. Hali ya maombi (imeporomoka au la).

Wigo unaweza kuwa mkubwa zaidi. Kauli za masharti huja katika aina kadhaa:

  1. Na tawi moja. Hiyo ni, hundi moja inafanywa, kama matokeo ambayo vitendo fulani hufanywa.
  2. Na matawi mawili au zaidi. Ikiwa kigezo cha 1 ni kweli, basi angalia kigezo cha 2. Ikiwa ni kweli, basi angalia 3. Kwa hivyo, fanya ukaguzi mwingi inavyohitajika.
  3. Na masharti kadhaa. Kila kitu ni rahisi hapa. Mkalimani huangalia hali nyingi au mojawapo.

kama kauli

Muundo wa kauli if ni sawa katika lugha zote. Walakini, katika Python, syntax yake ni tofauti na zingine zote:

ikiwa hali:

    <входящее выражение 1>

    <входящее выражение 2>

<не входящее выражение>

Kwanza, operator yenyewe anatangazwa, baada ya hapo hali ambayo huanza kufanya kazi imeandikwa. Hali inaweza kuwa ya kweli au ya uwongo.

Hii inafuatwa na kizuizi kilicho na amri. Ikiwa inafuata mara moja kigezo cha kufikiwa, basi mlolongo unaofanana wa amri unaitwa ikiwa block. Unaweza kutumia idadi yoyote ya amri ndani yake.

Attention! Ujongezaji ndani ya yote ikiwa amri za kuzuia lazima ziwe saizi sawa. Mipaka ya kuzuia imedhamiriwa na indents. 

Kulingana na hati za lugha, ujongezaji ni nafasi 4. 

Opereta huyu anafanyaje kazi? Mkalimani anapoona if neno, hukagua usemi mara moja dhidi ya vigezo vilivyoainishwa na mtumiaji. Ikiwa ndivyo, basi anaanza kutafuta maelekezo na kufuata. Vinginevyo, amri zote kutoka kwa kizuizi hiki zitarukwa.

Ikiwa taarifa baada ya hali haijaingizwa ndani, haichukuliwi kama kizuizi. Katika hali yetu, mstari huu ni . Kwa hiyo, bila kujali matokeo ya hundi, mstari huu utatekelezwa.

Hapa kuna kijisehemu cha msimbo kwa mfano wa jinsi mwendeshaji huyu anavyofanya kazi.

namba = ingizo("Ingiza nambari:"))

ikiwa nambari> 10:

    chapa ("Nambari ni kubwa kuliko 10")

Mpango huu humdokezea mtumiaji nambari na huangalia ikiwa ni kubwa kuliko 10. Ikiwa ndivyo, hurejesha maelezo yanayofaa. Kwa mfano, ikiwa mtumiaji anaingiza nambari 5, basi programu itaisha tu, na ndivyo hivyo.

Lakini ukitaja nambari 100, basi mkalimani ataelewa kuwa ni zaidi ya kumi, na atoe ripoti.

Attention! Kwa upande wetu, ikiwa hali ni ya uwongo, programu inacha, kwa sababu hakuna amri zinazotolewa baada ya maagizo.

Kuna amri moja tu katika nambari iliyo hapo juu. Lakini kuna mengi zaidi yao. Sharti pekee ni kuingiza ndani.

Sasa hebu tuchambue mlolongo huu wa amri.

namba = ingizo("Andika nambari:"))

ikiwa nambari> 10:

    chapa ("mstari wa kwanza")

    chapa ("mstari wa pili")

    chapa ("mstari wa tatu")

print("Mstari unaotekelezwa, bila kujali nambari iliyoingizwa")

chapa ("Maliza programu")

Jaribu kukisia matokeo yatakuwa nini ikiwa utaingiza maadili 2, 5, 10, 15, 50.

Kama unavyoona, ikiwa nambari iliyoingizwa na mtumiaji ni zaidi ya kumi, basi mistari mitatu hutolewa + moja na maandishi "Run kila wakati ..." na "Mwisho" moja, na ikiwa chini ya kumi, basi moja tu, na maandishi tofauti. Mstari wa 3,4,5 pekee ndio utakaotekelezwa ikiwa ni kweli. Walakini, mistari miwili ya mwisho itaandikwa bila kujali nambari ambayo mtumiaji anataja.

Ikiwa unatumia kauli moja kwa moja kwenye console, matokeo yatakuwa tofauti. Mkalimani huwasha mara moja modi ya mistari mingi ikiwa, baada ya kubainisha kigezo cha uthibitishaji, bonyeza Enter.

Tuseme tumeandika mlolongo ufuatao wa amri.

>>>

>>> n = 100

>>> ikiwa n > 10:

...

Baada ya hapo, tutaona kwamba >>> imebadilishwa na ellipsis. Hii ina maana kwamba hali ya ingizo ya laini nyingi imewezeshwa. Kwa maneno rahisi, ukibonyeza Ingiza, utahamishiwa kwa pembejeo ya hatua ya pili ya maagizo. 

Na ili kuondoka kwenye kizuizi hiki, unahitaji kuongeza ujenzi mmoja zaidi kwenye kizuizi if.

>>>

>>> n = 100

>>> ikiwa n > 10:

… chapisha(«nv 10»)

...

Ikiwa hali sio kweli, programu itaisha. Hili ni shida, kwani mtumiaji anaweza kugundua programu kama hiyo kuwa imefungwa kwa sababu ya kutofaulu. Kwa hiyo, ni muhimu kutoa maoni kwa mtumiaji. Kwa hili, kiungo kinatumiwa ikiwa -ngine.

opereta wa kujieleza ikiwa -ngine

Opereta huyu hukuruhusu kutekeleza kiunga: ikiwa usemi unalingana na sheria fulani, fanya vitendo hivi, na ikiwa sivyo, basi wengine. Hiyo ni, inakuwezesha kugawanya mtiririko wa programu katika barabara mbili. Sintaksia ni angavu:

ikiwa hali:

    #kama block

    kauli 1

    kauli 2

    na kadhalika

mwingine:

    # kizuizi kingine

    kauli 3

    kauli 4

    Nakadhalika:

Hebu tueleze jinsi operator huyu anafanya kazi. Kwanza, taarifa ya kawaida inatekelezwa kwenye thread ndio, kuangalia kama inalingana hali "kweli" au "uongo". Vitendo zaidi hutegemea matokeo ya hundi. Ikiwa ni kweli, maagizo yaliyo katika mfuatano wa maagizo yanayofuata hali yanatekelezwa moja kwa moja. ndio, kama ni uongo basi mwingine

Kwa njia hii unaweza kushughulikia makosa. Kwa mfano, mtumiaji anahitaji kuingia kwenye radius. Ni wazi, inaweza tu kuwa nambari iliyo na ishara ya kuongeza, au ni thamani isiyofaa. Ikiwa ni chini ya 0, basi unahitaji kutoa ujumbe unaokuuliza uweke nambari chanya. 

Hapa kuna nambari inayotekelezea kazi hii. Lakini kuna kosa moja hapa. Jaribu kukisia ni ipi. 

radius = ingizo(ingizo("Ingiza radius:"))

ikiwa radius >= 0:

    chapa(“Mduara = “, 2 * 3.14 * radius)

    chapa(“Eneo = “, 3.14 * radius ** 2)

    mwingine:

        chapa ("Tafadhali weka nambari chanya")

Hitilafu isiyolingana ya ujongezaji. Ikiwa na Vinginevyo lazima iwe iko bila wao au kwa idadi sawa yao (kulingana na ikiwa ni kiota au la).

Wacha tupe kesi nyingine ya utumiaji (ambapo kila kitu kitakuwa sawa na upatanishi wa waendeshaji) - kipengee cha programu ambacho hukagua nenosiri.

nenosiri = ingizo("Ingiza nenosiri:")

ikiwa nenosiri == «sshh»:

    chapa ("Karibu")

mwingine:

    chapa ("Ufikiaji umekataliwa")

Maagizo haya yatamruka mtu zaidi ikiwa nenosiri ni sshh. Ikiwa mchanganyiko wowote wa herufi na nambari, basi huonyesha ujumbe "Ufikiaji umekataliwa".

kauli-semo kama-elif-mwingine

Ikiwa hali kadhaa sio kweli, taarifa iliyo kwenye kizuizi inatekelezwa. mwingine. Usemi huu unafanya kazi kama hii.

ikiwa sharti_1:

    #kama block

    taarifa

    taarifa

    kauli zaidi

elif condition_2:

    # kwanza elif block

    taarifa

    taarifa

    kauli zaidi

elif condition_3:

    #elif block ya pili

    taarifa

    taarifa

    kauli zaidi

...

mwingine

    taarifa

    taarifa

    kauli zaidi

Unaweza kutaja idadi yoyote ya masharti ya ziada.

Kauli zilizowekwa

Njia nyingine ya kutekeleza hali nyingi ni kuingiza ukaguzi wa hali ya ziada kwenye if block.

Opereta if ndani ya kizuizi kingine cha hali

gre_score = int(input("Ingiza kikomo chako cha sasa cha mkopo"))

per_grad = ingizo("Ingiza alama yako ya mkopo:"))

ikiwa per_grad> 70:

    # nje ikiwa ni kizuizi

        ikiwa gre_score > 150:

            # ndani ikiwa kizuizi

    chapa("Hongera, umepata mkopo")

mwingine:

    chapa(“Samahani, hustahiki mkopo”)

Mpango huu hufanya ukaguzi wa ukadiriaji wa mkopo. Ikiwa ni chini ya miaka 70, programu inaripoti kuwa mtumiaji hastahiki mkopo. Ikiwa ni kubwa zaidi, ukaguzi wa pili unafanywa ili kuona ikiwa kikomo cha sasa cha mkopo ni zaidi ya 150. Ikiwa ndiyo, basi ujumbe utaonyeshwa kwamba mkopo umetolewa.

Ikiwa maadili yote mawili ni ya uwongo, basi ujumbe unaonyeshwa kwamba mtumiaji hana uwezekano wa kupata mkopo. 

Sasa hebu tufanye upya mpango huo kidogo.

gre_score = int(input("Ingiza kikomo cha sasa:"))

per_grad = ingizo("Ingiza alama ya mkopo:"))

ikiwa per_grad> 70:

    ikiwa gre_score > 150:

        chapa("Hongera, umepata mkopo")

    mwingine:

        chapa ("Kikomo chako cha mkopo ni kidogo")

mwingine:

    chapa ("Samahani, hustahiki mkopo")

Nambari yenyewe inafanana sana, lakini imewekwa if pia hutoa algorithm ikiwa hali kutoka inageuka kuwa ya uwongo. Hiyo ni, kikomo kwenye kadi haitoshi, lakini historia ya mkopo ni nzuri, ujumbe "Una kiwango cha chini cha mkopo" unaonyeshwa.

kama-kingine taarifa ndani ya hali mwingine

Hebu tutengeneze programu nyingine ambayo huamua daraja la mwanafunzi kulingana na alama za mtihani.

alama = ingizo("Ingiza alama yako")

ikiwa alama>=90:

    chapa(“Nzuri! Daraja lako ni A”)

mwingine:

    ikiwa alama>=80:

chapa(“Nzuri! Daraja lako ni B”)

    mwingine:

ikiwa alama>=70:

    chapa(“Nzuri! Daraja lako ni C”)

mwingine:

    ikiwa alama>=60:

print(“Daraja lako ni D. Inafaa kurudia nyenzo.”)

    mwingine:

chapa ("Umeshindwa mtihani")

Programu hukagua kwanza ili kuona kama alama ni kubwa kuliko au sawa na 90. Kama ndiyo, basi itarejesha alama A. Ikiwa hali hii ni ya uwongo, basi ukaguzi unaofuata unafanywa. Tunaona kwamba algorithm ni karibu sawa kwa mtazamo wa kwanza. Kwa hivyo badala ya kuangalia ndani mwingine bora kutumia mchanganyiko ikiwa-mwingine.

Hivyo operator if hufanya kazi muhimu sana - inahakikisha kwamba vipande fulani vya kanuni vinatekelezwa tu ikiwa kuna haja yake. Haiwezekani kufikiria programu bila hiyo, kwa sababu hata algorithms rahisi zaidi zinahitaji uma kama "ukienda kushoto, utaipata, na ukienda kulia, basi unahitaji kufanya hivi na vile."

Acha Reply