IndentationError: expected an indented block 解决办法+块注释(多行注释)、注释的本质原理

在VSCode中训练写代码的时候,习惯于使用快代码注释,其中快捷键是“Shift+Alt+A”,但是今天发现了一个错误。

源代码是矩阵转置:

matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
#矩阵转置
def printmatrix(m):
    for ele in m:
        for e in ele:
            print("%2d" % e, end=' ')
        print('')


def transmatrix(m):

"""     # rt = [[]for i in m[0]]
    # for ele in m:
    #     for i in range(len(ele)):
    #         rt[i].append(ele[i])
    #         print(rt[i])
    # return rt """
    return list(zip(*m))
printmatrix(matrix)
print('-' * 40)
printmatrix(transmatrix(matrix))

报错是:

重点是最后一句:

IndentationError: expected an indented block

缩进错误,想了想,注释应该不会影响代码,于是就把注释块后面的代码提到了前面,错误消失。

def transmatrix(m):
    return list(zip(*m))
"""     # rt = [[]for i in m[0]]
    # for ele in m:
    #     for i in range(len(ele)):
    #         rt[i].append(ele[i])
    #         print(rt[i])
    # return rt """

本着学习的态度研究了一下,将块注释转换成行注释,这里由于直接使用快捷键,所以效果变成了:

发现也能解决问题,这就有意思了。

恢复到块注释的状态,仔细看了一下原来的错误,“IndentationError: expected an indented block”,缩进错误:预期缩进错误块,特地去查了一下python语法关于注释的解释,发现注释的本质其实是转义的常量。

在python语句中,字面常量(字面常量:包括整形常量,字符型常量,字符串常量。)是会被认为一个单独的语句,也就是原本代码的注释块或者单行注释是一个正常的语句,这就有意思了。

把代码截图放在一起就可以发现问题:

上图代码能够正确执行

上图代码报错

上图代码可以正确执行。

 

这样也就明白了:python中块注释,也就是这种所谓的多行注释,本质是一条条的代码,也存在缩进问题,那么日常中看来还是。python由于缩进问题所引发的细节的思考值得大家注意。

 

看来未来python中的代码注释要么使用单行的#开头的注释,要么使用块注释的时候尽量注意和其他代码块(block)区分开来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值