• burger-icon

    Шаг 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

    Вывод:
    На ноль делить нельзя!

    Для решения задачи, Зарегистрируйтесь или Войдите на сайт.