这是代码:
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
我的代码有什么问题?
您混合使用了制表符和空格。这可能会导致一些令人困惑的错误。
我建议使用only制表符或only空格进行缩进。
仅使用空格通常是更简单的选择。大多数编辑器都有一个选项可以自动将制表符转换为空格。如果您的编辑器有此选项,请将其打开。
顺便说一句,您的代码比需要的更冗长。而不是这个:
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
块是空的。如果您想测试模块中的其余代码,可以使用 pass 语句。
如果您使用的是 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 的回答、Sublime Text 3 文档 和 Python 风格指南。
这个答案主要适用于遇到同样问题并偶然发现此问题并在 Mac OS X 上使用 Sublime Text 3 的读者。