gpt4 book ai didi

python - 我应该如何处理 Python 中的 "Unexpected indent"?

转载 作者:IT老高 更新时间:2023-10-28 21:07:18 29 4
gpt4 key购买 nike

如何纠正 Python 中的错误“unexpected indent”?

最佳答案

Python 使用行首的间距来确定代码块的开始和结束时间。您可能会遇到的错误是:

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

>>> def a():
... print "foo"
... print "bar"
IndentationError: unexpected indent

这在以交互方式运行 Python 时尤其常见:确保在命令前不要放置任何多余的空格。 (复制粘贴示例代码时非常烦人!)

>>>   print "hello"
IndentationError: unexpected indent

Unndent 不匹配任何外部缩进级别。 这行代码开头的空格比前一行少,但同样它不匹配它可能属于的任何其他 block 。 Python 无法决定它的去向。例如,在下面,最后的打印是否应该是 if 子句的一部分?

>>> if user == "Joey":
... print "Super secret powers enabled!"
... print "Revealing super secrets"
IndendationError: unindent does not match any outer indentation level

需要一个缩进 block 。这行代码在开头的空格数与前一行相同,但最后一行应该开始一个 block (例如,if whilefor 语句或函数定义)。

>>> def foo():
... print "Bar"
IndentationError: expected an indented block

如果你想要一个什么都不做的函数,使用“no-op”命令pass:

>>> def foo():
... pass

允许混合制表符和空格(至少在我的 Python 版本中),但 Python 假定制表符长度为 8 个字符,这可能与您的编辑器不匹配。 不要混合使用制表符和空格。大多数编辑器允许自动替换其中的一个。如果你在一个团队中,或者在做一个开源项目,看看他们更喜欢哪个。

避免这些问题的最佳方法是在缩进子 block 时始终使用一致数量的空格,并且最好使用能够为您解决问题的优质 IDE。这也将使您的代码更具可读性。

关于python - 我应该如何处理 Python 中的 "Unexpected indent"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1016814/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com