Пусть items = [0]. Какой результат даст bool(items)?
AЗначение
False из-за наличия «ложного» элемента 0 внутри переданного спискаBОшибка
TypeError при попытке вызвать bool() от объекта типа list напрямуюCЗначение
True из-за непустого списка items, даже если внутри него лежит 0DЗначение
None из-за отсутствия однозначного булева значения для списочного объектаПравильный ответ. Непустые контейнеры считаются истинными в булевом контексте.
Разбор
В булевом контексте (в if, while или при вызове bool()) контейнеры оцениваются по пустоте. Пустой список [] — это False, а непустой список [0] — это True, даже если внутри есть «ложное» значение 0.
Можно заниматься бесплатно
Готовим вопросы…
Три вопроса по теме этой страницы, с объяснениями.
Ещё вопросы по теме «Синтаксис и типы данных»
- Какой результат вернёт вызов `type(10)`?
- После выполнения `y = str(42)` чему равен `y` и какой у него тип?
- Какая проверка наиболее корректна и идиоматична, чтобы убедиться, что переменная `x` равна `None`?
- Чему равно значение переменной `result` после выполнения строки `result = 3 < 5`?
- Что вернёт выражение `" Python ".strip()`?
- Все вопросы по «Синтаксис и типы данных» →