Условна if изјава во Python. Синтакса, друго/елиф блокови, примери

Во процесот на учење да програмирате, често е неопходно да се креираат програми кои не се толку лесни за примена во реалниот живот. На крајот на краиштата, од време на време треба да ги следите упатствата само под одредени услови. За да може да се имплементира ова во програмата, сите јазици имаат контролни изјави. Со нивна помош, можете да го контролирате текот на извршувањето на кодот, создавајќи јамки или изведувајќи одредени дејства само кога одредена состојба е точна.

Денеска ќе зборуваме за изјавата if, која ја проверува моменталната состојба за одредена состојба и врз основа на овие информации донесува одлуки за понатамошни дејствија.

Видови контролни изјави

Во принцип, if не е единствената изјава што го контролира текот на програмата. Како и тој самиот може да биде компонента на поголем синџир на оператори.

Исто така, постојат циклуси и изјави кои го контролираат процесот на неговото извршување. Денес ќе зборуваме само за условниот оператор и синџирите во кои може да учествува.

Во програмирањето постои такво нешто како разгранување. Токму тоа значи низа наредби што се извршуваат само ако одреден услов е вистинит. Самите критериуми може да бидат различни:

  1. Еднаквост на променлива до одредена вредност.
  2. Изведување на одредена акција.
  3. Состојба на апликација (склопена или не).

Спектарот може да биде многу поголем. Условните изјави доаѓаат во неколку видови:

  1. Со една гранка. Тоа е, се врши единечна проверка, како резултат на која се вршат одредени дејства.
  2. Со две или повеќе гранки. Ако критериумот 1 е вистинит, тогаш проверете го критериумот 2. Ако е вистинит, тогаш проверете 3. И така, извршете онолку проверки колку што е потребно.
  3. Со неколку услови. Сè е едноставно овде. Преведувачот проверува повеќе услови или еден од нив.

ако изјава

Структурата на исказот if е слична на сите јазици. Меѓутоа, во Пајтон, неговата синтакса е малку поинаква од сите други:

ако услов:

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

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

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

Прво се декларира самиот оператор, по што се запишува условот под кој почнува да работи. Состојбата може да биде или вистинита или лажна.

Ова е проследено со блок со команди. Ако веднаш следи некој критериум што треба да се исполни, тогаш соодветната низа на команди се нарекува блок if. Можете да користите било кој број на команди во него.

Внимание! Вовлекувањето во командите на сите ако блокови мора да биде со иста големина. Границите на блокот се одредуваат со алинеја. 

Според јазичната документација, вовлекувањето е 4 празни места. 

Како работи овој оператор? Кога толкувачот го гледа зборот if, веднаш го проверува изразот според критериумите одредени од корисникот. Ако е така, тогаш тој почнува да бара инструкции и да ги следи. Во спротивно, сите команди од овој блок се прескокнуваат.

Ако изјавата по условот не е вовлечена, таа не се третира како блок ако. Во нашата ситуација, оваа линија е . Затоа, без оглед на резултатот од проверката, оваа линија ќе се изврши.

Еве фрагмент од код за пример за тоа како функционира овој оператор.

број = int(влез („Внесете број:“))

ако број > 10:

    печатење („Бројот е поголем од 10“)

Оваа програма го поттикнува корисникот за број и проверува дали е поголем од 10. Ако е така, ги враќа соодветните информации. На пример, ако корисникот го внесе бројот 5, тогаш програмата едноставно ќе заврши, и тоа е тоа.

Но, ако го наведете бројот 100, тогаш преведувачот ќе разбере дека е повеќе од десет и ќе го пријави.

Внимание! Во нашиот случај, ако условот е неточен, програмата запира, бидејќи по инструкцијата не се даваат команди.

Има само една команда во горниот код. Но, има многу повеќе од нив. Единствениот услов е вовлекување.

Сега да ја анализираме оваа низа на команди.

број = int(влез („Напиши број:“))

ако број > 10:

    печатење („прв ред“)

    печатење („втор ред“)

    печатење („трета линија“)

печатење („Линијата што се извршува, без оглед на внесениот број“)

печатење („Крајна апликација“)

Обидете се да погодите каков ќе биде излезот ако ги внесете вредностите 2, 5, 10, 15, 50.

Како што можете да видите, ако бројот што го внесе корисникот е повеќе од десет, тогаш излегуваат три линии + една со текст „Стартувај секој пат…“ и една „Крај“, а ако е помал од десет, тогаш само една, со различен текст. Само линиите 3,4,5 ќе се извршат ако е точно. Сепак, последните два реда ќе бидат напишани без разлика кој број ќе го наведе корисникот.

Ако ги користите изјавите директно во конзолата, резултатот ќе биде различен. Преведувачот веднаш го вклучува режимот на повеќе линии ако, откако ќе го наведете критериумот за верификација, притиснете Enter.

Да претпоставиме дека ја напишавме следната низа наредби.

>>>

>>> n = 100

>>> ако n > 10:

...

После тоа, ќе видиме дека >>> е заменето со елипса. Ова значи дека е овозможен режимот за повеќелиниско внесување. Со едноставни зборови, ако притиснете Enter, ќе бидете префрлени на влезот од втората фаза од инструкцијата. 

И за да излезете од овој блок, треба да додадете уште една конструкција на блокот if.

>>>

>>> n = 100

>>> ако n > 10:

… печатење («nv 10»)

...

Ако условот не е точен, програмата завршува. Ова е проблем, бидејќи корисникот може да сфати дека таквата програма е затворена поради дефект. Затоа, неопходно е да се даде повратна информација до корисникот. За ова се користи врска ако-друго.

оператор на изразување ако-друго

Овој оператор ви овозможува да имплементирате врска: ако изразот одговара на одредено правило, извршете ги овие дејства, а ако не, тогаш други. Тоа е, ви овозможува да го поделите текот на програмата на два патишта. Синтаксата е интуитивна:

ако услов:

    # ако блокира

    изјава 1

    изјава 2

    и така натаму

друго:

    # друго блокирање

    изјава 3

    изјава 4

    и така натаму:

Ајде да објасниме како функционира овој оператор. Прво, стандардната изјава се извршува во нишката Тис, проверка дали се совпаѓа состојба "точно или неточно". Понатамошните активности зависат од резултатите од проверката. Ако е точно, инструкцијата што е во низата инструкции по условот се извршува директно. Тис, ако е лажно, тогаш друго

На овој начин можете да се справите со грешките. На пример, корисникот треба да внесе радиус. Очигледно, тоа може да биде само број со знак плус, или тоа е нула вредност. Ако е помало од 0, тогаш треба да издадете порака со барање да внесете позитивен број. 

Еве го кодот што ја спроведува оваа задача. Но, тука има една грешка. Обидете се да погодите која. 

радиус = int(влез („Внесете радиус:“))

ако радиусот >= 0:

    печатење („Круг =“, 2 * 3.14 * радиус)

    печатење („Површина =“, 3.14 * радиус ** 2)

    друго:

        печатење („Внесете позитивен број“)

Грешка во несовпаѓање на вовлекување. Ако и друго мора да се наоѓа без нив или со ист број од нив (во зависност од тоа дали се вгнездени или не).

Ајде да дадеме друг случај на употреба (каде што сè ќе биде точно со порамнувањето на операторот) - елемент на апликацијата што проверува лозинка.

лозинка = внес („Внесете лозинка:“)

ако лозинка == «sshh»:

    печатење („Добредојдовте“)

друго:

    печатење („Пристапот е одбиен“)

Оваа инструкција дополнително го прескокнува лицето ако лозинката е sshh. Ако било која друга комбинација на букви и бројки, тогаш се прикажува пораката „Пристапот е одбиен“.

исказ-израз ако-елиф-друго

Само ако неколку услови не се точни, исказот што е во блокот се извршува. друго. Овој израз функционира вака.

ако услов_1:

    # ако блокира

    изјава

    изјава

    повеќе изјава

elif услов_2:

    # прв елиф блок

    изјава

    изјава

    повеќе изјава

elif услов_3:

    # втор елиф блок

    изјава

    изјава

    повеќе изјава

...

друго

    изјава

    изјава

    повеќе изјава

Можете да наведете кој било број дополнителни услови.

Вгнездени изјави

Друг начин да се имплементираат повеќе услови е да се вметнат дополнителни проверки на состојби во блокот if.

Оператор if внатре во друг блок за состојби

gre_score = int(влез („Внесете го вашиот тековен кредитен лимит“))

per_grad = int(влез („Внесете го вашиот кредитен рејтинг:“))

ако per_grad > 70:

    # надворешен ако блок

        ако gre_score > 150:

            # внатрешен ако блок

    печатење („Честитки, добивте заем“)

друго:

    печатење („За жал, не ги исполнувате условите за заем“)

Оваа програма врши проверка на кредитниот рејтинг. Ако е помал од 70, програмата известува дека корисникот не е подобен за кредит. Доколку е поголем, се врши втора проверка за да се види дали моменталниот кредитен лимит е поголем од 150. Ако да, тогаш се прикажува порака дека заемот е издаден.

Ако двете вредности се лажни, тогаш се прикажува порака дека корисникот нема можност да добие заем. 

Сега да ја преработиме таа програма малку.

gre_score = int(влез („Внеси тековно ограничување:“))

per_grad = int(влез („Внеси кредитен резултат:“))

ако per_grad > 70:

    ако gre_score > 150:

        печатење („Честитки, добивте заем“)

    друго:

        печатење („Вашиот кредитен лимит е низок“)

друго:

    печатење („За жал, не ги исполнувате условите за кредит“)

Самиот код е многу сличен, но вгнезден if обезбедува и алгоритам во случај условот од него да се покаже дека е лажен. Односно, лимитот на картичката е недоволен, но кредитната историја е добра, се прикажува пораката „Имате низок кредитен рејтинг“.

ако-друго изјава во состојба друго

Ајде да направиме друга програма која ја одредува оценката на ученикот врз основа на резултатите од тестовите.

резултат = int(влез („Внесете го вашиот резултат:“))

ако резултатот >= 90:

    печатење („Одлично! Вашата оценка е А“)

друго:

    ако резултатот >= 80:

печатење („Одлично! Вашата оценка е Б“)

    друго:

ако резултатот >= 70:

    печатење („Добро! Вашата оценка е В“)

друго:

    ако резултатот >= 60:

печатење („Вашата оценка е Д. Вреди да се повтори материјалот.“)

    друго:

печатење („Ти падна на испитот“)

Апликацијата прво проверува дали резултатот е поголем или еднаков на 90. Ако да, тогаш враќа оценка А. Ако оваа состојба е лажна, тогаш се вршат последователни проверки. Гледаме дека алгоритмот е речиси ист на прв поглед. Така, наместо да проверувате внатре друго подобро е да користите комбинација ако-елиф-друго.

Значи операторот if врши многу важна функција - обезбедува одредени делови од кодот да се извршуваат само ако има потреба од тоа. Невозможно е да се замисли програмирање без него, бидејќи дури и наједноставните алгоритми бараат вилушки како „ако одите налево, ќе го најдете, а ако одите надесно, тогаш треба да го направите ова и тоа“.

Оставете Одговор