Python 所有([6,7,8,9])= 真。但是 6 = 假
Python all([6,7,8,9]) = True. But 6 = False
我对 all() 运算符的理解是,如果 all 可迭代元素的 return 值为真,则它 return 为真。要么是我完全误解了它的功能,要么是以下内容不太正确:
>>> 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 = 假,1 = 真。
我的问题是 6 returned 为假,但是当作为列表的一部分进行测试时它 returns 为真?
>>> all([6, 7, 8, 9])
True
>>> 6 == True
False
这是我不明白的地方?
查一查,你真正想问的是,6
和7
看起来是False
,为什么第二个表达式是True
。如果是这样,答案是非零整数在布尔上下文中的计算结果为 True
;但是当你测试 6 == True
时,整数并没有被强制转换为布尔类型,所以实际上你测试的是 6 == 1
,即 False
.
编辑:在布尔上下文中测试某物是否为 True
的正确方法是,例如:
bool(6)
我对 all() 运算符的理解是,如果 all 可迭代元素的 return 值为真,则它 return 为真。要么是我完全误解了它的功能,要么是以下内容不太正确:
>>> 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 = 假,1 = 真。 我的问题是 6 returned 为假,但是当作为列表的一部分进行测试时它 returns 为真?
>>> all([6, 7, 8, 9])
True
>>> 6 == True
False
这是我不明白的地方?
查一查,你真正想问的是,6
和7
看起来是False
,为什么第二个表达式是True
。如果是这样,答案是非零整数在布尔上下文中的计算结果为 True
;但是当你测试 6 == True
时,整数并没有被强制转换为布尔类型,所以实际上你测试的是 6 == 1
,即 False
.
编辑:在布尔上下文中测试某物是否为 True
的正确方法是,例如:
bool(6)