如何处理python中的“意外缩进”?

如何纠正python中的错误“意外缩进”

Python使用行首的间距来确定代码块的开始和结束时间。您可以得到的错误有:

意外缩进。这行代码的开头比前一行有更多的空格,但前一行不是子块的开头(例如if/while/for语句)。块中的所有代码行必须以完全相同的空白字符串开头。例如:

&gt&燃气轮机&燃气轮机;定义a():
...   打印“foo”
...     打印“条”
缩进错误:意外缩进

当以交互方式运行python时,这一点尤其常见:确保在命令之前没有放置任何额外的空格。(复制和粘贴示例代码时非常烦人!)

&gt&燃气轮机&燃气轮机;打印“你好”
缩进错误:意外缩进

Unindent与任何外部缩进级别都不匹配。这行代码的开头空格比前一行少,但同样地,它与它可能属于的任何其他块都不匹配。Python无法决定它要去哪里。例如,在下面的例子中,最终打印是否应该是if子句的一部分

&gt&燃气轮机&燃气轮机;如果用户==“Joey”:
...     打印“超级秘密力量已启用!”
...   打印“揭示超级秘密”
IndendationError:unindent与任何外部缩进级别都不匹配

应为缩进块。此行代码的开头空格数与前一行相同,但最后一行应为块开头(例如if/while/for语句、函数定义)

&gt&燃气轮机&燃气轮机;def foo():
... 打印“条”
缩进错误:应为缩进块

如果您想要一个不做任何事情的函数,请使用“no op”命令pass

&gt&燃气轮机&燃气轮机;def foo():
...     通过

允许混合制表符和空格(至少在我的Python版本中是这样),但Python假定制表符的长度为8个字符,这可能与您的编辑器不匹配只需对选项卡说“不”。大多数编辑器都允许用空格自动替换选项卡

避免这些问题的最佳方法是在缩进子块时始终使用一致数量的空格,理想情况下使用一个好的IDE来解决问题。这也将使您的代码更具可读性

发表评论