我接受了 Python 测试,其中一个问题是:应该将什么传递给以下函数,以便它返回True
?
def fun(x):
if x + 1 is 1 + x:
return False
if x + 2 is not 2 + x:
return False
return True
Run Code Online (Sandbox Code Playgroud)
在我看来,这没有多大意义,但我只想知道正确的答案(如果存在这样的答案)。
小智 11
这与 python 如何缓存小数有关:https : //stackoverflow.com/a/48120163/13003236
通常,is
用于检查两个变量是否是同一个对象,而不是它们是否具有相同的值。但是,由于 python 缓存小数的方式,调用is
从 -5 到 256 的数字与比较它们的效果相同。因此,如果x + 1
小于 -5,但x + 2
大于或等于-5,则此函数返回 true 。这意味着将 -7 传递给此函数将使其成功。
归档时间: |
|
查看次数: |
101 次 |
最近记录: |