1-ое объяснение
Если углубится в математику, то все мы помним со школы, что у операции умножения или деления приоритет над сложением и вычитанием. В логических операциях точно так же. Оператор not в логике тоже, что и смена знака в арифметике. And аналог умножения. Or аналог сложения. Соответственно и приоритеты те же. Опережая вопрос. Почему and это аналог умножения. Вспомните с прошлого видео варианты со всеми комбинациями x и y по этим операциям. Возьмите и замените and на умножение. Получится что:
Если углубится в математику, то все мы помним со школы, что у операции умножения или деления приоритет над сложением и вычитанием. В логических операциях точно так же. Оператор not в логике тоже, что и смена знака в арифметике. And аналог умножения. Or аналог сложения. Соответственно и приоритеты те же. Опережая вопрос. Почему and это аналог умножения. Вспомните с прошлого видео варианты со всеми комбинациями x и y по этим операциям. Возьмите и замените and на умножение. Получится что:
0 * 0 = 0 (False)
0 * 1 = 0 (False)
1 * 0 = 0 (False)
1 * 1 = 1 (True)
C or соответственно так же только or это аналог операции сложения. Нюанс) 1 + 1=2 (True) Потому что все, что не 0, это True в логике)
----
2-ое объяснение
2-ое объяснение
Попробую объяснить очень кратко.
Имеем только 2 значения:
False - 0, True - 1
or - аналог суммы,
and - аналог умножения.
not - отрицание (инверсия): not 1 = 0, not 0 = 1.
У and приоритет над or, также как в арифметике приоритет умножения над сложением. У отрицания - самый высокий приоритет, т.к. сначала определяем что будем "складывать" и "умножать", а потом уже действуем.
Переводим выражение с true и false в числовой аналог:
not False or True and False = not 0 + 1 * 0 = 1 + 1 * 0 = 1 + 0 = 1, т.е. получили True.
Со скобками по аналогии, на выходе получим: (1 + 1) * 0 = 1 * 0 = 0, т.е. получили False.
Здесь один момент: 1 + 1 = 1 на языке логики, т.к. используем только 0 и 1.
---
3-ье объяснение
3-ье объяснение
Существуют операторы и операнды:
2 + 2, где + это операторы
2 это операнды
В Python есть 3 логических оператора:
1) - "and" если оба операнда этого оператора имеют значение True (или False), то сам оператор то же вернет True (или False)
True and True
будет True
False and False
будет False
если один из операндов будет False, то значение всего выражения будет False
False and True
будет False
True and False
будет False
2) - "or" обозначет как "или"
если один из операндов будет True, то значение всего вырыжения будет True
True or False
будет True
True or True
будет True
False or True
будет True
False or False
будет False
3) - "not" обозначает как "не" - преобразует логический контекст операнда в обратный
not True
будет False
not False если было False , то not False это True
будет True
2 + 2, где + это операторы
2 это операнды
В Python есть 3 логических оператора:
1) - "and" если оба операнда этого оператора имеют значение True (или False), то сам оператор то же вернет True (или False)
True and True
будет True
False and False
будет False
если один из операндов будет False, то значение всего выражения будет False
False and True
будет False
True and False
будет False
2) - "or" обозначет как "или"
если один из операндов будет True, то значение всего вырыжения будет True
True or False
будет True
True or True
будет True
False or True
будет True
False or False
будет False
3) - "not" обозначает как "не" - преобразует логический контекст операнда в обратный
not True
будет False
not False если было False , то not False это True
будет True