【问题标题】:Indentation errors in python [duplicate]python中的缩进错误[重复]
【发布时间】:2014-08-12 02:50:51
【问题描述】:

我在notepad++中做python编程,

所以正如许多帖子中所建议的那样,我下载了一个名为“python indent”的工具并将其设置为启用。

即使在此之后,当我输入打印语句时,仍然会出现缩进错误,例如“IndentationError: unindent does not match any external indentation level”,还有其他工具可用于此目的吗? 因为在 javascript 中,当我选择整个文件并转到 jshint 工具并选择缩进时,我只会得到正确缩进的文件。

我正在 python 中寻找一个工具,但无法获得它。请问大家有什么建议吗?

编辑:

尝试:

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

插入打印语句后出现错误

【问题讨论】:

  • 在python中缩进属于语义,所以设计上不能自动缩进。
  • Python 中的缩进就像其他编程语言中的括号一样,不能自动化。你必须自己理解代码。

标签: python python-2.7 python-3.x


【解决方案1】:

听起来您的块中混合了制表符和空格。使用其中一种,但不能同时使用。

【讨论】:

【解决方案2】:

如果不了解代码,就无法自动缩进 python(正如 @alKid 和 @Daniel 在 cmets 中所说):

例如:

if(x < y):
    # Since there are no ending brackets
    # how will the program
    # know when you want
# to exit the indentation block?

【讨论】:

    【解决方案3】:

    这可能是 Notepad++ 插入的制表符/空格与您现有的代码不一致。我首先建议让空格/制表符可见;菜单项查看/显示符号,然后选择“显示空白和制表符”。我建议将此设置用于任何空格重要的语言。

    我发现 Notepad++ 中的默认设置(我使用的是 v.6.6.7)经常弄乱我的 Python 缩进。要更正此问题:设置/首选项/选项卡设置/python;取消选中“使用默认值”,而是指定“用空格替换”。

    【讨论】:

      【解决方案4】:

      在 Sublime Text 2 中,可以在 View > Indentation > Indent Using Whitespaces 下使用空格自动缩进。在 View > Indentation > Convert Indentation to Tabs 下还可以选择将缩进转换为空格或将缩进转换为制表符。

      我知道这不能解决 notepad++,但 notepad++ 可能有类似的可用内容,如果没有,这可能对 Sublime Text 2 用户有帮助。

      【讨论】:

        猜你喜欢
        • 2013-02-05
        • 1970-01-01
        • 2011-05-14
        • 1970-01-01
        • 2020-12-17
        • 1970-01-01
        • 2012-10-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多