Python 3.x all()函数在Python中未返回预期值

Python 3.x all()函数在Python中未返回预期值,python-3.x,Python 3.x,在Python中 a=[非(0)+1] 印刷品(全部(a)) 这返回False。但这不是真的吗?因为,a=[2],以及除0以外的所有整数值都被认为是真的。因此,all()应该返回True,对吗?是的,如果列表中的所有值都为True,all()应该返回True。在你的情况下,如果你这样做 a=[2] 印刷品(全部(a)) 这将成为现实。 但是当你在做 a=[非(0)+1] 你的工作清单变得越来越重要 a=[False]asnot(0)+1返回False a=[2] a=[非(0)+1] 印刷

在Python中

a=[非(0)+1]
印刷品(全部(a))
这返回False。但这不是真的吗?因为,
a=[2]
,以及除0以外的所有整数值都被认为是真的。因此,
all()
应该返回True,对吗?

是的,如果列表中的所有值都为True,
all()
应该返回True。在你的情况下,如果你这样做

a=[2]
印刷品(全部(a))
这将成为现实。 但是当你在做

a=[非(0)+1]
你的工作清单变得越来越重要
a=[False]
as
not(0)+1
返回False

a=[2]
a=[非(0)+1]
印刷品(a)
#a=[假]
印刷品(全部(a))
#假的

因此,此打印结果始终为False而不是0==True(1)*!好的。但我仍然不明白(0)+1如何不返回False。我一直认为不是(0)=1,所以(1+1)=2=True。这个逻辑有什么问题?把它想象成
而不是0+1
我想这会回答你的问题这与
所有的
无关-你的问题应该是,
为什么不是(0)+1
错误?你声称
a=[2]
但是如果是这样的话,你就不必写
而不是(0)+1
来产生问题了。这很公平。(0)+1=False怎么不成立?这不应该是真的吗?括号是误导性的
not
是一个运算符,而不是一个函数,其优先级低于
+
,因此您实际上是在执行
not((0)+1)
。啊。现在我明白了!谢谢!