python中作为ifthen循环条件的两个随机不等式

2024-04-26 00:24:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我遇到了一个难题。我想弄明白为什么递增计数器不是递增的。它只返回一个值。这个想法是一个随机的时间,递增的计数器t\u years将下降到零并重新开始,而另一个计数器将继续运行。你知道吗

import time, math, random

t0 = time.time()
average_life_span = .10

while True:
    time.sleep(.01)
    a = time.time()
    age = int (a*1000) - int(t0*1000) #millis

    t_years = 0
    while (int (age) < int (random.normalvariate (average_life_span, 1))):
            t_years = 0
    else:
            t_years = t_years + .01

    print age, t_years

Tags: importagetime时间计数器randommathint
1条回答
网友
1楼 · 发布于 2024-04-26 00:24:23

在内部循环之前设置t_years = 0,然后每次通过循环时都设置一次。你知道吗

当最终完成内部循环时,在else子句中添加.01。所以现在它肯定是0.01。你知道吗

下一次通过外循环时,再次将其重置为0,然后一遍又一遍地执行此操作,最后在末尾添加.01。所以它再次被保证是0.01。你知道吗

如果希望数字从0开始,每次通过外循环增加0.01,请不要一直将其重置为0。请执行以下操作:

t_years = 0

while True:
    time.sleep(.01)
    a = time.time()
    age = int (a*1000) - int(t0*1000) #millis

    while (int (age) < int (random.normalvariate (average_life_span, 1))):
        pass
    else:
        t_years = t_years + .01

    print age, t_years

我不知道这个循环到底应该做什么。我不认为它会被触发,但即使它是,它所能做的就是延迟一个随机的时间量燃烧尽可能多的CPU,而这样做。你为什么要这么做?你知道吗

相关问题 更多 >