0
def makes10(a, b):
 return ((a or b) is 10) or (a+b is 10)

makes10(9, 10)  False

我希望以上内容与以下内容相同,但返回不同的结果。

def makes10(a, b):
  return (a == 10 or b == 10 or a+b == 10)

makes10(9, 10)  True
4

2 回答 2

1
>>> (1 or 10) is 10
False
>>> (10 or 1) is 10
True
>>> (1 or 10)
1

使用 or 和 is 检查这些数字中的任何一个是否为 10 都不起作用...

make10() 的底层版本可能是要走的路。正如@Wooble 所说,不要使用 is 来比较整数值。

于 2013-07-11T15:58:25.387 回答
0

Python 将 a 和 b 作为 2 个不同的对象。

使用“is”比较对象,而“==”将按值进行比较。

例如,如果您有 a=10,

a==10 应该返回 true 而 a is 10 应该返回 false

于 2013-07-11T15:56:25.590 回答