当前位置: 首页 > 面试题库 >

与python中的“意外缩进”怎么办?

孙凌龙
2023-03-14
问题内容

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


问题答案:

Python在行的开头使用空格来确定代码块的开始和结束时间。你可以获得的错误是:

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

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

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

>>>   print "hello"
IndentationError: unexpected indent

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 / html" target="_blank">while / for语句,函数定义)。

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

如果你想要一个不执行任何操作的函数,请使用“ no-op”命令传递:

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

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

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



 类似资料:
  • 我不知道我犯了什么错误。只有标签,没有空间。我从本教程中获取了这段代码,http://cloudacademy.com/blog/google-prediction-api/.(我正在使用PyCharm进行开发)。 错误消息 /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 /Users/ZERO/GooglePredi

  • 问题内容: 这个问题已经在这里有了答案 : 我收到一个IndentationError。我如何解决它? (4个答案) 去年关闭。 我有一段简单的代码,我不明白我的错误来自哪里。解析器在第5行(if语句)使用意外缩进对我咆哮。有人在这里看到问题吗?我不。 问题答案: 如果您只是复制并粘贴了代码,则可以在语句所在的行上使用一个选项卡。Python将制表符解释为8个空格而不是4个空格。永远不要将制表符与

  • 如本文所述,缩进有一个ESLint属性,名为。示例如下所示: 或对于选项卡式缩进: 但是,如果我将这个确切的代码粘贴到我的文件中,VS Code将显示为错误: ESLint:. eslintrc中的ESLint配置无效:-意外的顶级属性"indent"...有关详细信息,请参阅ESLint输出通道。 我以前拥有的文件已经有很多规则,并且没有打印出错误。如果我将添加到该列表中,或者单独添加,它将失败

  • 问题内容: 我是Python的新手,正在收到此错误: 在这段代码上: 问题答案: 尽管缩进错误在StackOverflow页面上很明显,但它们可能不在您的编辑器中。您在这里混合使用不同的缩进类型,1、4和8个空格。根据PEP8,您应始终使用四个空格进行缩进。您还应该避免混用制表符和空格。 我还建议您尝试使用‘ ‘命令行选项 来运行脚本,以确定何时意外混合使用制表符和空格。当然,任何体面的编辑器都可

  • 我想创建一个用户信息命令,但我仍然得到一个错误embed.set_author(name=f用户信息-{成员})索引错误:意外的缩进我不知道这是否足以理解我的错误在哪里(我只是开始编码) @客户。command()异步定义信息(ctx,成员:discord.member):

  • 这是我的model.py代码: 当我运行以下命令时: 这给我以下错误: mjrulesamrat@mjrulesamrat-Lenovo-G570:~/django\u local/first\u web$python manage.py运行服务器验证模型。。。 Traceback(最近一次调用)启动的线程中未处理的异常:文件"/usr/local/lib/python2.7/dist-包/dja