Python 错误 IndentationError: Unindent Does Not Match Any Outer Indentation Level
在本文中,我们将学习如何解决在代码执行期间发生的 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()
代码的输出:
代码的 else 部分在 if 条件内,因为缩进是错误的。
修复Python中错误 IndentationError: unindent does not match any outer indentation level
空格和制表符的一致使用
虽然跟踪缩进听起来很乏味,但 PyCharm 和 VS Code 等代码编辑器具有内置功能,可帮助您跟踪缩进。
在编写代码时,当您按 Enter 移至下一行时,编辑器将自动缩进您的下一行代码。
此外,如果您在代码中混合使用制表符和空格,您总能找到将制表符转换为空格的选项,反之亦然。
例如,在 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
发布时间: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 中 ImportError: Missing Required Dependencies Numpy 错误
发布时间:2023/05/30 浏览次数:113 分类:Python
-
在本文中,我们将了解 ImportError: Missing required dependencies numpy,导致 ImportError 的原因以及如何使用命令行界面 (CLI) 解决它。
修复 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 错误
修复 Python 错误 AttributeError: 'numpy.ndarray' Object Has No Attribute 'App
发布时间:2023/05/30 浏览次数:152 分类:Python
-
NumPy ndarray 没有这种称为 append 的方法。 ndarray 代表一个 n 维数组。 我们可以从 NumPy 对象调用它,而不是在 ndarray 上调用 append() 。
Python 中错误 AttributeError: 'NoneType' Object Has No Attribute 'Text'
发布时间:2023/05/30 浏览次数:191 分类:Python
-
当有一个 None 对象,并且您试图调用该对象的任何方法时,就会发生 AttributeError, 'NoneType' Object Has No Attribute 'Text' 错误。 在这里,对象是 None,你想调用方法文本。