在Python控制台(使用2.7),如果我把下面的代码:Python的所有()未给出预期结果检查小号码列表小于某一值
vals = [1.2e-5, 1.5e-5, 3.2e-5, 4.5e-5]
for val in vals: print val < 0.001,
输出为True True True True
如预期。
但是!这是我的问题,如果我尝试all(vals) < 0.001
它返回false?
这是数字格式给它的问题还是别的什么?如果我再次这样做,但用vals = [2,2,2,2]
替换vals列表并检查< 3
两种方式都可以得到所需的输出!
编辑 有用的答案,这是有趣的是,所有的([0.1,0.1,0.1])的计算结果为真,但0.1 ==真计算结果为假?这是怎么回事?是否“非零”值将评估为True,但实际上不是“True”?
检查[如何Python的任何和所有功能的工作?](http://stackoverflow.com/questions/19389490/how-pythons-any-and-all-functions-work) – sam
@ sam2090什么是疯狂的是我有实际上阅读,我仍然无法看到我做错了什么!猜猜它来自盯着某事太久。现在全部排序! – rhawker