python-3.x 为什么从看起来正确对齐的代码中得到'TabError'?[duplicate]

qxsslcnc  于 2023-01-27  发布在  Python
关注(0)|答案(5)|浏览(126)
    • 此问题在此处已有答案**:

I'm getting an IndentationError. How do I fix it?(5个答案)
4天前关闭。
下面的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
ndasle7k

ndasle7k1#

根据PEP 8样式指南,不能混用制表符和空格:

  • 空格是首选缩进方法。*
  • 制表符只能用于与已使用制表符缩进的代码保持一致。*
    Python 3不允许混合使用制表符和空格进行缩进。
    混合使用制表符和空格缩进的Python 2代码应转换为只使用空格。
  • 当使用-t选项调用Python 2命令行解释器时,它会发出关于非法混合制表符和空格的代码的警告。当使用-tt时,这些警告会变成错误。强烈推荐使用这些选项!*
ztyzrc3y

ztyzrc3y2#

使用Visual Studio 2019

我使用的是制表符,但编辑器插入了空格,这会导致错误。
要避免混淆空格和制表符,请设置首选项
转到编辑-〉高级-〉设置前导空格-〉制表符(或空格)
在我将其设置为制表符后,制表符不再表示为空格,此后它工作正常

ql3eal8s

ql3eal8s3#

对于linux nano用户:
如果你的代码包含4个空格而不是一个制表符,你应该继续使用4个空格或者把它们都改成一个制表符。2如果你使用mixed,就会出错。

6kkfgxo0

6kkfgxo04#

在文本编辑器中打开你的代码,高亮显示所有的代码(Ctrl +a),然后转到格式,选择“制表符区域”或“取消制表符区域”。2它只会使所有的缩进具有相同的格式。

vsaztqbk

vsaztqbk5#

不使用退格键也很重要(特别是在叶板编辑器中)。2如果你想减少缩进,只使用Alt_key + TAB
这应该在你删除Python代码中的一行时完成。

相关问题