Unindent 不匹配任何外部缩进级别。 这行代码的开头空格比之前少,但同样它不匹配它可能属于的任何其他块。 Python 无法决定它的去向。例如,在下面,最终打印是否应该是 if 子句的一部分?
>>> if user == "Joey":
... print "Super secret powers enabled!"
... print "Revealing super secrets"
IndendationError: unindent does not match any outer indentation level
需要一个缩进块。 这行代码在开始处的空格数与之前的相同,但最后一行应该开始一个块(例如, if 、 while 、 for 语句或函数定义)。
Python 在行首使用间距来确定代码块何时开始和结束。您可以获得的错误是:
意外的缩进。 这行代码在开始处的空格比之前多,但之前的不是子块的开始(例如, if 、 while 和 for 语句)。块中的所有代码行必须以完全相同的空格字符串开头。例如:
这在交互式运行 Python 时特别常见:确保您没有在命令前放置任何额外的空格。 (复制和粘贴示例代码时非常烦人!)
Unindent 不匹配任何外部缩进级别。 这行代码的开头空格比之前少,但同样它不匹配它可能属于的任何其他块。 Python 无法决定它的去向。例如,在下面,最终打印是否应该是 if 子句的一部分?
需要一个缩进块。 这行代码在开始处的空格数与之前的相同,但最后一行应该开始一个块(例如, if 、 while 、 for 语句或函数定义)。
如果您想要一个不执行任何操作的函数,请使用“no-op”命令 _传递_:
允许混用制表符和空格(至少在我的 Python 版本中是这样),但 Python 假定制表符的长度为 8 个字符,这可能与您的编辑器不匹配。 不要混用制表符和空格。 大多数编辑器允许自动将一个替换为另一个。如果你在一个团队中,或者在一个开源项目中工作,看看他们更喜欢哪个。
避免这些问题的最佳方法是在缩进子块时始终使用一致数量的空格,并且理想情况下使用可以为您解决问题的良好 IDE。这也将使您的代码更具可读性。