Назад к вопросамЧто выведут эти выражения
JuniorКодЧасто
Что выведут эти выражения or / and?
Предскажите все три строки.
print([] or "default") # (1)
print(0 or 5 or 10) # (2)
print("a" and "b" and "") # (3)Определите вывод и объясните.
(1) default — or возвращает первый истинный операнд (пустой список ложен). (2) 5 — первое истинное значение. (3) '' — and возвращает первый ложный операнд или последний, если все истинны. or/and возвращают один из операндов, а не bool — основа идиомы x = val or default.
- Считать, что
or/andвсегда возвращают булево - Думать, что они всегда возвращают первый операнд независимо от истинности
- Не знать, что идиома
x = val or defaultопирается на это
- Почему сокращённое вычисление возвращает операнд, а не bool?
- В чём риск
x = val or default, когдаvalможет быть0или''?