Логические операции в Python: and, or, not и их приоритет
Логические операции — это кирпичики, из которых строятся все условия в программировании.
Если вы пишете на Python, вы постоянно используете их:
Без понимания логических операций вы не сможете написать ни одну программу.
В этой статье мы разберём три основные логические операции:
Прежде чем использовать and, or, not, нужно понимать, откуда берутся True и False. Их порождают операторы сравнения.
Каждое сравнение возвращает булево значение:
Выражение | Результат |
5 < 10 | True |
5 > 10 | False |
5 == 5 | True |
5 != 5 | False |
Пример:
x = 7
print(x > 3) # True
print(x == 7) # True
print(x != 7) # False
print(x < 0) # False x = 7
print(x > 3 and x < 10) # True and True → True
print(x == 5 or x > 10) # False or False → False
print(not x == 7) # not True → False Логические операции работают с булевыми значениями — это либо True (истина), либо False (ложь). Python воспринимает True как 1, а False как 0.
Все логические операции возвращают в результате True или False.
and возвращает True, только если оба выражения истинны.
Таблица истинности для and:
x = 5
print(x > 3 and x < 10) # True, потому что 5 > 3 и 5 < 10
print(x > 3 and x > 10) # False, потому что 5 > 10 — ложь or возвращает True, если хотя бы одно выражение истинно.
Таблица истинности для or:
x = 5
print(x > 3 or x > 10) # True, потому что 5 > 3 — истина
print(x > 10 or x < 0) # False, потому что оба условия ложны not переворачивает значение: истину превращает в ложь, ложь — в истину.
Таблица истинности для not:
x = 5
print(not x > 3) # False, потому что x > 3 — True, а not True = False
print(not x > 10) # True, потому что x > 10 — False, а not False = True В задании №2 вам дают логическое выражение, например:
(x → y) ∧ (y → w) ∨ (z ≡ (x ∨ y))
Чтобы перевести его на Python, вы заменяете:
f = ((x <= y) and (y <= w)) or (z == (x or y)) В Python все операции выполняются в строгом порядке. Если вы его не знаете — легко ошибиться.
Полный порядок выполнения (от высшего к низшему):
Пример со скобками и без
Без скобок:x = 5
print(x > 3 and x < 10 or x == 0) print((x > 3 and x < 10) or (x == 0)) x = 7
y = 3
z = 7
result = not x == y and x >= z or y < z Условия в if
x = int(input())
if x > 0 and x % 2 == 0:
print("Число положительное и чётное") if data[i] % 3 == 0 or data[i+1] % 3 == 0:
count += 1 if text[i].isalpha() and text[i] not in vowels:
consonants += 1 Операторы сравнения (<, >, ==, !=, <=, >=) порождают True и False. Логические операции (and, or, not) работают с этими значениями.
Запомните три правила:
И главное — порядок:
сравнения → not → and → or
Этот порядок нужно знать, чтобы не ошибаться в сложных выражениях.
Я — Олег Алексеевич, репетитор по информатике. Готовлю к ЕГЭ более 15 лет.
На своих занятиях мы:
Хотите попробовать? Запишитесь на первое занятие — познакомимся, определим ваш уровень и составим план подготовки.
Переходите на мой сайт, чтобы узнать подробности и записаться: Репетиторы рядом