Python中的缩进错误

sha*_*ait 8 python compiler-errors indentation

因为我的代码中的这一部分,我无法编译:

if command == 'HOWMANY':
    opcodegroupr = "A0"
    opcoder = "85"
elif command == 'IDENTIFY':
    opcodegroupr = "A0"
    opcoder = "81"
Run Code Online (Sandbox Code Playgroud)

我有这个错误:

抱歉:IndentationError:('unindent与任何外部缩进级别都不匹配',('wsn.py',1016,30,"\ t\telif命令=='IDENTIFY':\n"))

但我没有看到任何缩进错误.可能是什么问题?

Mar*_*ers 13

您正在混合制表符和空格.

找到确切的位置:

python -tt yourscript.py
Run Code Online (Sandbox Code Playgroud)

并用空格替换所有选项卡.您确实希望将文本编辑器配置为仅为选项卡插入空格.

  • 或者反过来......(取决于你的个人喜好) (2认同)

Udo*_*ein 8

如有疑问,请更改编辑器以使标签和空格可见.让编辑器将所有选项卡解析为4个空格也是一个非常好的主意.

  • @sharkbait在首选项中,选择"编辑器"/"显示",然后启用"显示空白".然后标签和空格将显示为一些(不同的)字符.如果有问题的行有不同的字符作为缩进,那么你必须修复它们.([来源](http://www.geany.org/manual/current/index.html#display)) (2认同)

Rah*_*tal 5

对于Sublime Text Editor

当代码同时包含制表符和空格时,通常会出现缩进错误。我有一个非常好的解决方案来纠正它,只需在sublime文本编辑器中打开代码,然后在Sublime Text Editor的右下角找到“制表符大小”,然后单击它。现在选择

'Convert Indentation to Spaces'
Run Code Online (Sandbox Code Playgroud)

要么

'Convert Indentation to Tabs'
Run Code Online (Sandbox Code Playgroud)

无论哪种情况,您的代码都可以使用。