Занятие № 2. Решение задач с использованием условного оператора
Цель: изучить синтаксис условного оператора; научиться применять оператор if-elif-else; уметь применять простые и составные условия.
Теория
Логические значения и выражения
В Python для хранения логических значений используется тип bool
. Существует только два литерала для логических значений - True
(истина) и False
(ложь). Результатом вычисления логического выражения является одно из двух логических значений.
Операторы сравнения используются, чтобы узнать равны или не равны два логических выражения, какое из них больше или меньше.
Оператор | Название | Пример |
---|---|---|
< |
Меньше | 6 < 10 – True; 52 < 5 – False. |
> |
Больше | 2 > 9 – False |
<= |
Меньше или равно | 5 <= 5 – True; 5 <= 6 – True. |
>= |
Больше или равно | 2 >= 3 – False; 2 >= 2 – True. |
== |
Равно | "python" == "ruby" – False |
!= |
Не равно | 42 != 1 - True |
Что из перечисленного является логическим выражением?
Логические операторы
Для комбинирования логических выражений можно использовать логические операторы - not
, and
и or
.
Значение следующего выражения True
, если x
больше 0 и меньше 10:
Следующие выражение истинно, если x
делится на 2 или делится на 3:
Результат следующего логического выражения будет не истиной, если x > y
и не ложью в обратном случае. Иными словами результат логического выражения инвертируется:
Попробуйте поменять значения переменных x
и y
в примерах, чтобы получить разные значения логических выражений.
Какие из логических выражений помогут определить, что значение переменной x
лежит между 0 и 5?
Приоритет операторов
Арифметические операторы имеют больший приоритет чем операторы сравнения и логические операторы. Затем вычисляется значение выражений с операторами сравнения. Самый низкий приоритет у логических операторов. Например в выражении x * 5 >= 10 and y - 6 <= 20
в первую очередь выполнятся операторы *
и -
, потом произойдёт сравнение (операторы >=
и <=
) и в самом конце выполниться логический оператор and
. В этом примере, если x = 1
a y = 7
, то значение всего выражения будет равно
.
Инструкция “Ветвление”
Полная форма
Общая форма записи полной формы инструкции ветвления:
if <логическое выражение>:
# если логическое выражение == True
<блок инструкций 1>
else:
# если логическое выражение == False
<блок инструкций 2>
Обратите внимание, что после :
набор инструкций записывается с отступом. С помощью отступа в Python обозначаются блоки инструкций. Конец строки считается концом инструкции, конец отступа считается концом блока инструкций. Рисунок 1 содержит диаграмму работы полной формы ветвления.
Обратите внимание на правила оформления блоков инструкций. Это важно, так как в Python вложенность инструкций определяется именно отступами.
- Блок связанных инструкций должен иметь одинаковый отступ.
- Размер отступа может быть произвольным (рекомендовано 4 пробела).
- Для создания отступов можно использовать пробелы или табуляцию.
- Нельзя смешивать пробелы и символы табуляции при оформлении одного блока.
В следующем примере определим чётность или нечётность значения в переменной x
:
Сокращённая форма
Ветвление можно записать в сокращённой форме без оператора else
:
Попробуйте поменять значение x
на отрицательное число и запустить программу ещё раз.
Иногда бывает необходимо обозначить пустой блок инструкций, чтобы реализовать его позже. В таком случае пригодится инструкция pass
(пропустить):
Запись без инструкции pass
вызовет синтаксическую ошибку:
Каскадное ветвление
Инструкции ветвления могут быть вложены друг в друга.
Рисунок 2 содержит диаграмму с ходом выполнения алгоритма.
В Python такую последовательность условий можно записать иначе с помощью инструкции elif
:
В обоих случаях будет выполнена только одна из ветвей алгоритма.
К примеру следующий код:
При x = 3
, y = 5
и z = 2
выведет на экран цифру
.
Примеры
Познакомьтесь с готовыми решениями задач. Ответьте на вопросы после кода решения каждой задачи.
Пример № 1 (ex01.py)
Напишите программу, которая бы получала на вход температуру воздуха из прогноза погоды и выводила на экран краткую характеристику. Если температура меньше 5 градусов вывести сообщение «Холодно, оденьтесь теплее»; если температура больше либо равна 5, но меньше 20 градусов вывести сообщение «На улице прохладно»; если температура больше либо равна 20 градусов – «На улице тепло».
В строке номер
пользователь вводит сегодняшнюю температуру воздуха. В строке номер
используется логический оператор
. Значение всего логического выражения будет равно True
, если значения
логических выражений будет равно True
.
В программе встречается только
форма инструкции if
.
Пример № 2 (ex02.py)
Напишите программу вычисляющую корни квадратного уравнения по заданным коэффициентам a, b и c. В случае если корень один – вывести на экран один корень. Если корней нет – вывести соответствующее сообщение.
В программе используется
форма записи инструкции if
.
В строке проверяется, равен ли дискриминант нулю. В этом случае значение корня уравнения сохраняется в переменную с именем . Инструкции после оператора выполнятся, если уравнение не имеет корней.
Задания для самостоятельной работы
Задание № 1 (sam01.py)
Дано целое число. Если оно является положительным, то прибавьте к нему 1; в противном случае оставьте значение числа без изменений. Выведите полученное число на экран.
Задание № 2 (sam02.py)
Даны две переменные A и B. Если их значения равны, то присвоить каждой переменной сумму этих значений, а если не равны, то присвоить переменным нулевые значения. Значения переменных A и B вводятся с клавиатуры. Выведите новые значения переменных на экран.
Задание № 3 (sam03.py)
С клавиатуры вводится номер месяца. Нумерация месяцев начинается с 1. Выведите на экран пору года к которой принадлежит этот месяц - зима, весна, лето или осень.
Задание № 4 (sam04.py)
Индекс массы тела – это величина, которая позволяет оценить степень соответствия массы человека и его роста и рассчитывается по формуле
где m – масса тела в килограммах, h – рост в метрах. Нормой считается значение индекса в диапазоне от 18 до 25. Напишите программу рассчитывающую индекс массы тела по введённым данным и выводящее сообщение в трёх случаях: значение индекса в норме, индекс меньше нормы, индекс больше нормы.
Задание № 5 (sam05.py)
Високосным является год, значение которого делится на 4, но при этом не делится на 100, либо делится на 400. Напишите программу, которая определяет, является ли введённый год високосным или нет, и выводит соответствующее сообщение.