def common(num):
#returns true if num is divisible by all the 'i' integers
if all(num%divisor==0 for divisor in (1,10)):
return True
else:
return False
print(common(2520)) --> True
print(common(10)) --> True
print(common(17)) --> False
大家好,这个函数应该判断'num'是否是所有'i'数字的公倍数。我无法弄清楚为什么10回归True?不是'all()'意味着每个测试都必须为True,因为整个事情都是真的吗? 我用错了吗?我应该使用哪些更好的功能?感谢您的任何见解。
-wt
答案 0 :(得分:3)
寻找自己的方法:
num=10
for divisor in (1,10):
print(divisor, num%divisor , num%divisor==0)
给出
1 0 True
10 0 True
让您理解(1,10)
是一个元组,而您当然想要range(1,10)
。
请注意,函数common()
具有与
all(num%divisor==0 for divisor in range(1,10))
然后您可以将其定义为:
def common(num):
return all(num%divisor==0 for divisor in range(1,10))