16

私は最初のPythonスクリプトを書き込もうとしています。これは機能していましたが、少しリファクタリングした後、明らかにインデントを壊しました。何が問題なのかわかりません。通訳は次の方法について文句を言う。誰かがそれを指摘できますか?

def dataReceived(self, data):
    a = data.split(':')
    print a
    if len(a) > 1:
        command = a[0]
        content = a[1]

        msg = ""
        if command == "iam":
            self.name = content
            msg = self.name + " has joined"

        elif command == "msg":
            msg = self.name + ": " + content
            print msg

エラーは次のとおりです。ファイル"python_server.py"、17行目a = data.split(':')^ IndentationError:インデントされたブロックが必要です

4

5 に答える 5

52

SublimeText2を使用して同様の問題が発生しました。

解決するには、エディターの下部にある[タブサイズ]をクリックし、[インデントをタブに変換]を選択します。

于 2012-07-22T17:08:05.263 に答える
5

インデントを表示できるテキストエディタの使用を開始し、タブの代わりにスペースを使用することに一貫性を持たせ、エディタでそれを適用します。

于 2012-04-05T02:48:01.310 に答える
3

ここでできることはたくさんあります。

  1. 制御文字を表示できるエディターを使用します(のようviset list)。
  2. のような16進ダンパープログラムを使用しod -xcbます。
  3. その行の先頭にある空白を削除して再挿入するだけです(前の行も確認することをお勧めします)。
于 2012-04-05T02:49:31.077 に答える
1

「SublimeText2」エディターを使用している場合は、この回答が役立つと思います。空白文字をオンにする方法と、タブを空白に変換する方法について詳しく説明しています。

sublime-text-2-view-whitespace-characters

于 2018-02-13T17:37:19.800 に答える
0

Editraをお試しください-www.editra.org

コードは正常に見え、構文は正常に見えます...テキストエディタがエラーを作成している可能性があります。Editraでファイルを確認して、インデントレベルを確認/確認します。

Editraは私の正気を救いました-Pythonインデントプラグインを備えたNotepad++を含むテキストエディターでスクリプトを表示するとき、正しい構文があると思いました。ただし、スクリプトを実行すると、毎回インデントエラーが発生します。ついにEditraでスクリプトを開いたところ、問題がわかりました。Notepad++およびその他のテキストエディタに正しいインデント/タブ/スペースが表示されませんでした。Editraは、予期しないスペースやタブなどのエラーを示しました。これは修正できました。

Editraは、スクリプトを自動インデントします[他のテキストエディタには表示されない可能性のあるエラー(タブ、スペース)を表示します]。

インデントエラーがある場合は、青い下線付きのセグメントとして表示されます。

スクリプトを作成している場合[行の追加/削除]Editraはスクリプトを自動インデントします。

**スクリプトを開いてEditraで編集することをお勧めします。

お役に立てれば!幸運を祈ります。str8arrow

于 2015-04-05T14:02:49.060 に答える