Логическое значение явно рассматривается как целое число и является подклассом.
Для проверки мы можем использовать issubclass
:
>>> issubclass(bool, int)
True
Из документы :
Логические: они представляют значения истинности. Логические значения False и True [...] ведут себя как значения 0 и 1 соответственно, почти во всех контекстах, за исключением того, что при преобразовании в строкувозвращаются строки «False» или «True», соответственно
sum(a > b for a, b in zip(A, B))
Здесь a > b
возвращает True
или False
в зависимости от того, a
больше или меньше b
соответственно.Все True
s являются фактическими 1, а False
s - 0.sum()
на них насчитывается число True
с.