相关疑难解决方法(0)

如何在Python 3中使用cmp()?

我无法让命令cmp()工作.

这是代码:

a = [1,2,3]
b = [1,2,3]
c = cmp(a,b)
print (c)
Run Code Online (Sandbox Code Playgroud)

我收到错误:

Traceback (most recent call last):
  File "G:\Dropbox\Code\a = [1,2,3]", line 3, in <module>
    c = cmp(a,b)
 NameError: name 'cmp' is not defined
[Finished in 0.1s]
Run Code Online (Sandbox Code Playgroud)

python python-3.x

19
推荐指数
2
解决办法
3万
查看次数

python与numpy中的布尔和类型检查

if今天在python 条款中遇到了意外的结果:

import numpy
if numpy.allclose(6.0, 6.1, rtol=0, atol=0.5):
    print 'close enough'  # works as expected (prints message)

if numpy.allclose(6.0, 6.1, rtol=0, atol=0.5) is True:
    print 'close enough'  # does NOT work as expected (prints nothing)
Run Code Online (Sandbox Code Playgroud)

经过一番探讨(即这个问题,特别是这个答案)之后,我明白了原因:type返回的numpy.allclose()numpy.bool_而不是简单的旧bool,而且显然是foo = numpy.bool_(1),然后if foo将评估,True同时if foo is True将评估False.这似乎是is运营商的工作.

我的问题是:为什么numpy有自己的布尔类型,根据这种情况,最佳做法是什么?我可以写逃脱if foo:得到预期的行为在上面的例子,但我喜欢更严格if foo is True:,因为它排除之类的东西2,并 …

python boolean numpy pep8

13
推荐指数
2
解决办法
3780
查看次数

标签 统计

python ×2

boolean ×1

numpy ×1

pep8 ×1

python-3.x ×1