Python中的缩进错误

Python中的缩进错误,python,compiler-errors,indentation,Python,Compiler Errors,Indentation,由于代码中的这一部分,我无法编译: if command == 'HOWMANY': opcodegroupr = "A0" opcoder = "85" elif command == 'IDENTIFY': opcodegroupr = "A0" opcoder = "81" 我有一个错误: 抱歉:缩进错误:“未缩进不匹配任何外部缩进级别”,“wsn.py”,“1016,30,\t\telif命令==”标识“:\n 但我没有看到任何缩进错误。有什么问题吗?您

由于代码中的这一部分,我无法编译:

if command == 'HOWMANY':
    opcodegroupr = "A0"
    opcoder = "85"
elif command == 'IDENTIFY':
    opcodegroupr = "A0"
    opcoder = "81"
我有一个错误:

抱歉:缩进错误:“未缩进不匹配任何外部缩进级别”,“wsn.py”,“1016,30,\t\telif命令==”标识“:\n


但我没有看到任何缩进错误。有什么问题吗?

您正在混合制表符和空格

使用以下工具查找确切位置:

python -tt yourscript.py

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

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

您是否使用了一些空格而不是空格

尝试删除代码前的所有空格,并使用字符读取,以确保它不是记事本++中的。

查看-->显示符号-->显示空格和选项卡选择


将所有选项卡替换为空格。

对于升华文本编辑器

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

'Convert Indentation to Spaces'

您的代码在任何情况下都可以工作

此外,如果您希望Sublime text为您的每种代码自动执行此操作,您可以按以下方式更新首选项设置:-

升华文本菜单>首选项>设置-特定语法:

Python.sublime-settings

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

这也发生在我身上,但我把问题解决了。我使用了5个空格的缩进,但当我按tab键时,它通常是4个空格的缩进。所以我认为你应该用一件事;i、 e.使用制表符按钮添加缩进或空格。理想的缩进是4个空格中的一个。我发现IntelliJ在这类事情上非常有用。

我也遇到过这种情况,python对空间敏感, 所以在:冒号之后 你可能留下了一个空间, 例如: [空格由表示。]

因此,请尝试删除不必要的空格,如果您在IDE中打开它,您的光标将显示在远离以下位置的位置:类似:-if command=='howmount':|
…而它应该是:-if command=='howmount':|

检查是否混合了制表符和空格。因此,在编辑器中打开显示空格。它对Python等支持空白的语言很有帮助。或者反过来说,这取决于您的个人喜好preference@MartijnPieters如果使用选项卡,那么就有选项卡,因此不需要关心它的视觉表示。你不应该把标签和空格混在一起,但除此之外,只要选择一个并坚持下去。你是对的,这是一场永无止境的辩论;这完全取决于你的个人偏好,因此我发表评论。我一直不明白你为什么要用空格代替制表符-1制表符是1级缩进,然后缩进的大小是一个显示偏好-但似乎世界不同意我。@poke:那很好,但在任何规模合适的项目中,你都不是唯一的开发者。一旦你们有两个人在一起,你们很有可能会对标签大小产生分歧。坦率地说,假装没有人会犯混合标签和空格的错误,这是把你的头埋在沙子里了。OSS python的每一个主要风格指南或其他指南都规定您只需要使用空格,这是有原因的-应该有一个,最好只有一个,明显的方法来做到这一点。遵循python代码库本身的风格是显而易见的。我可以使用什么编辑器?我的编辑器是CentOs下的geany6@sharkbait在其首选项中,选择“编辑器”/“显示”,然后启用“显示空白”。然后选项卡和空格将显示为一些不同的字符。如果有问题的行具有不同的缩进字符,那么您必须修复这些字符。伟大的非常感谢你!!!此外,当您在选项卡中转换它时,文本编辑器将删除:之后的空间hmm。。。不知道你从哪里得到的答案。。。你想回顾一下Python是如何处理空白的。。。尾随空格不会导致缩进错误。
{
    "tab_size": 4,
    "translate_tabs_to_spaces": true
}
`if command == 'HOWMANY':.
     opcodegroupr = "A0"
     opcoder = "85"
 elif command == 'IDENTIFY':.
     opcodegroupr = "A0"
     opcoder = "81"`