Условен оператор if в Python. Синтаксис, else/elif блокове, примери

В процеса на обучение за програмиране често се налага да се създават програми, които не са толкова лесни за прилагане в реалния живот. В крайна сметка, от време на време трябва да следвате инструкциите само при определени условия. За да можете да приложите това в програмата, всички езици имат контролни изрази. С тяхна помощ можете да контролирате потока на изпълнение на кода, създавайки цикли или извършвайки определени действия само когато определено условие е вярно.

Днес ще говорим за оператора if, който проверява текущата ситуация за определено условие и въз основа на тази информация взема решения за по-нататъшни действия.

Видове контролни отчети

Като цяло, if не е единственият оператор, който контролира потока на програмата. Както и той самият може да бъде компонент на по-голяма верига от оператори.

Има и цикли и инструкции, които контролират процеса на неговото изпълнение. Днес ще говорим само за условния оператор и веригите, в които той може да участва.

В програмирането има такова нещо като разклоняване. Именно това означава поредица от команди, която се изпълнява само ако е изпълнено определено условие. Самите критерии могат да бъдат различни:

  1. Равенство на променлива на определена стойност.
  2. Извършване на конкретно действие.
  3. Състояние на приложението (свито или не).

Спектърът може да бъде много по-голям. Условните изрази се предлагат в няколко вида:

  1. С един клон. Тоест извършва се една проверка, в резултат на която се извършват определени действия.
  2. С две или повече разклонения. Ако критерий 1 е верен, проверете критерий 2. Ако е верен, проверете 3. И така, извършете толкова проверки, колкото се изисква.
  3. С няколко условия. Тук всичко е просто. Интерпретаторът проверява за множество условия или едно от тях.

if изявление

Структурата на оператора if е сходна във всички езици. В Python обаче неговият синтаксис е малко по-различен от всички останали:

ако условие:

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

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

<не намирающееся выражение>

Първо се декларира самия оператор, след което се изписва условието, при което започва да работи. Условието може да бъде вярно или невярно.

Това е последвано от блок с команди. Ако непосредствено следва критерий, който трябва да бъде изпълнен, тогава съответната последователност от команди се нарича if блок. Можете да използвате произволен брой команди в него.

Внимание! Отстъпът във всички блокови команди if трябва да бъде с еднакъв размер. Границите на блока се определят от отстъпите. 

Според езиковата документация отстъпът е 4 интервала. 

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

Ако оператор след условието няма отстъп, той не се третира като if блок. В нашата ситуация тази линия е . Следователно, независимо от резултата от проверката, този ред ще бъде изпълнен.

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

номер = int(вход(“Въведете число: “))

ако числото е > 10:

    print("Числото е по-голямо от 10")

Тази програма подканва потребителя за число и проверява дали е по-голямо от 10. Ако е така, тя връща подходящата информация. Например, ако потребителят въведе числото 5, тогава програмата просто ще приключи и това е всичко.

Но ако посочите числото 100, тогава преводачът ще разбере, че е повече от десет, и ще го докладва.

Внимание! В нашия случай, ако условието е невярно, програмата спира, тъй като не се подават команди след инструкцията.

В горния код има само една команда. Но те са много повече. Единственото изискване е да има отстъп.

Сега нека анализираме тази последователност от команди.

число = int(вход(“Напишете число: “))

ако числото е > 10:

    печат ("първи ред")

    печат ("втори ред")

    печат ("трети ред")

print(“Редът, който се изпълнява, независимо от въведения номер”)

print(“Край на приложението”)

Опитайте се да познаете какъв ще бъде резултатът, ако въведете стойностите 2, 5, 10, 15, 50.

Както можете да видите, ако числото, въведено от потребителя, е повече от десет, тогава се извеждат три реда + един с текст „Изпълни всеки път …“ и един „Край“, а ако е по-малко от десет, тогава само един, с различен текст. Само редове 3,4,5 ще бъдат изпълнени, ако е true. Последните два реда обаче ще бъдат написани, независимо какъв номер посочи потребителят.

Ако използвате изразите директно в конзолата, резултатът ще бъде различен. Преводачът незабавно включва многоредовия режим, ако след посочване на критерия за проверка натиснете Enter.

Да предположим, че сме написали следната последователност от команди.

>>>

>>> n = 100

>>> ако n > 10:

...

След това ще видим, че >>> е заменено с многоточие. Това означава, че многоредовият режим на въвеждане е активиран. С прости думи, ако натиснете Enter, ще бъдете прехвърлени към входа на втория етап на инструкцията. 

И за да излезете от този блок, трябва да добавите още една конструкция към блока if.

>>>

>>> n = 100

>>> ако n > 10:

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

...

Ако условието не е вярно, програмата приключва. Това е проблем, тъй като потребителят може да възприеме такава програма като затворена поради повреда. Следователно е необходимо да се даде обратна връзка на потребителя. За целта се използва връзка ако-друго.

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

Този оператор ви позволява да реализирате връзка: ако изразът съответства на определено правило, изпълнете тези действия, а ако не, тогава други. Това означава, че ви позволява да разделите потока на програмата на два пътя. Синтаксисът е интуитивен:

ако условие:

    # ако блокира

    твърдение 1

    твърдение 2

    и така нататък

друго:

    # друг блок

    твърдение 3

    твърдение 4

    и така нататък:

Нека обясним как работи този оператор. Първо, стандартният оператор се изпълнява в нишката тис, проверка дали съвпада състояние "истина или лъжа". По-нататъшните действия зависят от резултатите от проверката. Ако е вярно, инструкцията, която е в последователността от инструкции след условието, се изпълнява директно. тис, ако е невярно, тогава още

По този начин можете да се справите с грешките. Например, потребителят трябва да въведе радиус. Очевидно може да бъде само число със знак плюс или да е нулева стойност. Ако е по-малко от 0, тогава трябва да издадете съобщение с молба да въведете положително число. 

Ето кода, който изпълнява тази задача. Но тук има една грешка. Опитайте се да познаете кое. 

радиус = int(вход(“Въведете радиус: “))

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

    print(“Обиколка = “, 2 * 3.14 * радиус)

    печат (“Площ = “, 3.14 * радиус ** 2)

    друго:

        print(“Моля, въведете положително число”)

Грешка при несъответствие на отстъпа. Ако и Друго трябва да се намират без тях или с еднакъв брой от тях (в зависимост от това дали са вложени или не).

Нека да дадем друг случай на употреба (където всичко ще бъде правилно с подравняването на оператора) – елемент на приложение, който проверява парола.

парола = вход (“Въведете парола: “)

ако парола == «sshh»:

    печат („Добре дошли“)

друго:

    печат („Достъпът отказан“)

Тази инструкция пропуска лицето допълнително, ако паролата е sshh. Ако има друга комбинация от букви и цифри, тогава се показва съобщението „Достъпът е отказан“.

оператор-израз if-elif-else

Само ако няколко условия не са верни, операторът, който е в блока, се изпълнява. още. Този израз работи по следния начин.

ако условие_1:

    # ако блокира

    изявление

    изявление

    повече изявление

elif условие_2:

    # първи elif блок

    изявление

    изявление

    повече изявление

elif условие_3:

    # втори elif блок

    изявление

    изявление

    повече изявление

...

още

    изявление

    изявление

    повече изявление

Можете да посочите произволен брой допълнителни условия.

Вложени изрази

Друг начин за прилагане на множество условия е да вмъкнете допълнителни проверки на условия в блока if.

Оператор if вътре в друг блок с условия

gre_score = int(input(“Въведете текущия си кредитен лимит”))

per_grad = int(input(“Въведете своя кредитен рейтинг: “))

ако per_grad > 70:

    # външен ако блок

        ако gre_score > 150:

            # вътрешен if блок

    print(“Поздравления, получихте заем”)

друго:

    print(„Съжаляваме, не отговаряте на условията за заем“)

Тази програма извършва проверка на кредитния рейтинг. Ако е по-малко от 70, програмата съобщава, че потребителят не отговаря на условията за кредит. Ако е по-голям, се извършва втора проверка дали текущият кредитен лимит е по-голям от 150. Ако да, тогава се показва съобщение, че кредитът е издаден.

Ако и двете стойности са неверни, тогава се показва съобщение, че потребителят няма възможност да получи заем. 

Сега нека преработим малко тази програма.

gre_score = int(input(“Въведете текущо ограничение: “))

per_grad = int(input(“Въведете кредитен рейтинг: “))

ако per_grad > 70:

    ако gre_score > 150:

        print(“Поздравления, получихте заем”)

    друго:

        print(“Вашият кредитен лимит е нисък”)

друго:

    print(„Съжаляваме, не отговаряте на условията за кредит“)

Самият код е много подобен, но вложен if предоставя и алгоритъм, в случай че условието от него се окаже невярно. Тоест, лимитът на картата е недостатъчен, но кредитната история е добра, показва се съобщението „Имате нисък кредитен рейтинг“.

оператор if-else вътре в условие още

Нека направим друга програма, която определя оценката на ученика въз основа на резултатите от теста.

резултат = int(вход(“Въведете своя резултат: “))

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

    print(„Страхотно! Вашата оценка е A“)

друго:

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

print(„Страхотно! Вашата оценка е B“)

    друго:

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

    print(„Добре! Вашата оценка е C“)

друго:

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

print(“Вашата оценка е D. Струва си да повторите материала.”)

    друго:

print(„Ти се провали на изпита“)

Приложението първо проверява дали резултатът е по-голям или равен на 90. Ако да, тогава връща оценка A. Ако това условие е грешно, тогава се извършват последващи проверки. Виждаме, че алгоритъмът на пръв поглед е почти същият. Така че вместо да проверявате вътре още по-добре да използвате комбинация ако-елиф-друго.

Така че операторът if изпълнява много важна функция – гарантира, че определени части от код се изпълняват само ако има нужда от това. Невъзможно е да си представим програмиране без него, защото дори най-простите алгоритми изискват разклонения като „ако отидете наляво, ще го намерите, а ако отидете надясно, тогава трябва да направите това и това“.

Оставете коментар