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。
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串