Dikjarazzjoni jekk kondizzjonali f'Python. Sintassi, blokki inkella/elif, eżempji

Fil-proċess tat-tagħlim tal-programm, ħafna drabi huwa meħtieġ li jinħolqu programmi li mhumiex daqshekk faċli biex jiġu applikati fil-ħajja reali. Wara kollox, minn żmien għal żmien trid issegwi l-istruzzjonijiet biss taħt ċerti kundizzjonijiet. Biex tkun tista 'timplimenta dan fil-programm, il-lingwi kollha għandhom dikjarazzjonijiet ta' kontroll. Bl-għajnuna tagħhom, tista 'tikkontrolla l-fluss tal-eżekuzzjoni tal-kodiċi, toħloq loops jew twettaq ċerti azzjonijiet biss meta ċerta kundizzjoni tkun vera.

Illum se nitkellmu dwar id-dikjarazzjoni if, li tiċċekkja s-sitwazzjoni attwali għal ċerta kundizzjoni, u bbażata fuq din l-informazzjoni, tieħu deċiżjonijiet dwar azzjonijiet ulterjuri.

Tipi ta' Dikjarazzjonijiet ta' Kontroll

B'mod ġenerali, jekk mhix l-unika dikjarazzjoni li tikkontrolla l-fluss ta 'programm. Kif ukoll hu stess jista 'jkun komponent ta' katina akbar ta 'operaturi.

Hemm ukoll loops u dikjarazzjonijiet li jikkontrollaw il-proċess tal-eżekuzzjoni tiegħu. Illum se nitkellmu biss dwar l-operatur kundizzjonali u l-ktajjen li jista 'jipparteċipa fihom.

Fl-ipprogrammar, hemm ħaġa bħal fergħat. Huwa preċiżament dan li jfisser sekwenza ta 'kmandi li tiġi esegwita biss jekk ċerta kundizzjoni hija vera. Il-kriterji nfushom jistgħu jkunu differenti:

  1. Ugwaljanza ta' varjabbli għal ċertu valur.
  2. Twettaq azzjoni speċifika.
  3. Stat tal-applikazzjoni (imġarraf jew le).

L-ispettru jista 'jkun ħafna akbar. Dikjarazzjonijiet kundizzjonali jiġu f'diversi tipi:

  1. B'fergħa waħda. Jiġifieri, titwettaq verifika waħda, li b'riżultat tagħha jitwettqu ċerti azzjonijiet.
  2. B'żewġ fergħat jew aktar. Jekk il-kriterju 1 huwa veru, imbagħad iċċekkja l-kriterju 2. Jekk huwa veru, imbagħad iċċekkja 3. U għalhekk, wettaq kemm kontrolli kif meħtieġ.
  3. B'diversi kundizzjonijiet. Kollox huwa sempliċi hawn. L-interpretu jiċċekkja għal kundizzjonijiet multipli jew waħda minnhom.

dikjarazzjoni jekk

L-istruttura tad-dikjarazzjoni if ​​hija simili fil-lingwi kollha. Madankollu, f'Python, is-sintassi tagħha hija kemmxejn differenti mill-oħrajn kollha:

jekk kundizzjoni:

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

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

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

L-ewwel, l-operatur innifsu huwa ddikjarat, u wara tinkiteb il-kundizzjoni li taħtha jibda jaħdem. Il-kundizzjoni tista' tkun vera jew falza.

Dan huwa segwit minn blokk bi kmandi. Jekk immedjatament issegwi kriterju li jrid jintlaħaq, allura s-sekwenza korrispondenti ta 'kmandi tissejjaħ blokka if. Tista 'tuża kwalunkwe numru ta' kmandi fiha.

Attenzjoni! L-indentazzjoni fi ħdan il-kmandi kollha tal-ifblokk irid ikun tal-istess daqs. Il-konfini tal-blokki huma determinati mill-inċiżi. 

Skont id-dokumentazzjoni tal-lingwa, l-indentazzjoni hija 4 spazji. 

Kif jaħdem dan l-operatur? Meta l-interpretu jara l-kelma if, immedjatament jiċċekkja l-espressjoni kontra l-kriterji speċifikati mill-utent. Jekk dan huwa l-każ, allura jibda jfittex istruzzjonijiet u jsegwihom. Inkella, il-kmandi kollha minn dan il-blokk jinqabżu.

Jekk dikjarazzjoni wara l-kundizzjoni ma tkunx indentata, ma tiġix ittrattata bħala blokka if. Fis-sitwazzjoni tagħna, din il-linja hija . Għalhekk, irrispettivament mir-riżultat tal-kontroll, din il-linja se tiġi esegwita.

Hawnhekk hawn snippet ta' kodiċi għal eżempju ta' kif jaħdem dan l-operatur.

numru = int(input ("Daħħal numru: "))

jekk in-numru > 10:

    print ("In-numru huwa akbar minn 10")

Dan il-programm iħeġġeġ lill-utent għal numru u jiċċekkja jekk huwiex akbar minn 10. Jekk iva, jirritorna l-informazzjoni xierqa. Per eżempju, jekk l-utent idaħħal in-numru 5, allura l-programm se jispiċċa sempliċement, u dak hu.

Imma jekk tispeċifika n-numru 100, allura l-interpretu jifhem li huwa aktar minn għaxra, u jirrapporta.

Attenzjoni! Fil-każ tagħna, jekk il-kundizzjoni hija falza, il-programm jieqaf, minħabba li l-ebda kmandi ma jingħataw wara l-istruzzjoni.

Hemm kmand wieħed biss fil-kodiċi ta 'hawn fuq. Iżda hemm ħafna aktar minnhom. L-uniku rekwiżit huwa l-indent.

Issa ejja janalizzaw din is-sekwenza ta 'kmandi.

numru = int(input ("Ikteb numru: "))

jekk in-numru > 10:

    print ("l-ewwel linja")

    print ("it-tieni linja")

    print ("it-tielet linja")

print ("Il-linja li tiġi esegwita, irrispettivament min-numru mdaħħal")

print ("Tmiem l-applikazzjoni")

Ipprova aqta x'se jkun l-output jekk iddaħħal il-valuri 2, 5, 10, 15, 50.

Kif tistgħu taraw, jekk in-numru mdaħħal mill-utent ikun aktar minn għaxra, allura jinħarġu tliet linji + waħda bit-test "Mexxi kull darba ..." u waħda "Tmiem", u jekk inqas minn għaxra, allura waħda biss, b' test differenti. Il-linji 3,4,5 biss se jiġu esegwiti jekk vera. Madankollu, l-aħħar żewġ linji se jinkitbu irrispettivament minn liema numru jispeċifika l-utent.

Jekk tuża d-dikjarazzjonijiet direttament fil-console, ir-riżultat ikun differenti. L-interpretu immedjatament jixgħel il-modalità multi-line jekk, wara li jispeċifika l-kriterju tal-verifika, agħfas Enter.

Ejja ngħidu li ktibna s-sekwenza ta 'kmandi li ġejja.

>>>

>>> n = 100

>>> jekk n > 10:

...

Wara dan, naraw li >>> ġie mibdul b'ellipsis. Dan ifisser li l-modalità tad-dħul multiline hija attivata. Fi kliem sempliċi, jekk tagħfas Enter, inti tkun trasferit għall-input tat-tieni stadju tal-istruzzjoni. 

U sabiex toħroġ minn dan il-blokk, għandek bżonn iżżid kostruzzjoni oħra mal-blokk if.

>>>

>>> n = 100

>>> jekk n > 10:

… print(«nv 10»)

...

Jekk il-kundizzjoni mhix vera, il-programm jintemm. Din hija problema, peress li l-utent jista' jipperċepixxi tali programm bħala li għalaq minħabba falliment. Għalhekk, huwa meħtieġ li tingħata feedback lill-utent. Għal dan, tintuża link jekk-inkella.

operatur tal-espressjoni jekk-inkella

Dan l-operatur jippermettilek li timplimenta link: jekk l-espressjoni taqbel ma 'ċerta regola, wettaq dawn l-azzjonijiet, u jekk le, allura oħrajn. Jiġifieri, jippermettilek taqsam il-fluss tal-programm f'żewġ toroq. Is-sintassi hija intuwittiva:

jekk kundizzjoni:

    # jekk jimblokka

    stqarrija 1

    stqarrija 2

    u l-bqija

inkella:

    # inkella blokk

    stqarrija 3

    stqarrija 4

    u l-bqija:

Ejja nispjegaw kif jaħdem dan l-operatur. L-ewwel, id-dikjarazzjoni standard hija esegwita fil-ħajta yew, jiċċekkja jekk jaqbilx kondizzjoni "veru jew FALZ". Azzjonijiet ulterjuri jiddependu fuq ir-riżultati tal-kontroll. Jekk vera, l-istruzzjoni li tinsab fis-sekwenza ta' struzzjonijiet wara l-kundizzjoni tiġi esegwita direttament. yew, jekk huwa falz, allura inkella

B'dan il-mod tista 'timmaniġġja l-iżbalji. Per eżempju, l-utent jeħtieġ li jidħol raġġ. Ovvjament, jista 'jkun biss numru b'sinjal plus, jew huwa valur null. Jekk huwa inqas minn 0, allura trid toħroġ messaġġ li jitlob li ddaħħal numru pożittiv. 

Hawn hu l-kodiċi li jimplimenta dan il-kompitu. Imma hawn żball wieħed. Ipprova raden liema waħda. 

raġġ = int(input ("Daħħal ir-raġġ: "))

jekk ir-raġġ >= 0:

    print("Ċirkonferenza = ", 2 * 3.14 * raġġ)

    print(“Żona = “, 3.14 * raġġ ** 2)

    inkella:

        print ("Jekk jogħġbok daħħal numru pożittiv")

Żball ta' nuqqas ta' tqabbil tal-indentazzjoni. Jekk и Inkella għandhom ikunu lokalizzati mingħajrhom jew bl-istess numru minnhom (skond jekk humiex ibejjed jew le).

Ejja nagħtu każ ta' użu ieħor (fejn kollox ikun korrett bl-allinjament tal-operatur) – element tal-applikazzjoni li jiċċekkja password.

password = input ("Daħħal il-password: ")

jekk password == «sshh»:

    print("Merħba")

inkella:

    print ("Aċċess miċħud")

Din l-istruzzjoni taqbeż lill-persuna aktar jekk il-password hija sshh. Jekk xi kombinazzjoni oħra ta 'ittri u numri, allura juri l-messaġġ "Aċċess miċħud".

dikjarazzjoni-espressjoni jekk-elif-ieħor

Biss jekk diversi kundizzjonijiet ma jkunux veri, id-dikjarazzjoni li tinsab fil-blokk tiġi esegwita. inkella. Din l-espressjoni taħdem hekk.

jekk kondizzjoni_1:

    # jekk jimblokka

    dikjarazzjoni

    dikjarazzjoni

    aktar dikjarazzjoni

elif condition_2:

    # l-ewwel blokk elif

    dikjarazzjoni

    dikjarazzjoni

    aktar dikjarazzjoni

elif condition_3:

    # it-tieni blokk elif

    dikjarazzjoni

    dikjarazzjoni

    aktar dikjarazzjoni

...

inkella

    dikjarazzjoni

    dikjarazzjoni

    aktar dikjarazzjoni

Tista' tispeċifika kull numru ta' kundizzjonijiet addizzjonali.

Dikjarazzjonijiet nested

Mod ieħor biex jiġu implimentati kundizzjonijiet multipli huwa li tiddaħħal kontrolli tal-kundizzjoni addizzjonali fil-blokk if.

operatur if ġewwa blokka ta’ kundizzjoni oħra

gre_score = int(input ("Daħħal il-limitu tal-kreditu attwali tiegħek"))

per_grad = int(input ("Daħħal il-klassifikazzjoni tal-kreditu tiegħek: "))

jekk per_grad > 70:

    # barra jekk blokk

        jekk gre_score > 150:

            # ġewwa jekk blokk

    print("Prosit, irċevejt self")

inkella:

    print("Skużani, m'intix eliġibbli għal self")

Dan il-programm ma jwettaq kontroll tal-klassifikazzjoni tal-kreditu. Jekk huwa inqas minn 70, il-programm jirrapporta li l-utent mhux eliġibbli għall-kreditu. Jekk ikun akbar, issir it-tieni verifika biex tara jekk il-limitu tal-kreditu attwali huwiex akbar minn 150. Jekk iva, allura jintwera messaġġ li s-self ikun inħareġ.

Jekk iż-żewġ valuri huma foloz, allura jintwera messaġġ li l-utent m'għandux il-possibbiltà li jikseb self. 

Issa ejja naħdmu mill-ġdid dak il-programm daqsxejn.

gre_score = int(input ("Daħħal il-limitu kurrenti: "))

per_grad = int(input ("Daħħal il-punteġġ tal-kreditu: "))

jekk per_grad > 70:

    jekk gre_score > 150:

        print("Prosit, irċevejt self")

    inkella:

        print ("Il-limitu tal-kreditu tiegħek huwa baxx")

inkella:

    print("Skużani, m'intix eliġibbli għall-kreditu")

Il-kodiċi innifsu huwa simili ħafna, iżda nested if jipprovdi wkoll algoritmu f'każ li l-kundizzjoni minnha tirriżulta li tkun falza. Jiġifieri, il-limitu fuq il-karta mhuwiex biżżejjed, iżda l-istorja tal-kreditu hija tajba, jintwera l-messaġġ "Għandek klassifikazzjoni tal-kreditu baxxa".

Dikjarazzjoni jekk inkella ġewwa kundizzjoni inkella

Ejja nagħmlu programm ieħor li jiddetermina l-grad ta 'student ibbażat fuq il-punteġġi tat-test.

punteġġ = int(input ("Daħħal il-punteġġ tiegħek: "))

jekk punteġġ >= 90:

    print("Kbir! Il-grad tiegħek huwa A")

inkella:

    jekk punteġġ >= 80:

print("Kbir! Il-grad tiegħek huwa B")

    inkella:

jekk punteġġ >= 70:

    print ("Tajjeb! Il-grad tiegħek huwa C")

inkella:

    jekk punteġġ >= 60:

print ("Il-grad tiegħek huwa D. Ta' min jirrepeti l-materjal.")

    inkella:

print ("Int fallejt l-eżami")

L-applikazzjoni l-ewwel tiċċekkja biex tara jekk il-punteġġ huwiex akbar minn jew ugwali għal 90. Jekk iva, allura tagħti grad A. Jekk din il-kundizzjoni hija falza, allura jsiru kontrolli sussegwenti. Naraw li l-algoritmu huwa kważi l-istess mal-ewwel daqqa t'għajn. Allura minflok iċċekkja ġewwa inkella aħjar li tuża kombinazzjoni jekk-elif-ieħor.

Allura l-operatur if twettaq funzjoni importanti ħafna - tiżgura li ċerti biċċiet ta 'kodiċi jiġu esegwiti biss jekk ikun hemm bżonnha. Huwa impossibbli li wieħed jimmaġina l-ipprogrammar mingħajrha, għaliex anke l-algoritmi l-aktar sempliċi jeħtieġu frieket bħal "jekk tmur lejn ix-xellug, issibha, u jekk tmur lejn il-lemin, imbagħad trid tagħmel dan u dak."

Ħalli Irrispondi