Python中的缩进错误

11 投票
7 回答
147475 浏览
提问于 2025-04-17 16:29

我在代码中遇到了一个问题,导致无法编译:

if command == 'HOWMANY':
    opcodegroupr = "A0"
    opcoder = "85"
elif command == 'IDENTIFY':
    opcodegroupr = "A0"
    opcoder = "81"

我收到了这个错误信息:

抱歉:缩进错误:('unindent does not match any outer indentation level', ('wsn.py', 1016, 30, "\t\telif command == 'IDENTIFY':\n"))

但是我看不出有什么缩进错误。那可能是什么问题呢?

7 个回答

6

对于Sublime Text编辑器

缩进错误通常发生在代码中同时使用了制表符和空格来进行缩进的情况下。解决这个问题其实很简单,只需在Sublime Text编辑器中打开你的代码,然后在右下角找到 'Tab Size',点击它。接下来选择其中一个选项:

'Convert Indentation to Spaces'

或者

'Convert Indentation to Tabs'

这样你的代码就能正常运行了。

另外,如果你希望Sublime Text在每次编写代码时都能自动处理这个问题,可以按照以下步骤更新偏好设置:

Sublime Text菜单 > 偏好设置 > 设置 - 语法特定:

Python.sublime-settings

{
    "tab_size": 4,
    "translate_tabs_to_spaces": true
}
16

你在代码里混用了制表符和空格。

可以用下面的代码找到具体的位置:

python -tt yourscript.py

然后把所有的制表符都换成空格。你最好把你的文本编辑器设置成只用空格来代替制表符。

12

如果你不确定,可以把编辑器设置成显示制表符和空格。这样你就能清楚地看到它们了。另外,把编辑器设置成把所有的制表符都转换成4个空格也是个很不错的主意。

撰写回答