在 python 中使用 mod "%" 有替代方法吗
is there an alternative to using mod "%" in python
我正在尝试遍历数字列表(主要是小数),但我想要 return 0.0 和最大数字。
例如
maxNum = 3.0
steps = 5
increment = 0
time = 10
while increment < time:
print increment * (maxNum / steps)% maxNum
increment+=1
#
我将其作为输出
0.0
0.6
1.2
1.8
2.4
0.0
但我想要 3.0 作为最大数字并从 0.0 I.E. 开始
0.0
0.6
1.2
1.8
2.4
3.0
0.0
注意,我必须避免计算部分的逻辑循环。
您可以创建您想要的数字,然后使用 itertools.cycle 循环显示它们:
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)
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
我正在尝试遍历数字列表(主要是小数),但我想要 return 0.0 和最大数字。 例如
maxNum = 3.0
steps = 5
increment = 0
time = 10
while increment < time:
print increment * (maxNum / steps)% maxNum
increment+=1
#
我将其作为输出
0.0
0.6
1.2
1.8
2.4
0.0
但我想要 3.0 作为最大数字并从 0.0 I.E. 开始
0.0
0.6
1.2
1.8
2.4
3.0
0.0
注意,我必须避免计算部分的逻辑循环。
您可以创建您想要的数字,然后使用 itertools.cycle 循环显示它们:
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)
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