使用mod";%是否有其他替代方法&引用;用python

使用mod";%是否有其他替代方法&引用;用python,python,math,time,mod,Python,Math,Time,Mod,我试图循环浏览一个数字列表(大部分是小数),但我希望同时返回0.0和最大数字。 比如说 maxNum = 3.0 steps = 5 increment = 0 time = 10 while increment < time: print increment * (maxNum / steps)% maxNum increment+=1 但我希望3.0是最大的数字,从0.0开始 0.0 0.6 1.2 1.8 2.4 3.0 0.0 注意,我必须避免计算部分的逻辑循

我试图循环浏览一个数字列表(大部分是小数),但我希望同时返回0.0和最大数字。 比如说

maxNum = 3.0 
steps = 5
increment = 0
time = 10
while increment < time:
    print increment * (maxNum / steps)% maxNum
    increment+=1
但我希望3.0是最大的数字,从0.0开始

0.0
0.6
1.2
1.8
2.4
3.0
0.0

注意,我必须避免计算部分的逻辑循环。

您可以创建数字,然后使用这些数字循环:

import itertools
nums  = itertools.cycle(0.6*i for i in range(6))
for t in range(10):
    print(next(nums))
输出:

0.0
0.6
1.2
1.7999999999999998
2.4
3.0
0.0
0.6
1.2
1.7999999999999998

如果下一个打印的数字是
0.0
,您可以做一个
if
语句,向前看,然后打印
maxNum

maxNum = 3.0
steps = 5
increment = 0
time = 10

while increment < time:
    print(round(increment * (maxNum / steps)% maxNum, 2))
    increment+=1
    if (round(increment * (maxNum / steps)% maxNum, 2)) == 0.0:
        print(maxNum)

只有很小的变化起了作用:

maxNum = 3.0
steps = 5
i = 0
times = 10
step = maxNum / steps
while (i < times):
    print(step * (i % (steps + 1)))
    i += 1

0.0
0.6
1.2
1.7999999999999998
2.4
3.0
0.0
0.6
1.2
1.7999999999999998
maxNum=3.0
步骤=5
i=0
次数=10
步骤=最大数量/步骤
而(i<次):
打印(步骤*(i%(步骤+1)))
i+=1
0
0.6
1.2
1.7999999999999998
2.4
3
0
0.6
1.2
1.7999999999999998
0.0
0.6
1.2
1.8
2.4
3.0
0.0
0.6
1.2
1.8
2.4
3.0
maxNum = 3.0
steps = 5
i = 0
times = 10
step = maxNum / steps
while (i < times):
    print(step * (i % (steps + 1)))
    i += 1

0.0
0.6
1.2
1.7999999999999998
2.4
3.0
0.0
0.6
1.2
1.7999999999999998