你知道为什么我的循环+模(%)跳过python中的数字

问题描述 投票:0回答:1

我尝试每20个步骤进行一次更新,但跳过了一些我不明白的数字

time=np.linspace(0.1,100,1000)    

for t in time:
    if t % 2 ==0.0:
        print(t, 'ms')

谢谢

python loops modulo
1个回答
1
投票

这是由于linespace不能达到18.020.0之类的精确值。由于进行浮点计算,因此存在较小的ε。您可以像下面那样更改代码,然后将所有数字都输入:

time=np.linspace(0.1,100,1000)    
epsilon = 0.0001
for t in time:
    if t % 2 < epsilon:
        print(t, 'ms')
© www.soinside.com 2019 - 2024. All rights reserved.