
Шаг 4. Логические операторы
Баллов за прохождение: 2
Логические операторы and, or и not
Оператор | Значение |
---|---|
and | Логическое умножение |
or | Логическое сложение |
not | Логическое отрицание |
Очень часто бывает такое, что внутри условного оператора if нужно использовать несколько условий одновременно:
x = int(input())
y = int(input())
if 10 <= x <= 20 and 20 <= y <= 30:
print('Число x в диапазоне от 10 до 20 включительно')
print('Число y в диапазоне от 20 до 30 включительно')
В этом примере видно, что прописано два условия. Между условиями стоит оператор and. Данный оператор - логическое умножение.
Чтобы легко понять принцип его работы, вспомним, что условия, по типу 10 <= x <= 20 дают нам ответ True либо False. Давайте представим, что True = 1, а False = 0.
Тогда, в результате двух условий мы получим два ответа в виде чисел. Оператор and на то и называется логическим умножение: он умножит два этих значения. Если результатом будет 0, общий ответ получится False. Если любой другой (положительный), значит True. Если мы введём в x и y значения 15 и 35, то результатом условия будет True и False, а значит 1 умножить на 0, получим 0. Ответ False, блок кода не выполняется.
Если же мы введём 15 и 25, то результатом будет True and True, 1 * 1 = 1, результат True.
Из этого можно сделать вывод, что логический оператор and даёт значение True только в случае, если все условия истины!
Абсолютно по такому же принципу работает оператор or, однако он даёт результат True только в случае если хотя бы одно условие истино. Остальные могут быть ложными.
x = int(input())
y = int(input())
if 10 <= x <= 20 or 20 <= y <= 30:
print('Какое-то из значений в диапазоне')
Но оператор not не занимается вычитанием. Он просто переворачивает результат. Если мы в ответе получили True, подставив not (not True), мы получим False:
x = int(input())
y = int(input())
if not 10 <= x <= 20 and not 20 <= y <= 30:
print('Число x НЕ в диапазоне от 10 до 20 включительно')
print('Число y НЕ в диапазоне от 20 до 30 включительно')
Задача:
Создайте программу, которая запрашивает у пользователя два целых числа и строку. Если строка соответствует одной из математических операций (+, -, *, /), выведите результат выполнения этой операции с введёнными числами. В случае некорректного ввода операции выведите сообщение «Неверная операция». Если попытаться выполнить деление на ноль, программа должна вывести «На ноль делить нельзя!».
Пример ввода-вывода
Ввод:
2
+
2
Вывод:
4
–––––––––––––––––––––––––––
Ввод:
2
/
0
Вывод:
На ноль делить нельзя!