2017-02-18 6 views
0

私はリストを持っていますが、これは以下のようなものです。SyntaxError:関数の外部に 'return'があります

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

私はラインのlenするための方法returnステートメントを実行すると、

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)) 

結果:このインスタンスでreturn文の外機能であるどのように正確に

14
20
32

編集: これは私のノートブックの外観です。 http://imgur.com/w4EzlrH

+1

それはトップレベルのどちらかだか、あなたが私たちを示していません。 'SyntaxError'はかなり記述的です。関数内に*なければなりません。 –

答えて

3

インデントが矛盾する可能性があります。 PEP-8で推奨されているように、インデント・レベルごとに4つのスペースを使用してください。第二に、それは関数の中にあるべきです。第3に、あなたのリターンステートメントは、あなたが望むようにすべてのアイテムの長さを返しません。

2

return関数は、特定の関数が呼び出される場所に値を戻すために使用されます。私はそれを見て、あなたは本質的に戻り値を上書きしようとしています。あなたは何かをする関数でそれを使用し、値を返します。あなたのループとreturnステートメントは関数内にはありません。

以下の例では、リスト内の各項目を取得してcheck_len関数に渡します。これは明らかに項目の長さをチェックして返します。次に、リスト内の各項目の長さが印刷されます。

例:?まさにあなたが `return`が含まれている` for`ループを配置している

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)) 
関連する問題