Логические операции рассматриваются в курсе математической логики на первом-втором курсе ВУЗов, входят в ЕГЭ по информатике, требуются даже в простых программах. Ничего сложного в них нет (в отличие от курса мат. логики, где вы познакомитесь с такими страшными существами, как Глокая Куздра). Рассмотрим подробнее:
and, or, xor – бинарные логические операторы, применяются к логическим выражениям. Результат – логическое значение (Истина или Ложь). «Бинарные» — значит применяются к двум значениям, например A and B, A or B, A xor B.
not– унарный логический оператор. Пример: not A.
A,B – это логические выражения, например выражения, содержащие операторы отношений: (x < 10) или (x % 2 == 0), (10 in [1,2,3,4]) или др. Если вы встретите в книгах термин «операнд» то знайте, что речь идет о том, что я здесь назову A,B — об аргументе операции.
A and B: A,B — это агрументы операции and (операнды).
Это информацию я привел лишь для того, чтобы вы смогли читать разные книги и не путаться в терминах. В своих статья слово «операнд» я не использую.
And (И) возвращает Истину, только если оба агрумента — Истина и Ложь во всех остальных случаях. В самом деле, если вы любите груши сочные и сладкие, то вас только такие и устроят, а сладкие и сухие или сочные и кислые — не подойдут.
Or (ИЛИ) возвращает Истину, если Истина хотя бы один из аргументов. Например, если вы хотите купить билет на поезд, который идет быстро или купить билет дешево, то дорогой билет на быстрый поезд вас устроит, так же, как и дешевый билет на медленный поезд, а уж дешевый билет на быстрый поезд — и подавно.
Not (отрицание) — Истину делает Ложью, а Ложь — Истиной. Например:
Для упрощения воспользуемся традиционной заменой: Истину обозначим как 1, а Ложь – как 0
Таблица истинности логических операций
Приоритет (порядок выполнения) операций: not, and, or.
Операции сравнения (<,>,<=,>=,==, !=) имеют приоритет меньший, чем логические операции, что позволяет не использовать скобки в таких выражениях, как:
if x < 0 and y < 0:
Примеры:
Будет напечатан «+»:
a = 10 b = 20 if a > 0 and b > 0 : print(‘+’) else: print('-')
Будет напечатан «-»: a = 10 b = 2 if a > 0 and b > 0 : print(‘+’) else: print(‘-’)
Будет напечатан «+» при любых значениях a,b:
a = -10 b = 20 if a > 0 and b > 0 or 1 != 2: print(‘+’) else: print(‘-’)
(a > 10 and a < 20)
дает точно такой же результат, как и
not (a <= 10 or a >= 20)