Python中的缩进错误

0 投票
4 回答
622 浏览
提问于 2025-04-18 10:36

我在用Notepad++写Python代码,

根据很多帖子里的建议,我下载了一个叫“python indent”的工具,并把它设置成启用。

可是即使这样,当我输入打印语句的时候,还是会出现缩进错误,比如“IndentationError: unindent does not match any outer indentation level”。有没有其他工具可以解决这个问题?

因为在JavaScript中,当我选择整个文件,然后用jshint工具选择缩进时,文件就会自动调整好缩进。

我在找Python的工具,但一直没找到。有没有人有好的建议呢?

补充:

尝试:

    print "hi"
    keys = mgt.get_keys(name)

我在插入打印语句后就出现了这个错误。

4 个回答

0

在Sublime Text 2中,有一个自动缩进的选项,可以使用空格来进行缩进。你可以在菜单中找到这个选项,路径是:查看 > 缩进 > 使用空格缩进。还有一个选项可以把缩进转换成空格,或者把缩进转换成制表符(Tab),这个选项的路径是:查看 > 缩进 > 转换缩进为制表符。

我知道这段话没有提到Notepad++,但Notepad++可能也有类似的功能。如果没有的话,这些信息对使用Sublime Text 2的人可能会有帮助。

0

这可能是因为Notepad++在插入制表符或空格时和你现有代码不一致。首先,我建议你让空格和制表符可见;在菜单中选择“视图”/“显示符号”,然后选择“显示空白和制表符”。我建议在任何对空白字符敏感的编程语言中使用这个设置。

我发现Notepad++的默认设置(我用的是6.6.7版本)经常会搞乱我的Python缩进。要解决这个问题:进入“设置”/“首选项”/“制表符设置”/“python”;取消勾选“使用默认值”,然后选择“用空格替代”。

2

没有办法在不理解代码的情况下自动调整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?
4

听起来你在代码块里混用了制表符和空格。你要么用制表符,要么用空格,但不要两者都用。

撰写回答