Python报错:IndentationError: expected an indented block

Posted 怡安

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python报错:IndentationError: expected an indented block相关的知识,希望对你有一定的参考价值。

sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
sum = sum + x
print(sum)

代码如上,但是运行报错:

 

发现是因为少了缩进,改正为如下:

sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
    sum = sum + x
print(sum)

就没得问题了。

运行为:

 但是若在改正代码格式:

sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
    sum = sum + x
    print(sum)

输出为:

在这里就能看出来:Python 最具特色的就是用缩进来写模块!

缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。

IndentationError: unindent does not match any outer indentation level错误表明,你使用的缩进方式不一致,有的是 tab 键缩进,有的是空格缩进,改为一致即可。

如果是 IndentationError: unexpected indent 错误, 则 python 编译器是在告诉你"Hi,老兄,你的文件里格式不对了,可能是tab和空格没对齐的问题",所有 python 对格式要求非常严格。

因此,在 Python 的代码块中必须使用相同数目的行首缩进空格数。

建议你在每个缩进层次使用 单个制表符 或 两个空格 或 四个空格 , 切记不能混用

缩进相同的一组语句构成一个代码块,我们称之代码组。

像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。

我们将首行及后面的代码组称为一个子句(clause)。

所以上两个以不同的缩进运行出来的结果不一样。因为缩进不同代码块不同。

 

以上是关于Python报错:IndentationError: expected an indented block的主要内容,如果未能解决你的问题,请参考以下文章

报错内容 IndentationError: unindent does not match any outer indentation level

Python自动化报错:IndentationError-unindent does not match any outer indentation level

报错:IndentationError:unindent does not match any outer indentation level

Python错误集

python_异常报错

IndentationError: expected an indented block