Python: наружный цикл "break"
в следующем коде python:
narg=len(sys.argv)
print "@length arg= ", narg
if narg == 1:
print "@Usage: input_filename nelements nintervals"
break
Я получаю:
SyntaxError: 'break' outside loop
Почему?
Ответы
Ответ 1
Поскольку break не может использоваться для выхода из if, он может вырваться из циклов. То, как указано поведение Python (и большинства других языков).
Что вы пытаетесь сделать? Возможно, вы должны использовать sys.exit()
или return
вместо этого?
Ответ 2
Потому что оператор break предназначен для выхода из циклов. Вам не нужно выходить из инструкции if, она заканчивается в конце.
Ответ 3
Потому что разрыв может использоваться только внутри цикла.
Он используется для выхода из цикла (остановка цикла).
Ответ 4
break
прерывает цикл, а не оператор if
, как указывали другие. Мотивация для этого не так уж трудно увидеть; думать о коде как
for item in some_iterable:
...
if break_condition():
break
break
был бы довольно бесполезен, если бы он завершал блок if
а не завершал цикл - условное завершение цикла - это именно то, для чего используется break
.
Ответ 5
Это старый вопрос, но если вы хотите вырваться из оператора if, вы можете сделать следующее:
while 1:
if blah:
break
Ответ 6
за использование перерыва использования выхода()