迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Python 错误 IndentationError: Unindent Does Not Match Any Outer Indentation Level

作者:迹忆客 最近更新:2023/05/30 浏览次数:

在本文中,我们将学习如何解决在代码执行期间发生的 IndentationError。 我们将查看导致此错误的不同原因。

我们还将找到在 Python 中解决此错误的方法。 让我们从 Python 中的 IndentationError 开始。


Python 中的缩进规则

缩进是 Python 语言的重要组成部分。 它依赖于缩进来定义其代码中的代码块。

虽然缩进可以使用空格和制表符来完成。 由于缩进,开发人员很容易发现代码的流程。

您可以轻松地找出特定方法/条件的开始和结束位置。


Python 中 IndentationError 的原因

空格和制表符的使用

如果在 Python 代码中同时使用空格和制表符进行缩进,IDE 将抛出 IndentationError。 虽然这些错误通常是这种情况,但如果您未能在某些代码块中使用缩进,它们也可能会出现。

正如我们上面提到的,有两种缩进代码的方法:制表符或空格。 在 Python 中,每个缩进级别的标准是四个空格或一个制表符。

虽然这种缩进方式是 Python 的法则,但对于 Python 开发人员来说,它也是一种直观的帮助,因为这种缩进可以跟踪他们的代码结构。

示例代码:

def exploring_indentation():
    number = 9
    if number == 9:
        print("Indentation works like this!")
exploring_indentation()

代码的输出:

Indentation works like this!

由于代码中的额外缩进导致的缩进错误

IndentationError 的另一个原因可能是在下面的示例代码中添加了额外的缩进。

示例代码:

def exploring_indentation():
    number = 9
    if number == 9:
        print("Indentation works like this!")
   else:
        print("this is an example of an unnecessary indent")
exploring_indentation()

代码的输出:

Python 由于代码中的额外缩进导致的缩进错误

代码的 else 部分在 if 条件内,因为缩进是错误的。


修复Python中错误 IndentationError: unindent does not match any outer indentation level

空格和制表符的一致使用

虽然跟踪缩进听起来很乏味,但 PyCharm 和 VS Code 等代码编辑器具有内置功能,可帮助您跟踪缩进。

在编写代码时,当您按 Enter 移至下一行时,编辑器将自动缩进您的下一行代码。

此外,如果您在代码中混合使用制表符和空格,您总能找到将制表符转换为空格的选项,反之亦然。

例如,在 PyCharm 中,您必须转到左上角的编辑,选择转换缩进选项,然后根据您的要求选择制表符或空格。

编辑 Pycharm 的设置以修复缩进错误

匹配外部缩进级别

在示例中给出的以下代码中,if 和 elif 语句分配时没有缩进。 同时,else 语句被分配了一个额外的缩进。

由于外层的这种额外缩进,Python 编译器无法识别 else 语句,从而给出 IndentationError(unindent 不匹配任何外层缩进)。

示例代码:

a = int(input("Enter an integer A: "))
b = int(input("Enter an integer B: "))
if b > a:
        print("B is greater than A")
elif a == b:
        print("A and B are equal")
    else:
        print("A is greater than B")

代码的输出:

File "<string>", line 7
    else:
        ^
IndentationError: unindent does not match any outer indentation level

正确的示例代码:

a = int(input("Enter an integer A: "))
b = int(input("Enter an integer B: "))
if b > a:
        print("B is greater than A")
elif a == b:
        print("A and B are equal")
else:
        print("A is greater than B")

这些问题在特定于 Python 的编辑器中很容易修复,因为它们专门用于增强编程体验,而不必担心缩进等小错误。

但是,在使用类似 IDE 的记事本时,您可能需要注意制表符和空格并非常仔细地跟踪缩进,因为它们在您运行代码之前不会指出这些错误。

我们希望您发现本文有助于理解如何修复 Python 中的 IndentationError

上一篇:Python 错误 ImportError: No Module Named Requests

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Python 错误 ImportError: No Module Named Requests

发布时间:2023/05/31 浏览次数:104 分类:Python

错误 ImportError: No module named requests 意味着 Python 解释器无法导入 requests 模块。本篇文章展示了修复Python中 ImportError: No module named requests 错误的方法。

Python 中 Locale.Error: Unsupported Locale Setting 错误

发布时间:2023/05/31 浏览次数:100 分类:Python

在本文中,我们将了解什么是区域设置模块和区域设置错误不受支持的本地设置,以及如何修复区域设置错误。locale.Error: unsupported locale setting 当您不熟悉此模块时会遇到。

Python 中错误 ImportError: No Module Named Sklearn

发布时间:2023/05/31 浏览次数:194 分类:Python

在 Python 中,sklearn 被用作机器学习工具,用于在回归、集群等方面创建程序。很多时候,导入它会抛出错误—— No module named sklearn。Python中错误ImportError: No module named sklearn的原因

修复 Python 中的 TypeError: Can Only Join an Iterable 错误

发布时间:2023/05/30 浏览次数:172 分类:Python

本篇文章将讨论Python中的 TypeError: can only join an iterable 错误。修复Python中 TypeError: can only join an iterable 错误。由于它是 TypeError,我们可以得出结论,正在对给定对象执行不受支持的操作。

修复 Python 错误 SyntaxError: Invalid Token

发布时间:2023/05/30 浏览次数:85 分类:Python

在本文中,我们将了解什么是 SyntaxError: invalid token Python 错误以及如何修复它。 令牌是语句的重要组成部分,组合这些令牌可为 Python 编译器提供有意义的模式。

修复 Python 错误 SyntaxError: 'break' Outside Loop

发布时间:2023/05/30 浏览次数:93 分类:Python

本篇文章将讨论 Python 的 SyntaxError: 'break' outside loop 错误。循环和条件语句是任何编程语言不可或缺的一部分。修复 Python 中的 SyntaxError: 'break' outside loop 错误

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便