Как работают логические операторы and, or и not в Python?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Операторы and, or и not используются для комбинирования или изменения логических выражений.
-
and: Возвращает
True, если оба операнда истинны. В противном случае возвращаетFalse. При коротком замыкании, если левый операнд ложный, правый не вычисляется.# Пример работы and print(True and True) # Истинно, оба True print(True and False) # Ложно, один False print(False and True) # Ложно, один False print(False and False) # Ложно, оба False -
or: Возвращает
True, если хотя бы один из операндов истинен. ВозвращаетFalseтолько если оба операнда ложны. При коротком замыкании, если левый операнд истинный, правый не вычисляется.# Пример работы or print(True or True) # Истинно, оба True print(True or False) # Истинно, один True print(False or True) # Истинно, один True print(False or False) # Ложно, оба False -
not: Отрицает логическое значение операнда. Возвращает
True, если операнд ложный, иFalse, если операнд истинный.# Пример работы not print(not True) # False print(not False) # True
Помимо булевых значений (True и False), эти операторы также работают с другими типами данных, используя их "истинность" или "ложность" в булевом контексте:
- Числа: nonzero (истинные), zero (ложные).
- Строки, списки, кортежи, словари, множества: непустые (истинные), пустые (ложные).
None: ложный.
При вычислении and и or Python возвращает не только True или False, но и один из операндов (короткое замыкание):
a and b: Еслиaложно, возвращаетa. Иначе возвращаетb.print(0 and 5) # 0 (0 ложно) print(5 and 0) # 0 (5 истинно, возвращает 0) print(1 and 2) # 2 (1 истинно, возвращает 2)a or b: Еслиaистинно, возвращаетa. Иначе возвращаетb.print(0 or 5) # 5 (0 ложно, возвращает 5) print(5 or 0) # 5 (5 истинно, возвращает 5) print(1 or 2) # 1 (1 истинно, возвращает 1)
Это поведение важно для условных выражений и назначения значений по умолчанию.