IndentationError需要一个缩进块

时间:2012-04-20 00:37:39

标签: python indentation

这是代码。:

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

我的代码出了什么问题?

4 个答案:

答案 0 :(得分:33)

您混合了标签和空格。这可能会导致一些令人困惑的错误。

我建议只使用 标签或 空格进行缩进。

通常只使用空格是更容易的选择。大多数编辑器都有自动将标签转换为空格的选项。如果您的编辑器有此选项,请将其打开。


顺便说一下,你的代码比它需要的更冗长。而不是:

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

这样做:

return str_p == str_q

此行似乎也有错误:

str_q = p[b+1:]

我会让你弄清楚错误是什么。

答案 1 :(得分:3)

如果你使用的是mac和sublime text 3,那就是你要做的。

转到/Packages/User/并创建一个名为Python.sublime-settings的文件。

如果您使用的是mac os x,通常/Packages/User位于~/Library/Application Support/Sublime Text 3/Packages/User/Python.sublime-settings内。

然后你把它放在Python.sublime-settings

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

感谢Mark Byer的answersublime text 3 docspython style guide

这个答案主要针对那些遇到同样问题且偶然发现并且在Mac OS X上使用sublime text 3的读者。

答案 2 :(得分:3)

我得到了同样的错误,这就是我为解决这个问题所做的。

缩进前

enter image description here

缩进错误:预计会出现缩进块。

缩进后

enter image description here

工作正常。在TAB空间之后。

答案 3 :(得分:0)

您应该安装支持Python语法的编辑器(或IDE)。它可以突出显示源代码并进行基本格式检查。 例如:Eric4,Spyder,Ninjia或者Emacs,Vi。