繁体   English   中英

什么是 TabError:缩进中制表符和空格的使用不一致,为什么会出现?

[英]What is TabError: inconsistent use of tabs and spaces in indentation and why is it raised?

我在Python实习的时候用了两个不同的编辑器,VSCode和Notepad,因为出门几周要在不同的电脑上写程序。

但是,在记事本中,与 VSCode 不同,编辑器没有进行必要的缩进,所以我手动将它们缩进了空格。

但是在运行程序的时候遇到了这个错误,
TabError: inconsistent use of tabs and spaces in indentation

我根本不知道这是什么,希望有人解释一下。

我看到一个问题, “缩进中制表符和空格的使用不一致” ,但是在记事本中,答案中没有提到任何选项。

Python 依赖于具有正确的缩进来识别相同代码块中的行。 这就是将语句组合在一起并以 Python 可以按正确顺序理解它们的方式组织的原因。 虽然 4 个空格或 1 个制表符通常被视为 Python 中通常遵循的缩进做法,但您实际上可以做任何您想做的事情,只要您的缩进在组件需要网格的块中排列。 例如,使用具有 3 个缩进空格的 if 语句将不会被视为与具有 5 个缩进空格的后续 else 语句在同一代码块中。

您在使用记事本时遇到的问题是由于基本记事本不是很好的 IDE。 坚持使用 VSCode。

TabError: inconsistent use of tabs and spaces
当您在 Python 中为缩进混合制表符和空格时,会引发。

当您同时使用制表符和空格进行缩进时,Python 解释器会引发异常,即TabError

所以在缩进 Python 代码时不要混淆制表符和空格。

要么只使用空格,要么只使用空格。

但我建议使用标签,因为它们更容易使用。

顺便说一句,我认为在记事本中没有这样做的选项。 尝试任何其他 IDE 或在线编辑器。

您有混合的空格和制表符。 要解决这个问题,您可以使用命令:ctrl + H 将 vscode 中的所有制表符替换为空格。此外,您可以随时使用在线编辑器online_vscode

这是因为您的代码中混合了制表符和空格。

for i in loop:
    print(i) # with tab
    print(i) # with 4 spaces

>>> TabError: inconsistent use of tabs and spaces in indentation

此代码将出现异常,例如您的TabError: inconsistent use of tabs and spaces in indentation

您必须在制表符和 4 个空格之间选择一个(实际上可以是任意数量的空格)。

为了解决您在记事本中的问题,您可以将所有 4 个空格转换为制表符,如下所示: 在 Notepad++ 中将制表符转换为空格

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM