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

    要知道,每个循环结构(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)内嵌了输出窗口,这可能导致难以结束无限循环,因此不得不关闭编辑器来结束无限循环。

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

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

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

更多...

加载中...