Логические операции питон синтаксис

Логические выражения и операторы

Часто в реальной жизни мы соглашаемся с каким-либо утверждением или отрицаем его. Например, если вам скажут, что сумма чисел 3 и 5 больше 7, вы согласитесь, скажете: «Да, это правда». Если же кто-то будет утверждать, что сумма трех и пяти меньше семи, то вы расцените такое утверждение как ложное.

Подобные фразы предполагают только два возможных ответа – либо «да», когда выражение оценивается как правда/истина, либо «нет», когда утверждение оценивается как ошибочное/ложное. В программировании и математике если результатом вычисления выражения может быть лишь истина или ложь, то такое выражение называется логическим.

Например, выражение 4 > 5 является логическим, так как его результатом является либо правда, либо ложь. Выражение 4 + 5 не является логическим, так как результатом его выполнения является число.

На позапрошлом уроке мы познакомились с тремя типами данных – целыми и вещественными числами, а также строками. Сегодня введем четвертый – логический тип данных (тип bool ). Его также называют булевым. У этого типа всего два возможных значения: True (правда) и False (ложь).

>>> a = True >>> type(a) >>> b = False >>> type(b)

Здесь переменной a было присвоено значение True , после чего с помощью встроенной в Python функции type() проверен ее тип. Интерпретатор сообщил, что это переменная класса bool . Понятия «класс» и «тип данных» в данном случае одно и то же. Переменная b также связана с булевым значением.

В программировании False обычно приравнивают к нулю, а True – к единице. Чтобы в этом убедиться, можно преобразовать булево значение к целочисленному типу:

Возможно и обратное. Можно преобразовать какое-либо значение к булевому типу:

>>> bool(3.4) True >>> bool(-150) True >>> bool(0) False >>> bool(' ') True >>> bool('') False

И здесь работает правило: всё, что не 0 и не пустота, является правдой.

Логические операторы

Говоря на естественном языке (например, русском) мы обозначаем сравнения словами «равно», «больше», «меньше». В языках программирования используются специальные знаки, подобные тем, которые используются в математике: > (больше), < (меньше), >= (больше или равно),

Читайте также:  Include advanced cache php

Не путайте операцию присваивания значения переменной, обозначаемую в языке Python одиночным знаком «равно», и операцию сравнения (два знака «равно»). Присваивание и сравнение – разные операции.

>>> a = 10 >>> b = 5 >>> a + b > 14 True >>> a < 14 - b False >>> a >> a != b True >>> a == b False >>> c = a == b >>> a, b, c (10, 5, False)

В данном примере выражение c = a == b состоит из двух подвыражений. Сначала происходит сравнение ( == ) переменных a и b . После этого результат логической операции присваивается переменной c . Выражение a, b, c просто выводит значения переменных на экран.

Сложные логические выражения

Логические выражения типа kbyte >= 1023 являются простыми, так как в них выполняется только одна логическая операция. Однако, на практике нередко возникает необходимость в более сложных выражениях. Может понадобиться получить ответа «Да» или «Нет» в зависимости от результата выполнения двух простых выражений. Например, «на улице идет снег или дождь», «переменная news больше 12 и меньше 20».

В таких случаях используются специальные операторы, объединяющие два и более простых логических выражения. Широко используются два оператора – так называемые логические И (and) и ИЛИ (or).

Чтобы получить True при использовании оператора and , необходимо, чтобы результаты обоих простых выражений, которые связывает данный оператор, были истинными. Если хотя бы в одном случае результатом будет False , то и все сложное выражение будет ложным.

Чтобы получить True при использовании оператора or , необходимо, чтобы результат хотя бы одного простого выражения, входящего в состав сложного, был истинным. В случае оператора or сложное выражение становится ложным лишь тогда, когда ложны оба составляющие его простые выражения.

Допустим, переменной x было присвоено значение 8 ( x = 8 ), переменной y присвоили 13 ( y = 13 ). Логическое выражение y < 15 and x >8 будет выполняться следующим образом. Сначала выполнится выражение y < 15 . Его результатом будет True . Затем выполнится выражение x >8 . Его результатом будет False . Далее выражение сведется к True and False , что вернет False .

В случае с оператором or второе простое выражение проверяется, если первое вернуло ложь, и не проверяется, если уже первое вернуло истину. Так как для истинности всего выражения достаточно единственного True , неважно по какую сторону от or оно стоит.

Читайте также:  Swagger ui index html

В языке Python есть еще унарный логический оператор not , то есть отрицание. Он превращает правду в ложь, а ложь в правду. Унарный он потому, что применяется к одному выражению, стоящему после него, а не справа и слева от него как в случае бинарных and и or .

>>> a = 5 >>> b = 0 >>> not a False >>> not b True

Число 5 трактуется как истина, отрицание истины дает ложь. Ноль приравнивается к False . Отрицание False дает True .

Практическая работа

  1. Присвойте двум переменным любые числовые значения.
  2. Используя переменные из п. 1, с помощью оператора and составьте два сложных логических выражения, одно из которых дает истину, другое – ложь.
  3. Аналогично выполните п. 2, но уже с оператором or .
  4. Попробуйте использовать в логических выражениях переменные строкового типа. Объясните результат.
  5. Напишите программу, которая запрашивала бы у пользователя два числа и выводила бы True или False в зависимости от того, больше первое число второго или нет.

Примеры решения и дополнительные уроки в pdf-версии курса

Python. Введение в программирование

Источник

Как использовать логические операторы and, or и not в Python — разбираем на примерах

Как использовать логические операторы and, or и not в Python — разбираем на примерах

В Python, логические операции используются для проверки и управления условиями выполнения программы.

В этой статье мы рассмотрим три основные логические операции в Python: and , or и not , и покажем, как они используются в различных сценариях.

Оператор and

Оператор and возвращает True только в том случае, если оба операнда являются истинными. В противном случае, если хотя бы один из операндов является ложным, оператор and возвращает False .

Рассмотрим следующий пример:

В этом примере, оператор and используется для проверки двух условий: x < y и y < z . Оба условия истинны, поэтому выводится сообщение y находится между x и z .

Давайте рассмотрим еще один пример, в котором оператор and используется для проверки нескольких условий:

x = 5 y = 10 z = 15 if x < y and y < z and z >10: print("z больше 10 и находится между x и y") #z больше 10 и находится между x и y

Здесь, оператор and используется для проверки трех условий: x < y , y < z и z >10 . Все три условия истинны, поэтому выводится сообщение z больше 10 и находится между x и y .

Оператор or

Оператор or возвращает True , если хотя бы один из операндов является истинным. Возвращается False только в том случае, если оба операнда являются ложными.

Читайте также:  Python extract all substrings

Рассмотрим следующий пример:

x = 5 y = 10 z = 15 if x > y or y > z: print("Не выполнено ни одно из условий")

В этом примере, оператор or используется для проверки двух условий: x > y и y > z . Оба условия ложны, поэтому сообщение от функции print() выводиться не будет.

Давайте рассмотрим еще один пример, в котором оператор or используется для проверки нескольких условий:

Оператор not

Оператор not возвращает логическое противоположение операнда. Если операнд истинный, оператор not возвращает False , а если операнд ложный, оператор not возвращает True .

Рассмотрим следующий пример:

x = 5 if not x == 10: print("x не равен 10") #x не равен 10

В этом примере, оператор not используется для проверки условия not x == 10 . Условие x == 10 является ложным, но оператор not инвертирует его, возвращая истину. Поэтому выводится сообщение x не равен 10 .

Давайте рассмотрим еще один пример, в котором оператор not используется для проверки того, содержится ли элемент в списке:

my_list = [1, 2, 3, 4, 5] if not 6 in my_list: print("6 не содержится в списке") #6 не содержится в списке

В этом примере, оператор not используется для проверки условия not 6 in my_list . Условие 6 in my_list ложно, поэтому оператор not возвращает истину и выводится сообщение 6 не содержится в списке .

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

Например, логические операции могут использоваться для определения, содержится ли элемент в списке:

my_list = [1, 2, 3, 4, 5] if 3 in my_list or 6 in my_list: print("Список содержит 3 или 6") #Список содержит 3 или 6

В этом примере, оператор or используется для проверки двух условий: 3 in my_list и 6 in my_list . Так как условие 3 in my_list истинно, то выводится сообщение Список содержит 3 или 6 .

В заключение, логические операции and , or и not являются важными инструментами для управления условиями выполнения программы в Python. Они позволяют комбинировать несколько условий в одно и определять, какой код должен быть выполнен в зависимости от результата проверки этих условий.

Источник

Оцените статью