如何在while循环中运行两个while循环

时间:2018-06-07 17:24:19

标签: python python-3.x while-loop

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:循环)。

正在寻找一个我没试过的修复方法。非常感谢

1 个答案:

答案 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语句之后。