Python: «разрыв» вне цикла - PullRequest
27 голосов
/ 17 марта 2010

в следующем коде Python:

narg=len(sys.argv)
print "@length arg= ", narg
if narg == 1:
        print "@Usage: input_filename nelements nintervals"
        break

Я получаю:

SyntaxError: 'break' outside loop

Почему?

Ответы [ 5 ]

53 голосов
/ 17 марта 2010

Потому что break не может использоваться для выхода из if - он может выходить только из циклов Это способ, которым Python (и большинство других языков) указывается для поведения.

Что ты пытаешься сделать? Возможно, вам следует использовать sys.exit() или return вместо?

2 голосов
/ 17 марта 2010

Потому что разрыв может использоваться только внутри цикла. Используется для выхода из цикла (остановки цикла).

2 голосов
/ 17 марта 2010

Потому что оператор break предназначен для выхода из циклов. Вам не нужно вырываться из оператора if - он просто заканчивается в конце.

1 голос
/ 17 марта 2010

break прерывает цикл, а не оператор if, как указывали другие. Мотивация для этого не так уж трудно увидеть; думать о коде, как

for item in some_iterable:
    ...
    if break_condition():
        break 

break был бы довольно бесполезен, если бы он завершил блок if, а не завершил цикл - условное завершение цикла - это именно то, для чего используется break.

0 голосов
/ 21 июня 2019

Это старый вопрос, но если вы хотите выйти из оператора if, вы можете сделать:

while 1:
    if blah:
        break
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...