相关疑难解决方法(0)

"=="和"是"之间有区别吗?

我的Google-fu让我失望了.

在Python中,以下两个相等的测试是否等效?

n = 5
# Test one.
if n == 5:
    print 'Yay!'

# Test two.
if n is 5:
    print 'Yay!'
Run Code Online (Sandbox Code Playgroud)

对于您要比较实例的对象(list比如说),这是否适用?

好的,所以这样的答案我的问题:

L = []
L.append(1)
if L == [1]:
    print 'Yay!'
# Holds true, but...

if L is [1]:
    print 'Yay!'
# Doesn't.
Run Code Online (Sandbox Code Playgroud)

所以==测试值测试的地方is是否是同一个对象?

python equality reference semantics

630
推荐指数
11
解决办法
33万
查看次数

np.isnan()== False,但是np.isnan()不是False

据我所知,==检查价值是否相等,并is检查价值背后的结构的身份(例如===在其他一些语言中).

鉴于此,我不明白以下内容:

np.isnan(30) == False
Out[19]: 
True
np.isnan(30) is False
Out[20]: 
False
Run Code Online (Sandbox Code Playgroud)

其他身份检查似乎并非如此:

(5 == 4) == False
Out[22]: 
True
(5 == 4) is False
Out[23]: 
True
Run Code Online (Sandbox Code Playgroud)

看起来好像是作为值np.isnan()返回False,而不是作为标识返回.为什么会这样?

python boolean numpy python-3.5

1
推荐指数
1
解决办法
1388
查看次数

标签 统计

python ×2

boolean ×1

equality ×1

numpy ×1

python-3.5 ×1

reference ×1

semantics ×1