2013-02-20 118 views
4

我不能因为这部分在我的代码的编译:缩进错误在Python

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

我有这样的错误:

Sorry: IndentationError: ('unindent does not match any outer indentation level', ('wsn.py', 1016, 30, "\t\telif command == 'IDENTIFY':\n"))

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

+1

检查您是否混合了制表符和空格 – dmg 2013-02-20 11:54:06

+0

此外,请在编辑器中显示空白符号。它对Python这样的空白感知语言有很大的帮助。 – eagleflo 2013-02-20 11:55:03

回答

4

怀疑改变你的编辑器,使制表符和空格可见。编辑器将所有选项卡解析为4个空格也是一个非常好的主意。

+0

我可以使用什么编辑器? – sharkbait 2013-02-20 12:04:43

+0

我的编辑器是geany下的CentOs 6 – sharkbait 2013-02-20 12:06:48

+2

@sharkbait在其首选项中,选择“编辑器”/“显示”,然后在那里启用“显示空白”。然后标签和空格将显示为一些(不同的)字符。如果所讨论的行与缩进不同,则必须修复这些行。 ([Source](http://www.geany.org/manual/current/index.html#display)) – poke 2013-02-20 12:10:20

7

您在混合制表符和空格。

找到具有确切位置:

python -tt yourscript.py 

,并用空格代替所有标签。你真的想配置你的文本编辑器,以便只为标签插入空格。

+1

或者相反......(取决于你的个人喜好) – poke 2013-02-20 11:55:42

+0

顺便说一句,这是否会将标签变成4个空格或8个? – dmg 2013-02-20 11:55:46

+0

'-tt'将混合标签和空格变成错误,而不是更改代码中的任何内容。 – akaIDIOT 2013-02-20 11:57:09

0

您是否可以使用一些<tab>而不是空格?

尝试删除代码前的所有空格,并使用<space>字符对其进行读取,以确保它不是<tab>

+0

我尝试...但它不起作用... – sharkbait 2013-02-20 12:05:06

4

在记事本++

查看--->显示符号--->显示空格和制表符(选择)

空格替换所有选项卡。

2

缩进错误通常发生在代码不一致时意味着我们使用空格和某处的缩进标签。我有一个非常好的解决方案,只需在崇高的文本编辑器中打开代码,然后在Sublime Text Editor右下角找到“Tab Size”并单击它。现在选择

'Convert Indentation to Spaces' 

OR

'Convert Indentation to Tabs' 

您的代码将在两种情况下工作。