为什么-7在此函数中返回True?

时间:2019-07-30 09:07:37

标签: python python-3.x conditional-statements

基本上,这个问题困扰着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

1 个答案:

答案 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