Мое понимание оператора all() заключается в том, что оно возвращает true, если все элементы итеративного возвращают значение true. Либо я недоразумение это функция полностью, или что-то не совсем правильно в следующем:Python all ([6,7,8,9]) = True. Но 6 = False
>>> all([0, 7, 8, 9])
False
>>> all([6, 7, 8, 9])
True
>>> any([0, 7, 8, 9])
True
>>> 0 == True
False
>>> 1 == True
True
>>> 6 == True
False
>>> 7 == True
False
Что с этим?
Редактировать Хорошо, я получаю много ответов, объясняя, что 0 является ложным. Я понимаю. 0 = False и 1 = True. Моя проблема в том, что 6 возвращается как False, но когда тестируется как часть списка, он возвращается как истинный?
>>> all([6, 7, 8, 9])
True
>>> 6 == True
False
Это немного, чего я не понимаю?
см 'BOOL (6)'. –
Истинные и ложные имеют порядковое значение 0 и 1 IIRC. Отсюда и поведение. Если вы хотите интерпретировать как bool, тогда используйте, например. 'bool (6)' –
Мне кажется, что это было слишком быстро закрыто. Проверьте, что вы действительно спрашиваете: '6' и' 7' кажутся «ложными», так почему второе выражение «True». Если это так, то ответ заключается в том, что отличные от нуля целые числа вычисляются в 'True' в булевом контексте; но когда вы проверяете '6 == True', целое число не принудительно вводится в логический тип, поэтому эффективно вы тестируете' 6 == 1', что является 'False'. –