interval_sec = 15.0
t_end = time.time() + interval_sec
episode = 0
while True:
while episode < 3:
print('Episode %s' % episode)
episode += 1
while time.time() < t_end:
print("hi")
我已经尝试了一切。我尝试使用for循环(对于范围(0,3)中的剧集),删除剧集var甚至定义
while episode < 3:
print('Episode %s' % episode)
episode += 1
作为循环中的函数。
我试图用伪代码实现的预期输出是:
第一个嵌套的while循环(而剧集&lt; 3 :)打印出来
Episode 0
Episode 1
Episode 2
然后第二个嵌套的while循环打印出“hi”15秒
然后第一个嵌套的while循环应该打印出来
Episode 0
Episode 1
Episode 2
再打印“hi”15秒再等等。它应该永远重复这个过程(因此while True:循环)。
正在寻找一个我没试过的修复方法。非常感谢
答案 0 :(得分:0)
第一个循环的计数逻辑错误。查看初始化,测试和增量的基本部分:
episode = 0
while episode < 3:
...
episode += 1
这形成了基本的计数循环。问题是你将它们分开,将它们放在不同的逻辑块中:
episode = 0
while True: # This is fatal to your counting loop's operation
while episode < 3:
...
episode += 1
Python为您提供了帮助解决此问题的工具。 for
语句在一个方便的包中为您提供计数循环:
for episode in range(3):
....
现在将循环部分保持在一起是微不足道的。
请注意,结束时间有同样的问题:您需要为外部while
循环的每次迭代重新计算它,以便代码应该在while True
语句之后。