理解 Python 逻辑

Understanding Python logic

使用Python3.4,请问这个循环是怎么处理的?

while SyntaxError:
    print ("Hi")

这是一个无限循环,这个while如何循环运行?这是一个例外,但是..?

SyntaxError 的布尔值是 True

>>> bool(SyntaxError)
True

这就是为什么 while 循环进入无限循环的原因,因为 while SyntaxError: 等同于 while True: 条件。

while SyntaxError:
    print ("Hi")

异常只是对象,除非它们是 raised - bool(SyntaxError)True,所以你的循环实际上是 while True: