Python:在外部循环'打破'

时间:2010-03-17 13:32:45

标签: python

在以下python代码中:

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

我明白了:

SyntaxError: 'break' outside loop

为什么?

5 个答案:

答案 0 :(得分:53)

因为break不能用于打破if - 它只能打破循环。这就是指定Python(以及大多数其他语言)的行为方式。

你想做什么?也许您应该使用sys.exit()return代替?

答案 1 :(得分:2)

因为break语句旨在打破循环。你不需要打破if语句 - 它只是在结束时结束。

答案 2 :(得分:2)

因为break只能在循环中使用。 它用于打破循环(停止循环)。

答案 3 :(得分:1)

正如其他人所指出的那样,

break突破了循环,而不是if语句。这个动机并不难看出来;想想像

这样的代码
for item in some_iterable:
    ...
    if break_condition():
        break 

如果break终止if块而不是终止循环,则break将毫无用处 - 有条件地终止循环是{{1}}用于确切的事情。

答案 4 :(得分:0)

这是一个古老的问题,但是如果您想突破if语句,可以这样做:

while 1:
    if blah:
        break