这是代码。:
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
我的代码出了什么问题?
答案 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的answer,sublime text 3 docs和python style guide。
这个答案主要针对那些遇到同样问题且偶然发现并且在Mac OS X上使用sublime text 3的读者。
答案 2 :(得分:3)
答案 3 :(得分:0)
您应该安装支持Python语法的编辑器(或IDE)。它可以突出显示源代码并进行基本格式检查。 例如:Eric4,Spyder,Ninjia或者Emacs,Vi。