ИдентификаторError ожидает отложенный блок

Вот код.:

def myfirst_yoursecond(p,q):

a = p.find(" ")
b = q.find(" ")
str_p = p[0:a]
str_q = p[b+1:]

if str_p == str_q:
    result = True
else:
    result = False
return result

Вот ошибка:

Traceback (most recent call last):
File "vm_main.py", line 26, in <module>
import main
File "/tmp/vmuser_ssgopfskde/main.py", line 22
result = False
^
IndentationError: expected an indented block

Что не так с моим кодом?

Ответ 1

У вас смешанные вкладки и пробелы. Это может привести к некоторым путающим ошибкам.

Я бы предложил использовать только вкладки или только пробелы для отступов.

Использование только пробелов, как правило, является более легким выбором. Большинство редакторов имеют возможность автоматического преобразования вкладок в пробелы. Если ваш редактор имеет этот параметр, включите его.


В стороне, ваш код более подробный, чем он должен быть. Вместо этого:

if str_p == str_q:
    result = True
else:
    result = False
return result

Просто сделайте следующее:

return str_p == str_q

У вас также есть ошибка в этой строке:

str_q = p[b+1:]

Я оставлю вас выяснить, что такое ошибка.

Ответ 2

Эта ошибка также возникает, если у вас есть блок без инструкций в нем

Например:

def my_function():
    for i in range(1,10):


def say_hello():
    return "hello"

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

Ответ 3

Если вы используете mac и возвышенный текст 3, это то, что вы делаете.

Перейдите к /Packages/User/ и создайте файл с именем Python.sublime-settings.

Обычно /Packages/User находится внутри вашего ~/Library/Application Support/Sublime Text 3/Packages/User/Python.sublime-settings, если вы используете mac os x.

Затем вы помещаете это в Python.sublime-settings.

{
    "tab_size": 4,
    "translate_tabs_to_spaces": false
}

Кредит переходит к Mark Byer answer, возвышенный текст 3 docs и руководство по стилю python.

Этот ответ в основном предназначен для читателей, у которых была одна и та же проблема, и наткнуться на них, и использует возвышенный текст 3 в Mac OS X.

Ответ 4

Вы должны установить редактор (или IDE), поддерживающий синтаксис Python. Он может выделять исходный код и выполнять базовую проверку формата. Например: Eric4, Spyder, Ninjia или Emacs, Vi.

Ответ 5

У меня такая же ошибка, вот что я сделал для решения проблемы.

Перед отступом:

введите описание изображения здесь

Ошибка отступов: ожидается отложенный блок.

После отступов:

введите описание изображения здесь

Работает отлично. После пробела TAB.