我想找到所有数字除以1和5之间的所有数字。我如何编写程序,以便如果'start'的余数除以x经过的所有数字等于0表示将打印开始。是否有任何语法可以计算我正在寻找的东西。感谢。
导入数学
def main():
one = 1
start = 1
while one == 1:
for x in range(1, 5):
if start % x == 0:
print start
start += 1
答案 0 :(得分:3)
首先,你似乎要求所有的60的倍数。这些可以很容易地呈现(注意,这是一个无限循环):
from itertools import count
for i in count():
print i*60
如果你只是简化了你的例子,这是你所写内容的一个更加pythonic(和正确)的解决方案(再次是一个无限循环):
from itertools import count
# put any test you like in this function
def test(number):
return all((number % i) == 0 for i in range(1,6))
my_numbers = (number for number in count() if test(number))
for number in my_numbers:
print number
您的原始代码中存在严重错误:range(1,5)
等于[1, 2, 3, 4]
,因此无法测试数字是否可以被5分割!
PS:您之前使用过那个疯狂的one = 1
构造,我们向您展示了如何以更好的方式对其进行编码。请从我们的答案中学习!
答案 1 :(得分:0)
如果我理解正确你想要这样的东西:
start = 1
while (True):
flgEvenlyDiv = True
for x in range(1, 5):
if (start % x != 0):
flgEvenlyDiv = False
break
if (flgEvenlyDiv == True):
print start
start += 1