1

重複の可能性:
IndentationError: unindent が外側のインデント レベルと一致しません

次のpythonコードがあります。

import sys

ins = open( sys.argv[1], "r" )
array = []
for line in ins:
    s = line.split()
    array.append( s[0] ) # <-- Error here 
print array

ins.close()

Pythonインタープリターが文句を言う

  File "sort.py", line 7
    array.append( s[0] )
                       ^
IndentationError: unindent does not match any outer indentation level

なんでそうなの?そして、このエラーを修正する方法は?

4

3 に答える 3

4

タブとスペースが混在しています (時々起こります:)。どちらかを使用してください。

私はあなたの情報源を見ました:

    s = line.split()  # there's a tab at the start of the line
    array.append( s[0] )  # spaces at the start of the line

余談ですが、友好的な提案として、 を使用withしてファイルを開くことを検討してください。close()利点は、作業が完了したとき、または例外が発生したときに、ファイルが自動的に閉じられることです (必要ありません)。

array = []
with open( sys.argv[1], "r" ) as ins:  # "r" really not needed, it's the default.
   for line in ins:
      s = line.split()
      # etc...
于 2012-07-04T11:22:30.293 に答える
3

でコードを実行しますpython -tt sort.py

タブとスペースが混在しているかどうかが表示されます。

于 2012-07-04T11:26:40.547 に答える
2

スペースまたはタブのいずれかを使用し、2 つを混在させずに、インデントが一貫していることを確認してください。

于 2012-07-04T11:22:39.233 に答える