我处在一个难题中。我试图弄清楚为什么递增计数器不是增量。它返回的值只有一个。这个想法是一个随机时间,递增计数器t_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
答案 0 :(得分:1)
你在内循环之前设置t_years = 0
,然后每次循环再次设置。{/ p>
当您最终完成内部循环时,在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。你为什么要那样做?