内部for循环产生无限循环?

时间:2013-06-09 22:49:24

标签: python for-loop while-loop infinite-loop

我为成为一名新手而道歉,但为什么这个循环会永远运行?

for i in range (1,3):
    while i < 5:
        print ('ha')

4 个答案:

答案 0 :(得分:3)

您的代码基本上是在执行以下操作:

  

对于1,2和3中的每个值,执行以下操作:当前值小于5时,打印'ha'

正如你可以读到的那样,值将以1开始,而1小于5时,将打印“ha”。由于值未更新,1将始终小于5,因此您将获得无限的“ha”

您可能会混淆while语句

这更有意义:

  

对于1,2和3中的每个值,执行以下操作:如果当前值小于5,则打印'ha'

启动器的提示:尝试始终以您的自然语言读取/写入算法,然后尝试使用计算机语言对其进行编程。确实编程语言很难,因为它们正在演变成更人性化的形式,它们需要你在数学和结构上思考更多

答案 1 :(得分:2)

for i in range(1, 3)表示它以数字1开头。

你说的是数字1:

while 1 < 5:
    print('ha')

这将永远持续下去,因为一个人不到五个,而且永远都是。

因此for循环永远不会到达23,因为它还没有完成1

答案 2 :(得分:0)

您不会在i循环内修改while,因此如果循环条件为true,则始终为true。也许你的意思是if,而不是while

答案 3 :(得分:0)

因为while也定义了一个循环。代码正在构建所谓的嵌套循环。与for循环不同,while循环不更新迭代器变量(实际上在while循环上没有迭代器,只有条件)并且因为循环体不改变条件,所以i&lt; 5总是正确的,而while循环是无限的。

也许您想要一个if操作而不是嵌套循环?

for i in range (1,3):
    if i < 5:
        print ('ha')
相关问题