下面是代码:
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
这有什么错我的代码?
您已经混合制表符和空格。 这可能会导致一些容易混淆的错误。
我建议只使用标签或仅缩进空间。
仅使用空间一般是比较容易的选择。 大多数编辑有标签自动转换为空间的选项。 如果您的编辑器有这个选项,打开它。
顺便说一句,你的代码是更详细的比它需要。 取而代之的是:
if str_p == str_q:
result = True
else:
result = False
return result
只是这样做:
return str_p == str_q
您也似乎对这一行的错误:
str_q = p[b+1:]
我将离开你要弄清楚是什么错误。
如果你有一个不带语句块也会出现此错误
例如:
def my_function():
for i in range(1,10):
def say_hello():
return "hello"
请注意, for
块是空的。 您可以使用通 ,如果你要测试的模块中剩余的代码语句。
如果您使用的是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
}
幸得马克·拜尔的答案 , 崇高的文本文档3和蟒蛇风格指南 。
这个答案主要是为读者谁有同样的问题和这跌跌Mac OS X上使用的是崇高的文本3
我得到了同样的错误,这就是我所做的,以解决这一问题。
压痕之前:
压痕错误:预期的缩进块。
压痕后:
做工精细。 之后TAB空间。
您应该安装支持Python语法一个编辑器(或IDE)。 它可以突出显示源代码,并进行基本格式检查。 例如:Eric4,Spyder的,NINJIA,或Emacs,VI。