Deklarata e kushtëzuar if në Python. Sintaksa, blloqet e tjera/elif, shembuj

Në procesin e të mësuarit të programimit, shpesh është e nevojshme të krijohen programe që nuk janë aq të lehta për t'u zbatuar në jetën reale. Në fund të fundit, herë pas here duhet të ndiqni udhëzimet vetëm në kushte të caktuara. Për të qenë në gjendje ta zbatoni këtë në program, të gjitha gjuhët kanë deklarata kontrolli. Me ndihmën e tyre, ju mund të kontrolloni rrjedhën e ekzekutimit të kodit, duke krijuar sythe ose duke kryer veprime të caktuara vetëm kur një kusht i caktuar është i vërtetë.

Sot do të flasim për deklaratën if, e cila kontrollon situatën aktuale për një gjendje të caktuar dhe në bazë të këtij informacioni, merr vendime për veprime të mëtejshme.

Llojet e deklaratave të kontrollit

Në përgjithësi, if nuk është deklarata e vetme që kontrollon rrjedhën e një programi. Si dhe ai vetë mund të jetë një komponent i një zinxhiri më të madh operatorësh.

Ekzistojnë gjithashtu sythe dhe deklarata që kontrollojnë procesin e ekzekutimit të tij. Sot do të flasim vetëm për operatorin e kushtëzuar dhe zinxhirët në të cilët ai mund të marrë pjesë.

Në programim, ekziston një gjë e tillë si degëzimi. Është pikërisht kjo që nënkupton një sekuencë komandash që ekzekutohet vetëm nëse një kusht i caktuar është i vërtetë. Vetë kriteret mund të jenë të ndryshme:

  1. Barazia e një ndryshoreje me një vlerë të caktuar.
  2. Kryerja e një veprimi specifik.
  3. Gjendja e aplikimit (e shembur ose jo).

Spektri mund të jetë shumë më i madh. Deklaratat e kushtëzuara vijnë në disa lloje:

  1. Me një degë. Kjo do të thotë, kryhet një kontroll i vetëm, si rezultat i të cilit kryhen veprime të caktuara.
  2. Me dy ose më shumë degë. Nëse kriteri 1 është i vërtetë, atëherë kontrolloni kriterin 2. Nëse është i vërtetë, atëherë kontrolloni 3. Dhe kështu, kryeni aq kontrolle sa kërkohet.
  3. Me disa kushte. Gjithçka është e thjeshtë këtu. Përkthyesi kontrollon për kushte të shumta ose një prej tyre.

nëse deklaratë

Struktura e deklaratës if është e ngjashme në të gjitha gjuhët. Sidoqoftë, në Python, sintaksa e tij është disi e ndryshme nga të gjitha të tjerat:

nëse kushti:

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

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

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

Së pari, deklarohet vetë operatori, pas së cilës shkruhet gjendja në të cilën fillon të punojë. Gjendja mund të jetë ose e vërtetë ose e rreme.

Kjo pasohet nga një bllok me komanda. Nëse ai menjëherë ndjek një kriter që duhet plotësuar, atëherë sekuenca përkatëse e komandave quhet një bllok if. Ju mund të përdorni çdo numër komandash në të.

Kujdes! Indentacioni brenda komandave të bllokut të gjitha if duhet të jetë me të njëjtën madhësi. Kufijtë e bllokut përcaktohen nga indencat. 

Sipas dokumentacionit gjuhësor, dhëmbëzimi është 4 hapësira. 

Si funksionon ky operator? Kur përkthyesi sheh fjalën if, ai menjëherë kontrollon shprehjen kundrejt kritereve të përcaktuara nga përdoruesi. Nëse është kështu, atëherë ai fillon të kërkojë udhëzime dhe t'i ndjekë ato. Përndryshe, të gjitha komandat nga ky bllok janë anashkaluar.

Nëse një deklaratë pas kushtit nuk është e shënuar, ajo nuk trajtohet si një bllok if. Në situatën tonë, kjo linjë është . Prandaj, pavarësisht nga rezultati i kontrollit, kjo linjë do të ekzekutohet.

Këtu është një copë kodi për një shembull se si funksionon ky operator.

numër = int(hyrje ("Fut një numër: "))

nëse numri > 10:

    print ("Numri është më i madh se 10")

Ky program e kërkon përdoruesin për një numër dhe kontrollon nëse është më i madh se 10. Nëse po, ai kthen informacionin e duhur. Për shembull, nëse përdoruesi fut numrin 5, atëherë programi thjesht do të përfundojë, dhe kjo është ajo.

Por nëse specifikoni numrin 100, atëherë përkthyesi do të kuptojë se është më shumë se dhjetë dhe do ta raportojë atë.

Kujdes! Në rastin tonë, nëse kushti është false, programi ndalon, sepse nuk jepen komanda pas instruksionit.

Ekziston vetëm një komandë në kodin e mësipërm. Por ka shumë të tjera prej tyre. Kërkesa e vetme është futja në dhëmbë.

Tani le të analizojmë këtë sekuencë komandash.

numri = int(input ("Shkruani një numër: "))

nëse numri > 10:

    print ("rreshti i parë")

    print ("rreshti i dytë")

    printim ("rreshti i tretë")

print ("Rreshti që ekzekutohet, pavarësisht nga numri i futur")

print ("Përfundimi i aplikacionit")

Mundohuni të merrni me mend se cili do të jetë rezultati nëse futni vlerat 2, 5, 10, 15, 50.

Siç mund ta shihni, nëse numri i futur nga përdoruesi është më shumë se dhjetë, atëherë dalin tre rreshta + një me tekstin "Run çdo herë ..." dhe një "Fund", dhe nëse më pak se dhjetë, atëherë vetëm një, me një tekst ndryshe. Vetëm rreshtat 3,4,5 do të ekzekutohen nëse janë të vërteta. Megjithatë, dy rreshtat e fundit do të shkruhen pa marrë parasysh se çfarë numri specifikon përdoruesi.

Nëse i përdorni deklaratat direkt në tastierë, rezultati do të jetë i ndryshëm. Përkthyesi aktivizon menjëherë modalitetin me shumë rreshta nëse, pasi të specifikoni kriterin e verifikimit, shtypni Enter.

Supozoni se kemi shkruar sekuencën e mëposhtme të komandave.

>>>

>>> n = 100

>>> nëse n > 10:

...

Pas kësaj, do të shohim se >>> është zëvendësuar me elipsë. Kjo do të thotë se modaliteti i hyrjes me shumë linja është i aktivizuar. Me fjalë të thjeshta, nëse shtypni Enter, do të transferoheni në hyrjen e fazës së dytë të udhëzimit. 

Dhe për të dalë nga ky bllok, duhet të shtoni një ndërtim tjetër në bllok if.

>>>

>>> n = 100

>>> nëse n > 10:

… print («nv 10»)

...

Nëse kushti nuk është i vërtetë, programi përfundon. Ky është një problem, pasi përdoruesi mund ta perceptojë një program të tillë si të mbyllur për shkak të një dështimi. Prandaj, është e nevojshme t'i jepni komente përdoruesit. Për këtë, përdoret një lidhje nese Tjeter.

operatori i shprehjes nese Tjeter

Ky operator ju lejon të zbatoni një lidhje: nëse shprehja përputhet me një rregull të caktuar, kryeni këto veprime, dhe nëse jo, atëherë të tjerët. Kjo do të thotë, ju lejon të ndani rrjedhën e programit në dy rrugë. Sintaksa është intuitive:

nëse kushti:

    # nëse bllokohet

    deklarata 1

    deklarata 2

    dhe kështu me radhë

tjeter:

    # tjetër bllok

    deklarata 3

    deklarata 4

    dhe kështu me radhë:

Le të shpjegojmë se si funksionon ky operator. Së pari, deklarata standarde ekzekutohet në thread yew, duke kontrolluar nëse përputhet kusht "e vërtetë apo e gabuar". Veprimet e mëtejshme varen nga rezultatet e kontrollit. Nëse është e vërtetë, udhëzimi që është në sekuencën e udhëzimeve që ndjekin kushtin ekzekutohet drejtpërdrejt. yew, nëse është e rreme, atëherë tjetër

Në këtë mënyrë ju mund të trajtoni gabimet. Për shembull, përdoruesi duhet të fusë një rreze. Natyrisht, mund të jetë vetëm një numër me një shenjë plus, ose është një vlerë zero. Nëse është më pak se 0, atëherë duhet të lëshoni një mesazh që ju kërkon të vendosni një numër pozitiv. 

Këtu është kodi që zbaton këtë detyrë. Por këtu ka një gabim. Mundohuni të merrni me mend se cilën. 

radius = int(hyrje ("Fut rrezen: "))

nëse rrezja >= 0:

    print ("Rrethi = ", 2 * 3.14 * rreze)

    print ("Zona = ", 3.14 * rreze ** 2)

    tjeter:

        print ("Ju lutemi vendosni një numër pozitiv")

Gabim i mospërputhjes së dhëmbëzimit. Nëse dhe Tjetër duhet të vendosen pa to ose me të njëjtin numër të tyre (varësisht nëse janë të folezuar apo jo).

Le të japim një rast tjetër përdorimi (ku gjithçka do të jetë e saktë me shtrirjen e operatorit) - një element aplikacioni që kontrollon një fjalëkalim.

fjalëkalimi = hyrje ("Fut fjalëkalimin: ")

nëse fjalëkalimi == «sshh»:

    print ("Mirësevini")

tjeter:

    print ("Qasja e refuzuar")

Ky udhëzim e anashkalon më tej personin nëse fjalëkalimi është sshh. Nëse ka ndonjë kombinim tjetër shkronjash dhe numrash, atëherë shfaqet mesazhi "Qasja u refuzua".

deklaratë-shprehje nëse-elif-tjetër

Vetëm nëse disa kushte nuk janë të vërteta, deklarata që është në bllok ekzekutohet. tjetër. Kjo shprehje funksionon kështu.

nëse kushti_1:

    # nëse bllokohet

    Deklarata

    Deklarata

    më shumë deklaratë

elif kusht_2:

    # blloku i parë elif

    Deklarata

    Deklarata

    më shumë deklaratë

elif kusht_3:

    # bllok i dytë elif

    Deklarata

    Deklarata

    më shumë deklaratë

...

tjetër

    Deklarata

    Deklarata

    më shumë deklaratë

Ju mund të specifikoni çdo numër kushtesh shtesë.

Deklarata të mbivendosura

Një mënyrë tjetër për të zbatuar kushte të shumta është të futni kontrolle shtesë të kushteve në bllokun if.

operator if brenda një blloku tjetër të gjendjes

gre_score = int(input ("Fut kufirin aktual të kreditit"))

per_grad = int(input ("Fut vlerësimin tënd të kreditit: "))

nëse per_grad > 70:

    # bllok i jashtëm nëse

        nëse gre_score > 150:

            # blloqe e brendshme nëse

    print ("Urime, ju keni marrë një kredi")

tjeter:

    print ("Na falni, nuk kualifikoheni për një hua")

Ky program kryen një kontroll të vlerësimit të kreditit. Nëse është më pak se 70, programi raporton se përdoruesi nuk ka të drejtë për kredi. Nëse është më i madh, kryhet një kontroll i dytë për të parë nëse kufiri aktual i kredisë është më i madh se 150. Nëse po, atëherë shfaqet një mesazh që kredia është lëshuar.

Nëse të dyja vlerat janë false, atëherë shfaqet një mesazh që përdoruesi nuk ka mundësi të marrë një kredi. 

Tani le ta ripunojmë pak atë program.

gre_score = int(input ("Fut kufirin aktual: "))

per_grad = int(input ("Fut rezultatin e kreditit: "))

nëse per_grad > 70:

    nëse gre_score > 150:

        print ("Urime, ju keni marrë një kredi")

    tjeter:

        print ("Limiti juaj i kredisë është i ulët")

tjeter:

    print ("Na vjen keq, nuk kualifikoheni për kredi")

Vetë kodi është shumë i ngjashëm, por i mbivendosur if siguron gjithashtu një algoritëm në rast se kushti prej tij rezulton i rremë. Kjo do të thotë, kufiri në kartë është i pamjaftueshëm, por historia e kredisë është e mirë, shfaqet mesazhi "Ju keni një vlerësim të ulët krediti".

deklaratë nëse-tjetër brenda një kushti tjetër

Le të bëjmë një program tjetër që përcakton notën e një studenti në bazë të rezultateve të testit.

rezultati = int(input ("Fut rezultatin tënd: "))

nëse rezultati >= 90:

    print ("Shkëlqyeshëm! Nota juaj është A")

tjeter:

    nëse rezultati >= 80:

print ("Shkëlqyeshëm! Nota juaj është B")

    tjeter:

nëse rezultati >= 70:

    print ("Mirë! Nota juaj është C")

tjeter:

    nëse rezultati >= 60:

print ("Nota juaj është D. Ia vlen të përsërisni materialin.")

    tjeter:

print ("Ke dështuar në provim")

Aplikacioni fillimisht kontrollon për të parë nëse rezultati është më i madh ose i barabartë me 90. Nëse po, atëherë ai kthen një notë A. Nëse kjo gjendje është e rreme, atëherë kryhen kontrolle të mëvonshme. Ne shohim që algoritmi është pothuajse i njëjtë në shikim të parë. Pra, në vend që të kontrolloni brenda tjetër është më mirë të përdorni një kombinim nëse-elif-tjetër.

Pra operatori if kryen një funksion shumë të rëndësishëm – siguron që disa pjesë të kodit të ekzekutohen vetëm nëse ka nevojë për të. Është e pamundur të imagjinohet programimi pa të, sepse edhe algoritmet më të thjeshta kërkojnë pirunë si "nëse shkoni majtas, do ta gjeni, dhe nëse shkoni djathtas, atëherë duhet të bëni këtë dhe atë".

Lini një Përgjigju