2010-03-17 56 views
17

在下面的Python代碼:的Python: '休息' 外循環

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

我得到:

SyntaxError: 'break' outside loop 

爲什麼?

+2

你認爲'break'在這裏有什麼用處?你期望發生什麼? – 2010-03-17 13:35:28

+2

optparse模塊(或類似的)將使解析argv更簡單。 http://docs.python.org/library/optparse.html – 2010-03-17 13:36:34

回答

39

因爲break不能用來打破if - 它只能打破循環。這就是Python(和大多數其他語言)指定的行爲方式。

你想做什麼?也許你應該用sys.exit()return來代替?

+1

我該怎麼做,腳本停在這裏? – flow 2010-03-17 13:35:20

+5

'sys.exit()'立即終止程序。 – 2010-03-17 13:36:43

+1

'raise SystemExit'終止程序;如果你喜歡函數調用,'sys.exit()'會引發它。 – tzot 2010-04-04 08:24:06

2

因爲break語句旨在突破循環。你不需要打破if語句 - 它只是在最後結束。

2

因爲break只能在循環中使用。 它用於突破循環(停止循環)。正如其他人所指出的那樣,

0

break突破循環,而不是if聲明。對此的動機不難看出;如果完成了if塊,而不是打破循環想想這樣的代碼

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

break將是相當無用的。考慮一下,我不能想象你會用任何方式使用break的情況,但在if語句中打破if語句所在的循環。