Nosacīts if paziņojums Python. Sintakse, else/elif bloki, piemēri

Mācoties programmēt, nereti nākas veidot programmas, kuras dzīvē nemaz nav tik vienkārši pielietot. Galu galā laiku pa laikam jums ir jāievēro norādījumi tikai noteiktos apstākļos. Lai to varētu ieviest programmā, visās valodās ir vadības paziņojumi. Ar to palīdzību jūs varat kontrolēt koda izpildes plūsmu, veidojot cilpas vai veicot noteiktas darbības tikai tad, ja ir patiess noteikts nosacījums.

Šodien mēs runāsim par if paziņojumu, kas pārbauda pašreizējo situāciju noteiktam stāvoklim un, pamatojoties uz šo informāciju, pieņem lēmumus par turpmākajām darbībām.

Kontroles paziņojumu veidi

Kopumā if nav vienīgais paziņojums, kas kontrolē programmas plūsmu. Kā arī viņš pats var būt kādas lielākas operatoru ķēdes sastāvdaļa.

Ir arī cilpas un paziņojumi, kas kontrolē tā izpildes procesu. Šodien mēs runāsim tikai par nosacīto operatoru un ķēdēm, kurās tas var piedalīties.

Programmēšanā ir tāda lieta kā zarošana. Tieši tas nozīmē komandu secību, kas tiek izpildīta tikai tad, ja ir izpildīts noteikts nosacījums. Paši kritēriji var atšķirties:

  1. Mainīgā vienādība ar noteiktu vērtību.
  2. Konkrētas darbības veikšana.
  3. Lietojumprogrammas stāvoklis (sakļauts vai nē).

Spektrs var būt daudz lielāks. Nosacījumu paziņojumi ir vairāku veidu:

  1. Ar vienu zaru. Tas ir, tiek veikta viena pārbaude, kuras rezultātā tiek veiktas noteiktas darbības.
  2. Ar diviem vai vairāk zariem. Ja kritērijs 1 ir patiess, tad pārbaudiet 2. kritēriju. Ja tas ir patiess, tad pārbaudiet 3. Un tā, veiciet tik daudz pārbaužu, cik nepieciešams.
  3. Ar vairākiem nosacījumiem. Šeit viss ir vienkārši. Tulks pārbauda vairākus nosacījumus vai vienu no tiem.

ja paziņojums

Ja priekšraksta struktūra ir līdzīga visās valodās. Tomēr Python tā sintakse nedaudz atšķiras no visām pārējām:

ja nosacījums:

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

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

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

Pirmkārt, tiek deklarēts pats operators, pēc kura tiek uzrakstīts nosacījums, saskaņā ar kuru tas sāk darboties. Nosacījums var būt patiess vai nepatiess.

Tam seko bloks ar komandām. Ja tas uzreiz seko kādam kritērijam, kas jāizpilda, tad atbilstošo komandu secību sauc par if bloku. Tajā varat izmantot neierobežotu skaitu komandu.

Uzmanību! Atkāpei all if bloku komandās ir jābūt vienāda izmēra. Bloku robežas nosaka atkāpes. 

Saskaņā ar valodas dokumentāciju atkāpe ir 4 atstarpes. 

Kā darbojas šis operators? Kad tulks redz ja vārdu, tas nekavējoties pārbauda izteiksmi atbilstoši lietotāja norādītajiem kritērijiem. Ja tas tā ir, tad viņš sāk meklēt norādījumus un tos ievērot. Pretējā gadījumā visas komandas no šī bloka tiek izlaistas.

Ja paziņojumā pēc nosacījuma nav atkāpes, tas netiek uzskatīts par if bloku. Mūsu situācijā šī līnija ir . Tāpēc neatkarīgi no pārbaudes rezultāta šī rinda tiks izpildīta.

Šeit ir koda fragments, kas parāda, kā šis operators darbojas.

skaitlis = int(input(“Ievadiet skaitli: “))

ja skaitlis > 10:

    drukāt (“Cipars ir lielāks par 10”)

Šī programma pieprasa lietotājam ievadīt skaitli un pārbauda, ​​vai tas ir lielāks par 10. Ja tā, tā atgriež atbilstošo informāciju. Piemēram, ja lietotājs ievada skaitli 5, programma vienkārši beigsies, un viss.

Bet, ja norādīsiet skaitli 100, tad tulks sapratīs, ka tas ir vairāk par desmit, un ziņos.

Uzmanību! Mūsu gadījumā, ja nosacījums ir nepatiess, programma apstājas, jo pēc instrukcijas netiek dotas komandas.

Iepriekš minētajā kodā ir tikai viena komanda. Bet viņu ir daudz vairāk. Vienīgā prasība ir atkāpe.

Tagad analizēsim šo komandu secību.

skaitlis = int(input(“Ierakstiet numuru: “))

ja skaitlis > 10:

    drukāt (“pirmā rinda”)

    drukāt ("otrā rinda")

    drukāt (“trešā rinda”)

print (“Rinda, kas tiek izpildīta neatkarīgi no ievadītā numura”)

drukāt (“Beigt pieteikumu”)

Mēģiniet uzminēt, kāda būs izvade, ja ievadīsit vērtības 2, 5, 10, 15, 50.

Kā redzat, ja lietotāja ievadītais skaitlis ir lielāks par desmit, tad tiek izvadītas trīs rindiņas + viena ar tekstu “Palaist katru reizi…” un viena “Beigas”, un, ja mazāk par desmit, tad tikai viena, ar cits teksts. Tiks izpildītas tikai 3,4,5., XNUMX., XNUMX. rindas, ja tā ir patiesa. Tomēr pēdējās divas rindas tiks rakstītas neatkarīgi no lietotāja norādītā numura.

Ja jūs izmantojat paziņojumus tieši konsolē, rezultāts būs atšķirīgs. Tulks nekavējoties ieslēdz vairāku rindu režīmu, ja pēc verifikācijas kritērija norādīšanas nospiež Enter.

Pieņemsim, ka esam uzrakstījuši šādu komandu secību.

>>>

>>> n = 100

>>> ja n > 10:

...

Pēc tam mēs redzēsim, ka >>> ir aizstāts ar elipsi. Tas nozīmē, ka ir iespējots daudzrindu ievades režīms. Vienkāršiem vārdiem sakot, nospiežot Enter, jūs tiksit pārsūtīts uz instrukcijas otrā posma ievadi. 

Un, lai izietu no šī bloka, blokam jāpievieno vēl viena konstrukcija if.

>>>

>>> n = 100

>>> ja n > 10:

… drukāt («nv 10»)

...

Ja nosacījums nav patiess, programma beidzas. Tā ir problēma, jo lietotājs var uztvert, ka šāda programma ir aizvērta kļūmes dēļ. Tāpēc ir nepieciešams sniegt lietotājam atsauksmes. Šim nolūkam tiek izmantota saite ja-vēl.

izteiksmes operators ja-vēl

Šis operators ļauj ieviest saiti: ja izteiksme atbilst noteiktam noteikumam, veiciet šīs darbības, un, ja nē, tad citas. Tas ir, tas ļauj sadalīt programmas plūsmu divos ceļos. Sintakse ir intuitīva:

ja nosacījums:

    # ja bloķēt

    paziņojums 1

    paziņojums 2

    un tā joprojām

cits:

    # cits bloks

    paziņojums 3

    paziņojums 4

    un tā tālāk:

Paskaidrosim, kā darbojas šis operators. Pirmkārt, pavedienā tiek izpildīts standarta paziņojums īve, pārbaudot, vai tas atbilst stāvoklis "patiesība vai meli". Turpmākās darbības ir atkarīgas no pārbaudes rezultātiem. Ja ir taisnība, instrukcija, kas atrodas instrukciju secībā, kas seko nosacījumam, tiek izpildīta tieši. īve, ja tas ir nepatiess, tad cits

Tādā veidā jūs varat rīkoties ar kļūdām. Piemēram, lietotājam ir jāievada rādiuss. Acīmredzot tas var būt tikai skaitlis ar plus zīmi vai arī nulles vērtība. Ja tas ir mazāks par 0, jums ir jāizdod ziņojums ar lūgumu ievadīt pozitīvu skaitli. 

Šeit ir kods, kas īsteno šo uzdevumu. Bet šeit ir viena kļūda. Mēģiniet uzminēt, kurš no tiem. 

rādiuss = int(input("Ievadiet rādiusu: "))

ja rādiuss >= 0:

    drukāt (“Apkārtmērs = “, 2 * 3.14 * rādiuss)

    drukāt ("Apgabals = ", 3.14 * rādiuss ** 2)

    cits:

        drukāt (“Lūdzu, ievadiet pozitīvu skaitli”)

Atkāpes neatbilstības kļūda. Ja un Citādi jāatrodas bez tiem vai ar tādu pašu skaitu (atkarībā no tā, vai tie ir ligzdoti vai nav).

Dosim vēl vienu lietošanas gadījumu (kur ar operatoru saskaņošanu viss būs pareizi) – aplikācijas elementu, kas pārbauda paroli.

parole = ievade ("Ievadiet paroli: ")

ja parole == «sshh»:

    drukāt (“Laipni lūdzam”)

cits:

    drukāt (“Piekļuve liegta”)

Šī instrukcija izlaiž personu tālāk, ja parole ir sshh. Ja ir kāda cita burtu un ciparu kombinācija, tiek parādīts ziņojums “Piekļuve liegta”.

apgalvojums-izteiksme if-elif-cits

Tikai tad, ja vairāki nosacījumi nav patiesi, tiek izpildīts blokā esošais paziņojums. cits. Šis izteiciens darbojas šādi.

ja nosacījums_1:

    # ja bloķēt

    paziņojums

    paziņojums

    vairāk paziņojumu

elif nosacījums_2:

    # pirmais elfa bloks

    paziņojums

    paziņojums

    vairāk paziņojumu

elif nosacījums_3:

    # otrais elfa bloks

    paziņojums

    paziņojums

    vairāk paziņojumu

...

cits

    paziņojums

    paziņojums

    vairāk paziņojumu

Varat norādīt jebkuru papildu nosacījumu skaitu.

Ligzdotie paziņojumi

Vēl viens veids, kā ieviest vairākus nosacījumus, ir ievietot papildu nosacījumu pārbaudes blokā if.

operators if cita nosacījumu bloka iekšpusē

gre_score = int(input(“Ievadiet savu pašreizējo kredītlimitu”)

per_grad = int(input("Ievadiet savu kredītreitingu: "))

ja per_grad > 70:

    # ārējais ja bloks

        ja gre_score > 150:

            # iekšējais ja bloks

    drukāt (“Apsveicam, jūs esat saņēmis aizdevumu”)

cits:

    drukāt ("Atvainojiet, jūs nevarat saņemt aizdevumu")

Šī programma veic kredītreitinga pārbaudi. Ja tas ir mazāks par 70, programma ziņo, ka lietotājs nav tiesīgs saņemt kredītu. Ja tas ir lielāks, tiek veikta otrreizēja pārbaude, vai pašreizējais kredītlimits ir lielāks par 150. Ja jā, tad tiek parādīts ziņojums, ka kredīts ir izsniegts.

Ja abas vērtības ir nepatiesas, tiek parādīts ziņojums, ka lietotājam nav iespējas saņemt aizdevumu. 

Tagad nedaudz pārstrādāsim šo programmu.

gre_score = int(input("Ievadiet pašreizējo ierobežojumu: "))

per_grad = int(input("Ievadiet kredītreitingu: "))

ja per_grad > 70:

    ja gre_score > 150:

        drukāt (“Apsveicam, jūs esat saņēmis aizdevumu”)

    cits:

        drukāt (“Jūsu kredītlimits ir zems”)

cits:

    drukāt (“Atvainojiet, jūs nevarat saņemt kredītu”)

Pats kods ir ļoti līdzīgs, bet ligzdots if nodrošina arī algoritmu, ja nosacījums no tā izrādās nepatiess. Tas ir, kartes limits ir nepietiekams, bet kredītvēsture ir laba, tiek parādīts ziņojums “Jums ir zems kredītreitings”.

if-else paziņojums nosacījuma ietvaros cits

Izveidosim vēl vienu programmu, kas nosaka skolēna atzīmi, pamatojoties uz pārbaudes darbu rezultātiem.

rezultāts = int(input("Ievadiet savu rezultātu: "))

ja rezultāts >= 90:

    drukāt ("Lieliski! Jūsu atzīme ir A")

cits:

    ja rezultāts >= 80:

drukāt ("Lieliski! Jūsu atzīme ir B")

    cits:

ja rezultāts >= 70:

    drukāt ("Labi! Jūsu atzīme ir C")

cits:

    ja rezultāts >= 60:

drukāt ("Jūsu atzīme ir D. Ir vērts atkārtot materiālu.")

    cits:

drukāt (“Jūs neizturējāt eksāmenu”)

Lietojumprogramma vispirms pārbauda, ​​vai rezultāts ir lielāks vai vienāds ar 90. Ja jā, tad tā atgriež A atzīmi. Ja šis nosacījums ir nepatiess, tiek veiktas turpmākas pārbaudes. Mēs redzam, ka no pirmā acu uzmetiena algoritms ir gandrīz vienāds. Tāpēc tā vietā, lai pārbaudītu iekšpusi cits labāk izmantot kombināciju ja-elif-cits.

Tātad operators if veic ļoti svarīgu funkciju – nodrošina, ka noteiktas koda daļas tiek izpildītas tikai nepieciešamības gadījumā. Nav iespējams iedomāties programmēšanu bez tā, jo pat visvienkāršākajiem algoritmiem ir vajadzīgas dakšiņas, piemēram, “ja ej pa kreisi, tad to atradīsi, un, ja ej pa labi, tad jādara tas un tas”.

Atstāj atbildi