2017-02-18 55 views
0

我有一個列表,有點類似於下面的列表。SyntaxError:'return'外函數

lines = ['This is line 1',
'This is another line',
'This is the third line. Line 03.']

當運行return語句來爲線的len處理,

for line in lines: 
    return(len(line)) 

生成以下錯誤:

File "", line 2
return(len(line))
^
SyntaxError: 'return' outside function

我能的線路然而print長度,

for line in lines: 
    print(len(line)) 

結果:

14
20
32

究竟是如何在這種情況下,return語句外部功能?

編輯: 下面是它在我的筆記本電腦中的樣子。 http://imgur.com/w4EzlrH

+1

哪兒有你放置在'for'循環包含了'return'這是不是頂層,或者你沒有向我們展示。 'SyntaxError'非常具有描述性,它必須在函數中。 –

回答

3

您的縮進可能不一致。按照PEP-8的建議,每個凹痕級別使用四個空格。其次,它應該在一個函數內。第三,你的return語句不會返回所有項目的長度。

2

返回函數用於將值傳遞迴某個函數被調用的位置。我看到它的方式,你基本上試圖覆蓋返回值。你應該在一個函數中使用它並返回值。你的循環和返回語句似乎不在函數中。

在下面的示例中,我將列表中的每個項目都傳遞給check_len函數,該函數顯然會檢查項目的長度並將其返回。然後,打印列表中每個項目的長度。

?例如:

lines = ['This is line 1', 
'This is another line', 
'This is the third line. Line 03.'] 

def check_len(i): 
    return len(i) 

for line in lines: 
    print(check_len(line))