JuniorКодИногдаЕщё не отвечали
Что выведут эти цепочечные сравнения?
Предскажите все три строки.
print(1 < 2 < 3) # (1)
print(3 > 2 == 2) # (2)
print(False == False in [False]) # (3)
Определите вывод и объясните.
Все три печатают True. Python связывает сравнения неявным and: (1) это 1 < 2 and 2 < 3; (2) это 3 > 2 and 2 == 2; (3) это (False == False) and (False in [False]) → True and True. Третья удивляет, ведь == и in связываются вместе.
- ✗Читать
a < b < cкак(a < b) < cвместо неявногоand - ✗Не понимать, что
==иinсвязываются вместе в одном выражении - ✗Ожидать, что цепочечное сравнение вернёт операнд, а не bool
- →Как Python вычисляет средний операнд цепочки ровно один раз?
- →Почему
False == False in [False]— это не(False == False) in [False]?