Условные операторы в Python 3

Условные операторы – важная часть любого языка программирования. Они позволяют выполнять команды (или наборы команд) только при наличии определённых условий.

При помощи условных операторов программа может определить, выполняются ли определенные условия, а затем решить, что делать дальше.

К примеру, условные операторы можно было бы использовать в следующих ситуациях:

  • Если студент правильно выполнил как минимум 65% заданий, то он сдал тест; если студент выполнил правильно менее 65% заданий, то он провалил тест.
  • Если на счету есть деньги, начисляются проценты; если денег на счету нет, взымается штраф.
  • При покупке 10 и больше апельсинов клиенты получают скидку в размере 5%; если они покупают меньше, то не получают скидки.

Оценивая условия и запуская команды в зависимости от соблюдения этих условий, вы можете написать условный код.

Данное руководство научит вас пользоваться условными операторами в Python.

Оператор if

Для начала рассмотрим оператор if. Он определяет условие как истинное или ложное, и если условие истинно, программа выполняет соответствующее действие.

Откройте текстовый редактор и наберите следующие строки:

grade = 70
if grade >= 65:
print("Passing grade")

В этом коде присутствует переменная grade, её значение – целое число 70. Оператор if сравнивает значение переменной с числом 65 и определяет, пройден ли тест. Если значение переменной меньше 65, тест не пройден. Если условие соблюдено, и значение переменной больше или равно 65, программа выведет на экран «Passing grade».

Сохраните эту простую программу как grade.py и запустите её в локальной среде:

python grade.py.

Читайте также:

В данной ситуации значение переменной 70 отвечает условиям, потому на экране появится:

Passing grade

Попробуйте уменьшить значение переменной grade:

grade = 60
if grade >= 65:
print("Passing grade")

Сохраните и запустите программу. Как видите, теперь значение переменной не отвечает условиям, потому программа ничего не делает.

В качестве ещё одного примера попробуйте определить, ниже или выше нуля баланс банковского счета.

Создайте файл account.py и добавьте в него такие строки:

balance = -5
if balance < 0:
print("Balance is below 0, add funds now or you will be charged a penalty.")

Запустите программу:

python account.py

Команда вернёт:

Balance is below 0, add funds now or you will be charged a penalty.

Заданная в программе переменная balance имеет значение -5, что меньше 0. Это отвечает условию оператора if (balance < 0), потому программа возвращает указанное сообщение. Попробуйте самостоятельно увеличить значение переменной balance и снова запустить программу.

Оператор else

В некоторых ситуациях необходимо, чтобы программа выполнила какое-то действие даже тогда, когда выражение if ложно. Например, программа grade.py может сообщать не только об успешном результате теста, но и о его провале.

Для этого используется оператор else. Добавьте его в код:

grade = 60
if grade >= 65:
print("Passing grade")
else:
print("Failing grade")

Сохраните и запустите программу.

Итак, значение переменной grade – целое число 60, что не отвечает условию grade >= 65. Раньше программа просто молчала, теперь благодаря оператору else она может вернуть:

Failing grade

Перепишите программу, присвойте переменной grade значение 65. Запустите её снова. На экране появится:

Passing grade

Теперь попробуйте добавить оператор else в программу account.py.

balance = 522
if balance < 0:
print("Balance is below 0, add funds now or you will be charged a penalty.")
else:
print("Your balance is 0 or above.")

В данном случае программа выведет сообщение:

Your balance is 0 or above.

Мы присвоили переменной balance положительное значение, после чего оператор else отобразил на экране вышеприведённое сообщение.

Комбинируя операторы if и else, вы можете написать код, который будет выполнять то или иное действие в зависимости от того, истинно или ложно указанное выражение.

Оператор elif

В некоторых случаях программа должна обрабатывать более двух возможных результатов, чего операторы if и else обеспечить не могут.

В такой ситуации используется оператор else if, который в Python сокращен до elif.

Рассмотрим его работу на примере программы account.py. При помощи оператора elif можно создать три условия:

  • Баланс ниже 0;
  • Баланс равен 0;
  • Баланс выше 0.

Оператор elif должен находиться между операторами if и else:

. . .
if balance < 0:
print("Balance is below 0, add funds now or you will be charged a penalty.")
elif balance == 0:
print("Balance is equal to 0, add funds soon.")
else:
print("Your balance is 0 or above.")

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

  • Если значение balance равно 0, программа выдаст сообщение оператора elif (Balance is equal to 0, add funds soon).
  • Если значение переменной balance – положительное число, она выведет сообщение оператора else (Your balance is 0 or above).
  • Если значение переменной balance – отрицательное число, программа отобразит сообщение оператора if (Balance is below 0, add funds now or you will be charged a penalty).

С помощью elif вы можете добавить неограниченное количество дополнительных условий.

Вернёмся к тестовой программе grade.py. Попробуйте переписать её код и распределить оценки в зависимости от количества набранных баллов:

  • 90 и больше = А
  • 80-89 = B
  • 70-79 = C
  • 65-69 = D
  • 64 и меньше = F

Чтобы написать такой код, нужно использовать одно выражение if, три выражения elif и одно else. Выражение else из предыдущего примера останется без изменений.

. . .
if grade >= 90:
print("A grade")
elif grade >=80:
print("B grade")
elif grade >=70:
print("C grade")
elif grade >= 65:
print("D grade")
else:
print("Failing grade")

Данная программа выполняет следующие действия:

  • Сравнивает значение переменной grade со всеми выражениями. Если значение переменной не отвечает условию выражения, оно переходит к следующему выражению.
  • Если значение отвечает условию одного из выражений, оно не передаётся дальше. Оператор выполняет соответствующее действие (в данном случае выводит на экран сообщение об оценке: A grade, B grade и т.д.).
  • Если значение переменой не отвечает условиям операторов if и elif, оно переходит к оператору else, который отображает сообщение Failing grade.

Вложенные операторы if

Вложенные операторы if позволяют добавить в код второстепенные условия, которые будут проверены, если первичное выражение истинно. То есть, таким образом вы можете поместить одно выражение if-else внутри другого выражения if-else. Синтаксис имеет такой вид:

if statement1:              #первичное выражение if
print("true")
if nested_statement:    #вложенное выражение if
print("yes")
else                    #вложенное выражение else
print("no")
else:                       #первичное выражение else
print("false")

Программа может вернуть такие результаты:

  • Если выражение statement1 истинно, программа оценит выражение nested_statement как истинное или ложное. Если вложенное выражение также истинно, она вернёт:

true
yes

  • Если statement1 истинно, а nested_statement ложно, программа выведет на экран:

true
no

  • Если выражение statement1 ложно, программа не будет оценивать вложенные выражения и выведет:

false

В код можно добавить неограниченное количество вложенных операторов: э

if statement1:                  #первичный if
print("hello world")
if nested_statement1:       #первый вложенный if
print("yes")
elif nested_statement2:     #первый вложенный elif
print("maybe")
else                        #первый вложенный else
print("no")
elif statement2:                #первичный elif
print("hello galaxy")
if nested_statement3:       #второй вложенный if
print("yes")
elif nested_statement4:     #второй вложенный elif
print("maybe")
else                        #второй вложенный else
print("no")
else:                           #первичный else
statement("hello universe")

Рассмотрим вложенные операторы на примере программы grade.py. К примеру, сначала программа может убедиться, что результаты теста можно засчитать (для этого нужно выполнить правильно минимум 65% заданий), а затем уже выставить оценки. Таким образом, если тест провален, программа не будет сверять значение переменной со всеми выражениями, а сразу выведет Failing grade.

. . .
if grade >= 65:
print("Passing grade of:")
if grade >= 90:
print("A")
elif grade >=80:
print("B")
elif grade >=70:
print("C")
elif grade >= 65:
print("D")
else:
print("Failing grade")

К примеру, если значение переменной grade – 92, то первое условие выполнено,  и программа вернёт:

Passing grade of:

Затем она сравнит значение переменной с остальными выражениями. Поскольку в данном случае значение соответствует первому условию (grade >= 90), программа выведет:

А

Попробуйте установить переменной grade значение 60 и посмотрите, как поведёт себя программа. В этом случае первичное выражение if ложно, потому она сразу перейдёт к первичному оператору else и выведет:

Failing grade

Вы можете добавить в программу больше параметров, например, разделить оценки на А+, А, А- и так далее. Такой код будет выглядеть так:

. . .
if grade >= 65:
print("Passing grade of:")
if grade >= 90:
if grade > 96:
print("A+")
elif grade > 93 and grade <= 96:
print("A")
elif grade >= 90:
print("A-")
. . .

Если переменная grade имеет значение 96, то:

  • Программа убедится, что значение переменной больше или равно 65 (в данном случае это условие выполняется).
  • Выведет на экран Passing grade of:.
  • Затем она сравнит значение с условием grade >= 90 (в данном случае оно истинно).
  • Программа проверит условие grade > 96 (ложно).
  • После этого она убедится, что значение больше 93 и меньше или равно 96 (истинно).
  • Программа выведет А.

Вывод команды будет выглядеть так:

Passing grade of:
A

Вложенные операторы if позволяют создать несколько дополнительных уровней кода и расширить его функции.

Заключение

Овладев условными операторами Python, вы сможете более точно определять действия программ. Условные операторы позволяют программе оценивать условия как ложные или истинные и выполнять (или не выполнять) действия согласно этим условиям.

Операторы можно комбинировать с помощью операторов and и or и объединять в циклы.

Tags:

1 комментарий

Добавить комментарий