Python中的Tab错误

时间:2015-02-04 15:48:15

标签: python python-3.x indentation

以下python代码抛出此错误消息,我无法说明原因,我的标签似乎排成一行:

File "test.py", line 12
    pass
       ^ TabError: inconsistent use of tabs and spaces in indentation

我的代码:

class eightPuzzle(StateSpace):
    StateSpace.n = 0

    def __init__(self, action, gval, state, parent = None):
        StateSpace.__init__(self, action, gval, parent)
        self.state = state

    def successors(self) :
        pass

4 个答案:

答案 0 :(得分:7)

根据PEP8 styleguide

,您无法混合制表符和空格

空格是首选的缩进方法。

标签应仅用于与已使用标签缩进的代码保持一致。

Python 3不允许混合使用制表符和空格进行缩进。

使用标签和空格混合缩进的Python 2代码应转换为仅使用空格。

当使用-t选项调用Python 2命令行解释器时,它会发出有关非法混合制表符和空格的代码的警告。使用-tt时,这些警告会出错。强烈建议使用这些选项!

答案 1 :(得分:0)

不使用退格键也很重要(尤其是在Leafpad编辑器中)。如果要减少缩进,请仅使用Alt_key + TAB

当您在Python代码中删除一行时,应该这样做。

答案 2 :(得分:0)

使用Visual Studio 2019

我正在使用制表符,但编辑器正在插入空格,这将导致错误。

为避免混淆空格和制表符,请设置您的首选项

转到“编辑”->“高级”->“设置前导空白”->“制表符”(或空白)

将其设置为“标签”后,我的标签不再显示为空格,此后效果很好

答案 3 :(得分:-1)

在文本编辑器中打开您的代码,突出显示所有代码(ctr + a)并转到格式并选择“Tabify region”或“Untabify region”。它只会使所有缩进具有相同的格式。