什么是;块;在Python 3中是什么意思?

什么是;块;在Python 3中是什么意思?,python,indentation,Python,Indentation,我是一名编程新手,试图从automatetheboringstuff.com学习Python。 在第二章的结尾,下面的问题出现了。 即使我已经通过了官方的回答,我仍然不知道。 请帮忙 问:8。识别此代码中的三个块: spam = 0 if spam == 10: print('eggs') if spam > 5: print('bacon') else: print('ham') print('spam') print('s

我是一名编程新手,试图从automatetheboringstuff.com学习Python。 在第二章的结尾,下面的问题出现了。 即使我已经通过了官方的回答,我仍然不知道。 请帮忙

问:8。识别此代码中的三个块:

spam = 0
if spam == 10:
    print('eggs')
    if spam > 5:
        print('bacon')
    else:
        print('ham')
    print('spam')
print('spam')
官方答复:

这三个块是if语句和行中的所有内容
print('bacon')
print('ham')


每次增加直线的缩进量时,新块都会开始,并在相应的未缩进量之前结束

spam = 0
if spam == 10:
    print('eggs')        # indent increased, block A
    if spam > 5:         # still block A
        print('bacon')   # still block A, indent increased, block B inside block A
    else:                # still block A, indent decreased, block B ended in line above
        print('ham')     # still block A, indent increased, block C inside block A
    print('spam')        # still block A, indent decreased, block C ended in line above
print('spam')            # indent decreased, block A ended in line above

我不知道为什么会有这么多人投反对票,我个人觉得官方的问题和答案没有多大帮助!在Python中,缩进非常重要,请尝试更改最后2次
print
调用的缩进,看看会发生什么,然后尝试删除最后第二次打印缩进,但仍然无法很好地解决问题。然而,非常感谢你的帮助!
spam = 0
if spam == 10:
    print('eggs')        # indent increased, block A
    if spam > 5:         # still block A
        print('bacon')   # still block A, indent increased, block B inside block A
    else:                # still block A, indent decreased, block B ended in line above
        print('ham')     # still block A, indent increased, block C inside block A
    print('spam')        # still block A, indent decreased, block C ended in line above
print('spam')            # indent decreased, block A ended in line above