基本上,这个问题困扰着Reddit Post。该函数不应在数学上返回True。但是,在评论的返回中提到的-7令人惊讶。谁能具体解释为什么-7?我正在使用python 3.7。
def check(x):
if 1+x is x+1:
return False
if 2+x is not x+2:
return False
return True
check(-7)
True
答案 0 :(得分:3)
Python的is
运算符检查 身份 ,而不是相等:
In [670]: id(-6), id(-6)
Out[670]: (9830796528, 4454912496)
In [671]: -6 == -6
Out[671]: True
https://docs.python.org/3.3/library/stdtypes.html#comparisons