Python中的缩进错误
我在用Notepad++写Python代码,
根据很多帖子里的建议,我下载了一个叫“python indent”的工具,并把它设置成启用。
可是即使这样,当我输入打印语句的时候,还是会出现缩进错误,比如“IndentationError: unindent does not match any outer indentation level”。有没有其他工具可以解决这个问题?
因为在JavaScript中,当我选择整个文件,然后用jshint工具选择缩进时,文件就会自动调整好缩进。
我在找Python的工具,但一直没找到。有没有人有好的建议呢?
补充:
尝试:
print "hi"
keys = mgt.get_keys(name)
我在插入打印语句后就出现了这个错误。
4 个回答
在Sublime Text 2中,有一个自动缩进的选项,可以使用空格来进行缩进。你可以在菜单中找到这个选项,路径是:查看 > 缩进 > 使用空格缩进。还有一个选项可以把缩进转换成空格,或者把缩进转换成制表符(Tab),这个选项的路径是:查看 > 缩进 > 转换缩进为制表符。
我知道这段话没有提到Notepad++,但Notepad++可能也有类似的功能。如果没有的话,这些信息对使用Sublime Text 2的人可能会有帮助。
这可能是因为Notepad++在插入制表符或空格时和你现有代码不一致。首先,我建议你让空格和制表符可见;在菜单中选择“视图”/“显示符号”,然后选择“显示空白和制表符”。我建议在任何对空白字符敏感的编程语言中使用这个设置。
我发现Notepad++的默认设置(我用的是6.6.7版本)经常会搞乱我的Python缩进。要解决这个问题:进入“设置”/“首选项”/“制表符设置”/“python”;取消勾选“使用默认值”,然后选择“用空格替代”。
没有办法在不理解代码的情况下自动调整Python代码的缩进(正如@alKid和@Daniel在评论中所说的):
举个例子:
if(x < y):
# Since there are no ending brackets
# how will the program
# know when you want
# to exit the indentation block?
听起来你在代码块里混用了制表符和空格。你要么用制表符,要么用空格,但不要两者都用。