2015-01-29 3 views
0

Использование Python 3.4, интересно, как эта обработка цикла?Понимание логики Python

while SyntaxError: 
    print ("Hi") 

Это бесконечный цикл, как это while цикл работает? Это исключение, но ...?

+3

Поскольку класс 'SyntaxError' оценивает truthy в логическом контексте. Это эквивалентно 'while True', что это« Исключение »не имеет значения. – jonrsharpe

ответ

3

Булево значение SyntaxError is True.

>>> bool(SyntaxError) 
True 

Вот почему while цикл происходит в бесконечном цикле, потому что while SyntaxError: эквивалентно while True: состоянии.

while SyntaxError: 
    print ("Hi") 
+1

это имеет смысл. –

4

Исключение составляют только объекты, если они не raise d - bool(SyntaxError) является True, так чтобы цикл эффективно while True:

Смежные вопросы