怎么避免Python程序出现死循环(无限循环)?

x33g5p2x  于2022-02-07 转载在 Python  
字(0.7k)|赞(0)|评价(0)|浏览(396)

要知道,每个循环结构(while 或 for)都必须有停止运行的途径,这样才不会没完没了地执行下去。

例如,下面的循环从1数到5:
x = 1
while x <= 5:
print(x)
x += 1
运行结果为:
1
2
3
4
5

但如果像下面这样不小心遗漏了代码行x += 1,那么这个循环将没完没了地运行:
#这个循环将没完没了地运行
x = 1
while x <= 5:
print(x)
在这里,x 的初始值为 1,但根本不会变,因此条件测试x <= 5始终为 True,导致 while 循环没完没了地打印 1,运行结果如下所示:
1
1
1
1
–snip–

每个程序员都会偶尔因为不小心而编写出无限(死)循环,在循环的退出条件比较微妙时尤其如此。

如果程序陷入无限循环,可按组合键Ctrl+C,也可关闭显示程序输出的终端窗口,如果前 2 种方式都无效,比如有些编辑器(如 Sublime Text)内嵌了输出窗口,这可能导致难以结束无限循环,因此不得不关闭编辑器来结束无限循环。对于新手小白想更轻松的学好Python基础,Python爬虫,web开发、大数据,数据分析,人工智能等技术,这里给大家分享系统教学资源,架下我尉(同英): 2763177065 【教程/工具/方法/解疑】

读者可能会问,怎样才能有效避免编写出包含无限循环的程序呢?

要避免编写无限(死)循环,应务必对每个 while 循环(或 for 循环)进行测试,确保它按预期那样结束。如果希望程序在用户输入特定值时结束,可运行程序并输入这样的值,如果此时程序没有结束,则说明该循环结构会无限循环,应检查程序处理这个值的方式。

总之,解决无限(死)循环的方法只有一个,即确认循环结构中至少有一个位置能让循环条件为 False 或让 break 语句得以执行。

相关文章