Идентификатор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.