Подтвердить что ты не робот

Как отлаживать ошибки отступов в python

Я пытаюсь написать свой первый питон script. Это работало, но затем, после небольшого рефакторинга, я, по-видимому, сломал отступ. Я не могу определить, в чем проблема. Интерпретатор жалуется на следующий метод. Может кто-нибудь указать на это?

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: ожидается отложенный блок

4b9b3361

Ответ 1

Вы начинаете использовать текстовый редактор, который позволяет отображать отступы, и вы становитесь последовательными в использовании пробелов вместо вкладок, и вы применяете это в своем редакторе.

Ответ 2

Я столкнулся с аналогичной проблемой, используя Sublime Text 2.

Чтобы решить, нажмите "Размер вкладки" внизу редактора и выберите "Преобразовать отступ в табуляции".

Ответ 3

Здесь вы можете многое сделать:

  • Используйте редактор, который может отображать управляющие символы (например, vi с set list).
  • Используйте шестнадцатеричную файловую программу, например od -xcb.
  • Просто удалите пробел в начале этой строки и снова вставьте его (возможно, захотите также проверить предыдущую строку).

Ответ 4

Попробуйте Editra - www.editra.org

Ваш код выглядит отлично, синтаксис кажется прекрасным... ваш текстовый редактор может создавать ваши ошибки. Просмотрите файл с помощью Editra, чтобы просмотреть/просмотреть уровни отступов.

Editra сохранил мое здравомыслие - я думал, что у меня есть правильный синтаксис при просмотре моего script в текстовых редакторах, включая Notepad ++ с плагином отступа python. Однако, когда я буду запускать script, он будет каждый раз отбрасывать ошибки отступа. Я, наконец, открыл script в Editra, и я мог видеть проблему. Notepad ++ и другие текстовые редакторы не отображали правильные отступы/вкладки/пробелы. Editra показал ошибки, например. неожиданные пробелы, вкладки - которые я смог исправить.

Editra автоматически отпечатает ваш script [и покажет ошибки -tabs, пробелы, которые могут не отображаться в других текстовых редакторах].

Если у вас есть ошибки отступа, он будет отображаться как синий подчеркнутый сегмент;

Если вы пишете script [добавление/удаление строк], Editra будет автоматически отступать script.

** Я бы предложил открыть ваш script и отредактировать его в Editra.

Надеюсь, это поможет! Удачи. str8arrow

Ответ 5

если вы используете редактор "Sublime Text 2", я нашел этот ответ полезным - он подробно описывает, как включать символы пробела, а также конвертировать вкладки в пробелы

sublime-text-2-view-whitespace-characters