我试图创建一个功能,测试一个数字是否可以被其他数字整除(在*args
部分提交)。
当我运行is_divisible(13, 2, 4)
时,我的函数返回False
,当我运行is_divisible(12, 2, 4)
时返回True。但是is_divisible(6, 8, 10, 2)
会返回True
。我不知道什么是错的,任何帮助都会受到高度赞赏。
def is_divisible(numerator, *args):
divisors = list(args)
for number in range(len(divisors)):
x = divisors.pop()
if numerator % x != 0:
return False
else:
return True
答案 0 :(得分:2)
使用any
的更多pythonic解决方案:
>>> def is_divisible(numerator, *args):
return not any(numerator % divisor for divisor in args)
>>> is_divisible(13,4,2)
False
>>> is_divisible(60,3,2)
True
答案 1 :(得分:0)
def is_divisible(numerator, *args):
divisors = list(args)
for divisor in divisors:
if numerator % divisor != 0:
return False
return True
print(is_divisible(6, 8, 10, 2))
这是您稍微修改过的代码。我认为你想要检查你的号码是否可以被列表中的所有数字整除,这就是我将return True
移出for块的原因。否则你会在*args
的第一个数字上返回结果,因此你错误地True
,因为6可以被2整除(但不能被8或10整除)。