Условна иф изјава у Питхон-у. Синтакса, елсе/елиф блокови, примери

У процесу учења програмирања често је потребно креирати програме које није тако лако применити у стварном животу. На крају крајева, с времена на време морате пратити упутства само под одређеним условима. Да бисте то могли да имплементирате у програм, сви језици имају контролне изјаве. Уз њихову помоћ можете контролисати ток извршавања кода, креирати петље или извршавати одређене радње само када је одређени услов тачан.

Данас ћемо говорити о изјави иф, која проверава тренутну ситуацију за одређено стање и на основу ових информација доноси одлуке о даљим акцијама.

Врсте контролних изјава

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

Постоје и петље и изјаве које контролишу процес његовог извршавања. Данас ћемо говорити само о условном оператору и ланцима у којима он може да учествује.

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

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

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

  1. Са једном граном. То јест, врши се једна провера, због чега се изводе одређене радње.
  2. Са две или више грана. Ако је критеријум 1 тачан, онда проверите критеријум 2. Ако је тачан, онда проверите 3. И тако, извршите онолико провера колико је потребно.
  3. Уз неколико услова. Овде је све једноставно. Тумач проверава више услова или један од њих.

ако изјава

Структура иф наредбе је слична на свим језицима. Међутим, у Питхон-у се његова синтакса донекле разликује од свих осталих:

ако услов:

    <веходасее виражение 1>

    <веходасее виражение 2>

<не входасее виражение>

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

Након тога следи блок са командама. Ако одмах следи критеријум који треба испунити, онда се одговарајући низ команди назива иф блоком. У њему можете користити било који број команди.

Пажња! Увлачење унутар свих иф блок команди мора бити исте величине. Границе блока су одређене увлакама. 

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

Како функционише овај оператер? Када тумач види реч иф, одмах проверава израз према критеријумима које је одредио корисник. Ако је то случај, онда почиње да тражи упутства и следи их. У супротном, све команде из овог блока се прескачу.

Ако изјава после услова није увучена, она се не третира као иф блок. У нашој ситуацији, ова линија је . Дакле, без обзира на резултат провере, ова линија ће бити извршена.

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

број = инт(инпут(“Унесите број: “))

ако је број > 10:

    принт(„Број је већи од 10“)

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

Али ако наведете број 100, онда ће тумач схватити да је више од десет, и пријавити га.

Пажња! У нашем случају, ако је услов нетачан, програм се зауставља, јер се након инструкције не дају команде.

У горњем коду постоји само једна команда. Али има их много више. Једини услов је увлачење.

Хајде сада да анализирамо овај низ команди.

број = инт(инпут(“Напиши број: “))

ако је број > 10:

    штампа („први ред“)

    принт („други ред“)

    штампа („трећи ред“)

принт(„Линија која се извршава, без обзира на унети број“)

принт(„Заврши апликацију“)

Покушајте да погодите какав ће бити излаз ако унесете вредности 2, 5, 10, 15, 50.

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

Ако користите изјаве директно у конзоли, резултат ће бити другачији. Тумач одмах укључује вишелинијски режим ако након навођења критеријума верификације притиснете Ентер.

Претпоставимо да смо написали следећи низ наредби.

>>>

>>> н = 100

>>> ако је н > 10:

...

Након тога, видећемо да је >>> замењено троточком. То значи да је режим вишелинијског уноса омогућен. Једноставним речима, ако притиснете Ентер, бићете пребачени на улаз друге фазе инструкције. 

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

>>>

>>> н = 100

>>> ако је н > 10:

… принт(«нв 10»)

...

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

оператор израза ако друго

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

ако услов:

    # иф блок

    изјава 1

    изјава 2

    и тако даље

друго:

    # елсе блок

    изјава 3

    изјава 4

    и тако даље:

Хајде да објаснимо како овај оператор функционише. Прво, стандардни исказ се извршава у нити тиса, провера да ли се поклапа стање „тачно” или „нетачно”. Даље радње зависе од резултата провере. Ако је тачно, инструкција која се налази у низу инструкција после услова се извршава директно. тиса, ако је лажно, онда друго

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

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

радијус = инт(инпут(“Унесите радијус: “))

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

    принт(“Обим = “, 2 * 3.14 * полупречник)

    принт(“Област = “, 3.14 * радијус ** 2)

    друго:

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

Грешка неподударања увлачења. Иф и Елсе морају бити лоцирани без њих или са истим бројем (у зависности од тога да ли су угнежђени или не).

Хајде да дамо још један случај употребе (где ће све бити исправно са поравнањем оператора) – елемент апликације који проверава лозинку.

лозинка = инпут(“Унесите лозинку: “)

ако лозинка == «ссхх»:

    принт („Добродошли“)

друго:

    принт(„Приступ одбијен“)

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

израз-израз ако-елиф-елсе

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

ако услов_1:

    # иф блок

    изјава

    изјава

    више изјава

елиф услов_2:

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

    изјава

    изјава

    више изјава

елиф услов_3:

    # други елиф блок

    изјава

    изјава

    више изјава

...

друго

    изјава

    изјава

    више изјава

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

Угнежђене изјаве

Други начин за имплементацију више услова је уметање додатних провера услова у блок иф.

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

гре_сцоре = инт(инпут(„Унесите тренутни кредитни лимит“))

пер_град = инт(инпут(“Унесите свој кредитни рејтинг: “))

ако је по_град > 70:

    # спољни иф блок

        ако гре_сцоре > 150:

            # унутрашњи иф блок

    принт(„Честитамо, добили сте зајам“)

друго:

    принт(„Жао нам је, не испуњавате услове за зајам“)

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

Ако су обе вредности нетачне, онда се приказује порука да корисник нема могућност добијања кредита. 

Хајде да сада мало прерадимо тај програм.

гре_сцоре = инт(инпут(“Унесите ограничење струје: “))

пер_град = инт(инпут(“Унесите кредитни резултат: “))

ако је по_град > 70:

    ако гре_сцоре > 150:

        принт(„Честитамо, добили сте зајам“)

    друго:

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

друго:

    принт(„Жао нам је, не испуњавате услове за кредит“)

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

иф-елсе изјава унутар услова друго

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

сцоре = инт(инпут(“Унесите свој резултат: “))

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

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

друго:

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

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

    друго:

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

    принт(„Добро! Ваша оцена је Ц“)

друго:

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

принт(„Ваша оцена је Д. Вреди поновити градиво.“)

    друго:

принт(“Пали сте на испиту”)

Апликација прво проверава да ли је резултат већи или једнак 90. Ако јесте, онда враћа А оцену. Ако је овај услов нетачан, онда се врше накнадне провере. Видимо да је алгоритам на први поглед скоро исти. Дакле, уместо да проверавам унутра друго боље је користити комбинацију ако-елиф-друго.

Дакле, оператер if обавља веома важну функцију – осигурава да се одређени делови кода извршавају само ако постоји потреба за тим. Немогуће је замислити програмирање без тога, јер чак и најједноставнији алгоритми захтевају виљушке попут „ако идете лево, наћи ћете га, а ако идете десно, онда морате да урадите то и то“.

Ostavite komentar