我写了一些代码来评估x和y之间的整数,并用整数3和5检查可分性。 这是代码。
def div_3_5(start, end):
result = 0
result2 = 0
result3 = 0
while start < end:
result2 = start + result
result = result2 - start + 1
if result2 % 3==0 or 5==0:
result3 = result3 + 1
else:
result3 = result3 + 0
return result3
我只是一个初学者,但是代码中的一切似乎都很好,除非我错误地使用了“或”语句或错误地检查了可分性。这让我想到了主要问题。任何帮助,将不胜感激。
答案 0 :(得分:6)
你需要这样做:
if result2 % 3 == 0 or result2 % 5 == 0:
否则会将其解析为if (result2 % 3==0) or (5==0):
,这明显错误为5 != 0
。
另一个建议可能非常有用,因为您有更多数字要检查可分性:
if any(result2 % i == 0 for i in (3, 5)):
这是你似乎想要做的更简单的版本(Project Euler问题1):
def div_3_5(start, end):
return sum(1 for i in range(start, end+1) if i % 3 == 0 or i % 5 == 0)
或者,使用De Morgan定律以及0
是False
- ish值的事实:
def div_3_5(start, end):
return sum(1 for i in range(start, end+1) if not (i % 3 and i % 5))