Kondisyonèl si deklarasyon nan Python. Sentaks, else/elif blòk, egzanp

Nan pwosesis pou aprann pwogram, li souvan nesesè pou kreye pwogram ki pa tèlman fasil pou aplike nan lavi reyèl. Apre yo tout, de tan zan tan ou dwe swiv enstriksyon sèlman nan sèten kondisyon. Pou kapab aplike sa a nan pwogram nan, tout lang yo gen deklarasyon kontwòl. Avèk èd yo, ou ka kontwole koule nan ekzekisyon kòd, kreye bouk oswa fè sèten aksyon sèlman lè yon sèten kondisyon se vre.

Jodi a nou pral pale sou si deklarasyon an, ki tcheke sitiyasyon aktyèl la pou yon sèten kondisyon, epi ki baze sou enfòmasyon sa a, pran desizyon sou plis aksyon.

Kalite Deklarasyon Kontwòl

An jeneral, si se pa deklarasyon an sèlman ki kontwole koule nan yon pwogram. Kòm byen ke li menm li kapab yon eleman nan yon chèn pi gwo nan operatè yo.

Genyen tou bouk ak deklarasyon ki kontwole pwosesis la nan ekzekisyon li yo. Jodi a nou pral sèlman pale sou operatè a kondisyonèl ak chenn yo nan ki li ka patisipe.

Nan pwogramasyon, gen yon bagay tankou branch. Li se jisteman sa a ki vle di yon sekans nan kòmandman ki egzekite sèlman si yon sèten kondisyon se vre. Kritè yo tèt yo ka diferan:

  1. Egalite yon varyab ak yon sèten valè.
  2. Fè yon aksyon espesifik.
  3. Eta aplikasyon (effondre oswa ou pa).

Spectre a ka pi gwo anpil. Deklarasyon kondisyonèl vini nan plizyè kalite:

  1. Avèk yon sèl branch. Sa vle di, se yon chèk sèl fèt, kòm yon rezilta nan ki sèten aksyon yo fèt.
  2. Avèk de oswa plis branch. Si kritè 1 se vre, Lè sa a, tcheke kritè 2. Si li se vre, Lè sa a, tcheke 3. Se konsa, fè otan chèk ke yo mande yo.
  3. Avèk plizyè kondisyon. Tout bagay se senp isit la. Entèprèt la tcheke pou plizyè kondisyon oswa youn nan yo.

si deklarasyon

Estrikti deklarasyon si la sanble nan tout lang. Sepandan, nan Python, sentaks li yo se yon ti jan diferan de tout lòt yo:

si kondisyon:

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

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

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

Premyèman, se operatè a li menm te deklare, apre yo fin ekri kondisyon ki anba a li kòmanse travay. Kondisyon an ka swa vre oswa fo.

Sa a se swiv pa yon blòk ak kòmandman. Si li imedyatman swiv yon kritè yo dwe satisfè, Lè sa a, sekans korespondan nan kòmandman yo rele yon blòk si. Ou ka itilize nenpòt kantite kòmandman ladan l.

Attention! Endentasyon an nan tout si kòmand blòk yo dwe menm gwosè a. Fwontyè blòk yo detèmine pa tire yo. 

Dapre dokimantasyon lang lan, endentasyon an se 4 espas. 

Ki jan operatè sa a travay? Lè entèprèt la wè mo si la, li imedyatman tcheke ekspresyon an kont kritè itilizatè yo espesifye. Si sa a se ka a, Lè sa a, li kòmanse chèche enstriksyon ak swiv yo. Sinon, tout kòmandman ki soti nan blòk sa a yo sote.

Si yon deklarasyon apre kondisyon an pa endentée, li pa trete kòm yon blòk si. Nan sitiyasyon nou an, liy sa a se . Se poutèt sa, kèlkeswa rezilta chèk la, liy sa a pral egzekite.

Isit la se yon snippet kòd pou yon egzanp sou ki jan operatè sa a travay.

nimewo = int(antre ("Antre yon nimewo: "))

si nimewo > 10:

    print ("nimewo a pi gran pase 10")

Pwogram sa a mande itilizatè a yon nimewo epi tcheke si li pi gran pase 10. Si se konsa, li retounen enfòmasyon ki apwopriye yo. Pou egzanp, si itilizatè a antre nan nimewo a 5, Lè sa a, pwogram nan pral tou senpleman fini, epi li se li.

Men, si ou presize nimewo a 100, Lè sa a, entèprèt la pral konprann ke li se plis pase dis, epi rapòte li.

Attention! Nan ka nou an, si kondisyon an se fo, pwogram nan sispann, paske pa gen okenn kòmandman yo bay apre enstriksyon an.

Gen yon sèl kòmand nan kòd ki anwo a. Men, gen anpil plis nan yo. Sèl kondisyon se pou indent.

Koulye a, kite a analize sekans sa a nan kòmandman.

nimewo = int(antre ("Ekri yon nimewo: "))

si nimewo > 10:

    enprime ("premye liy")

    enprime ("dezyèm liy")

    enprime ("twazyèm liy")

print ("Liy ki egzekite a, kèlkeswa nimewo yo antre nan")

enprime ("Fen aplikasyon")

Eseye devine kisa pwodiksyon an pral ye si ou antre nan valè 2, 5, 10, 15, 50.

Kòm ou ka wè, si nimewo itilizatè a antre nan plis pase dis, Lè sa a, twa liy yo pwodiksyon + youn ak tèks la "Kouri chak fwa ..." ak yon sèl "Fen", epi si mwens pase dis, Lè sa a, yon sèl, ak yon tèks diferan. Se sèlman liy 3,4,5 yo pral egzekite si se vre. Sepandan, de dènye liy yo pral ekri kèlkeswa nimewo itilizatè a espesifye.

Si ou itilize deklarasyon yo dirèkteman nan konsole a, rezilta a pral diferan. Entèprèt la imedyatman limen mòd milti-liy si, apre li fin presize kritè verifikasyon an, peze Antre.

Sipoze nou te ekri sekans kòmandman sa yo.

>>>

>>> n = 100

>>> si n > 10:

...

Apre sa, nou pral wè ke >>> te ranplase pa ellipsis. Sa vle di ke mòd D 'multiliy la pèmèt. Nan mo senp, si ou peze Antre, ou pral transfere nan opinyon nan dezyèm etap la nan enstriksyon an. 

Ak nan lòd yo soti nan blòk sa a, ou bezwen ajoute yon lòt konstriksyon nan blòk la if.

>>>

>>> n = 100

>>> si n > 10:

… enprime(«nv 10»)

...

Si kondisyon an pa vre, pwogram nan fini. Sa a se yon pwoblèm, depi itilizatè a ka wè yon pwogram konsa kòm li te fèmen akòz yon echèk. Se poutèt sa, li nesesè bay fidbak itilizatè a. Pou sa, yo itilize yon lyen si-lòt bagay.

operatè ekspresyon si-lòt bagay

Operatè sa a pèmèt ou aplike yon lyen: si ekspresyon an matche ak yon règ sèten, fè aksyon sa yo, epi si se pa, Lè sa a, lòt moun. Sa vle di, li pèmèt ou divize koule nan pwogram nan an de wout. Sentaks la se entwisyon:

si kondisyon:

    # si bloke

    deklarasyon 1

    deklarasyon 2

    yo ak sou sa

lòt bagay:

    # lot blòk

    deklarasyon 3

    deklarasyon 4

    ak sou sa:

Ann eksplike kijan operatè sa a ap travay. Premyèman, deklarasyon estanda a egzekite nan fil la if, tcheke si li matche kondisyon "Vrè ou fo". Pli lwen aksyon depann sou rezilta yo nan chèk la. Si se vre, enstriksyon ki nan sekans enstriksyon apre kondisyon an egzekite dirèkteman. if, si li se fo, lè sa a Lòt Bagay

Nan fason sa a ou ka jere erè. Pou egzanp, itilizatè a bezwen antre nan yon reyon. Li evidan, li kapab sèlman yon nimewo ki gen yon siy plis, oswa li se yon valè nil. Si li se mwens pase 0, Lè sa a, ou bezwen bay yon mesaj ki mande ou antre nan yon nimewo pozitif. 

Isit la se kòd ki aplike travay sa a. Men, gen yon erè isit la. Eseye devine kiyès. 

reyon = int(antre ("Antre reyon: "))

si reyon >= 0:

    enprime ("Sikonferans = ", 2 * 3.14 * reyon)

    enprime ("Zòn = ", 3.14 * reyon ** 2)

    lòt bagay:

        print ("Tanpri antre yon nimewo pozitif")

Erè dezakò nan endentasyon. Si lòt bagay dwe lokalize san yo oswa ak menm kantite yo (depann si yo enbrike oswa ou pa).

Ann bay yon lòt ka itilize (kote tout bagay pral kòrèk ak aliyman operatè) - yon eleman aplikasyon ki tcheke yon modpas.

modpas = antre ("Antre modpas: ")

si modpas == «sshh»:

    enprime ("Byenveni")

lòt bagay:

    enprime ("Aksè refize")

Enstriksyon sa a sote moun nan pi lwen si modpas la se sshh. Si nenpòt lòt konbinezon de lèt ak nimewo, Lè sa a, li montre mesaj la "Aksè refize".

deklarasyon-ekspresyon si-elif-lòt

Sèlman si plizyè kondisyon yo pa vre, deklarasyon ki nan blòk la egzekite. Lòt Bagay. Ekspresyon sa a travay konsa.

si kondisyon_1:

    # si bloke

    deklarasyon

    deklarasyon

    plis deklarasyon

kondisyon elif_2:

    # premye blòk elif

    deklarasyon

    deklarasyon

    plis deklarasyon

kondisyon elif_3:

    # dezyèm blòk elif

    deklarasyon

    deklarasyon

    plis deklarasyon

...

Lòt Bagay

    deklarasyon

    deklarasyon

    plis deklarasyon

Ou ka presize nenpòt kantite kondisyon adisyonèl.

Deklarasyon anbrike

Yon lòt fason pou aplike kondisyon miltip se insert chèk kondisyon adisyonèl nan blòk si la.

Operatè if andedan yon lòt blòk kondisyon

gre_score = int(input ("Antre limit kredi ou ye kounye a"))

per_grad = int(antre ("Antre sou evalyasyon kredi ou a: "))

si per_grad > 70:

    # ekstèn si blòk

        si gre_score > 150:

            # enteryè si blòk

    print ("Felisitasyon, ou te resevwa yon prè")

lòt bagay:

    print(“Dezole, ou pa kalifye pou yon prè”)

Pwogram sa a fè yon chèk evalyasyon kredi. Si li se mwens pase 70, pwogram nan rapòte ke itilizatè a pa kalifye pou kredi. Si li pi gwo, yo fè yon dezyèm chèk pou wè si limit kredi aktyèl la pi gran pase 150. Si wi, lè sa a yon mesaj parèt ke yo te bay prè a.

Si tou de valè yo fo, Lè sa a, yon mesaj parèt ke itilizatè a pa gen posiblite pou jwenn yon prè. 

Koulye a, ann retravay pwogram sa a yon ti jan.

gre_score = int(antre ("Antre limit aktyèl la: "))

per_grad = int(antre ("Antre pwen kredi: "))

si per_grad > 70:

    si gre_score > 150:

        print ("Felisitasyon, ou te resevwa yon prè")

    lòt bagay:

        print ("Limit kredi ou ba")

lòt bagay:

    print("Padon, ou pa kalifye pou kredi")

Kòd la li menm se trè menm jan an, men enbrike if tou bay yon algorithm nan ka kondisyon an soti nan li vire soti yo dwe fo. Sa vle di, limit la sou kat la se ensifizan, men istwa kredi a bon, mesaj la "Ou gen yon evalyasyon kredi ki ba" parèt.

si-lòt deklarasyon andedan yon kondisyon Lòt Bagay

Ann fè yon lòt pwogram ki detèmine nòt yon elèv ki baze sou rezilta tès yo.

nòt = int(antre ("Antre nòt ou a: "))

si nòt >= 90:

    print("Bon! Klas ou se A")

lòt bagay:

    si nòt >= 80:

print("Bon! Klas ou se B")

    lòt bagay:

si nòt >= 70:

    print("Bon! Klas ou se C")

lòt bagay:

    si nòt >= 60:

print("Kòs ou se D. Li vo repete materyèl la.")

    lòt bagay:

print ("Ou te echwe egzamen an")

Aplikasyon an premye tcheke pou wè si nòt la pi gran pase oswa egal a 90. Si wi, Lè sa a, li retounen yon nòt A. Si kondisyon sa a se fo, Lè sa a, chèk ki vin apre yo fèt. Nou wè ke algorithm la se prèske menm bagay la nan premye gade. Se konsa, olye pou yo tcheke andedan Lòt Bagay pi bon yo sèvi ak yon konbinezon si-elif-lòt.

Se konsa, operatè a if fè yon fonksyon trè enpòtan - li asire ke sèten moso nan kòd yo egzekite sèlman si gen yon bezwen pou li. Li enposib imajine pwogramasyon san li, paske menm algoritm ki pi senp yo mande fouchèt tankou "si ou ale sou bò gòch la, ou pral jwenn li, epi si ou ale sou bò dwat la, Lè sa a, ou bezwen fè sa a ak sa."

Kite yon Reply