Развёрнутое пояснение
🔘Функция 𝚊𝚕𝚕(𝚒𝚝𝚎𝚛𝚊𝚋𝚕𝚎) проверяет, все ли элементы истинны; внутри она перебирает элементы и возвращает False, как только встречает ложный; если цикл завершился без такого элемента — возвращает True.
🔘Для пустого списка цикл не выполняется ни разу, поэтому сразу возвращается True — переменная 𝚊 получает значение True.
🔘Функция 𝚊𝚗𝚢(𝚒𝚝𝚎𝚛𝚊𝚋𝚕𝚎) работает наоборот: возвращает True, как только встречает истинный элемент; если таких нет — возвращает False.
🔘Для пустого списка нет ни одного истинного элемента, поэтому 𝚋 получает False, и print(a, b) выводит True False.
Почему это важно
Это поведение часто ломает логику валидации: проверка 𝚊𝚕𝚕(𝚌𝚘𝚗𝚍𝚒𝚝𝚒𝚘𝚗𝚜) пройдёт, даже если список условий пуст, что может быть не тем, что ожидалось.
Post #4532
721
- ✍ 5
- 🤯 5