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
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
>>> (1 or 10) is 10
False
>>> (10 or 1) is 10
True
>>> (1 or 10)
1
使用 or 和 is 检查这些数字中的任何一个是否为 10 都不起作用...
make10() 的底层版本可能是要走的路。正如@Wooble 所说,不要使用 is 来比较整数值。
Python 将 a 和 b 作为 2 个不同的对象。
使用“is”比较对象,而“==”将按值进行比较。
例如,如果您有 a=10,
a==10 应该返回 true 而 a is 10 应该返回 false