【问题标题】:What does the error 'IndentationError: expected an indented block in python' mean? [closed]错误'IndentationError:期望python中的缩进块'是什么意思? [关闭]
【发布时间】:2014-12-21 06:49:16
【问题描述】:

考虑以下简短的 Python 程序:

i= 21;
j= 23;
print (i);
if i>j :
print ('greater')
else :
print 'lesser'

报错

IndentationError: 需要一个缩进块

这个错误的原因是什么? (我想更好地理解它,因为我是 Python 新手。)

【问题讨论】:

  • 这真的很基本......即使我不做 python 我知道标识定义语句块。而且错误信息再清楚不过了……
  • 我刚开始学习 python,我可以理解错误信息,我实际上想知道我错在哪里.. 因为如果你看到我的代码,我在 if-else 子句之后有语句..但我仍然收到那个错误。这就是我问这个问题的原因,可能是个愚蠢的问题。@csmith 的评论已经说明了一切。请不要阻止任何人提出问题并从答案中学习。我知道它的基本知识,请注意,如果你的基本知识不清楚,那么你就无法编写复杂的代码,因此有必要清除基础知识。..
  • 连同错误消息,它说明了有问题的代码行。最简单的做法是查看那行代码并思考为什么它可能没有正确的缩进。
  • @SethMorton :: 实际上我不知道“缩进应该是 4 个空格(制表符也可以)”这一事实,正如 CSmith 所解释的那样。
  • 从技术上讲,您只需要一致地缩进。 4 个空格仅供参考。话虽如此,您应该始终使用 4 个空格进行缩进。

标签: python


【解决方案1】:

您需要缩进打算在 if-else 块中的语句:

i = 21
j = 23
print (i)

if i > j:
    print('greater')
else:
    print('lesser')

【讨论】:

    【解决方案2】:

    只要你有一个冒号,你就可以在它后面加上一个缩进的文本块。该块中的所有内容都适用于带有冒号的内容(可能是您正在定义的函数、if 语句、for 循环等)。缩进应该是 4 个空格(制表符也可以)。

    此外,您不需要在每行末尾添加分号。

    例子:

    def function(parameter):
        block line 1
        block line 2
    
    print function(argument)
    

    【讨论】:

    • 据我回忆,PEP 8 不鼓励使用制表符,部分原因是如果某些行使用空格和某些制表符,它们会导致可怕的错误。
    • @TonySuffolk66 :: 那么可以用 4 个空格代替制表符吗??
    • 是的,4 个空格是首选方法。这是样式指南中与样式相关的部分:legacy.python.org/dev/peps/pep-0008/#tabs-or-spaces
    • 任何好的编辑器都会有一个设置,当你按 Tab 键时插入 4 个空格。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 2020-12-17
    • 1970-01-01
    相关资源
    最近更新 更多