python系列教程143——行缩进

朋友们,如需转载请标明出处:blog.csdn.net/jiangjunsho…

声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值得阅读!想要学习AI技术的同学可以点击跳转到我的教学网站。PS:看不懂本篇文章的同学请先看前面的文章,循序渐进每天学一点就不会觉得难了!

Python会以行缩进检测块的边界,行缩进就是程序代码左侧的空白空间。缩进相同距离的所有语句属于同一块的代码。换句话说,块内的语句会垂直对齐,就好像在一栏之内。

下面示范了下列程序代码的块结构。

x = 1

if x:

    y = 2

    if y:

        print('block2')

    print('block1')

print('block0')
复制代码

这段代码包含了三个模块:第一个(文件顶层代码)完全没有缩进,第二个(位于外层if语句内)则缩进四格,而第三个(位于嵌套if下的print语句)则缩进八格。

通常来说,顶层(无嵌套)代码必须于第1栏开始。缩进可以由任意的空格和制表符组成,只要特定的单个块中的所有语句都相同即可。也就是说,Python不在乎你怎么缩进代码,只在乎缩进是否一致。

如下的代码段展示了Python代码中的缩进错误:

x = 'SPAM'         # Error: first line indented

if 'rubbery' in 'shrubbery':

    print(x * 8)

        x += 'NI'      # Error: unexpected indentation

        if x.endswith('NI'):

                x *= 2

            print(x)	# Error: inconsistent indent
复制代码

这段代码的正确的缩进版本如下所示:

x = 'SPAM'

if 'rubbery' in 'shrubbery':

    print(x * 8)

    x += 'NI'

    if x.endswith('NI'):

        x *= 2

        print(x)   # Prints "SPAMNISPAMNI"
复制代码

在Python中,空白的一种主要用途就是用于代码左侧作为缩进。在其他大多数环境中,可以在程序代码中加入空格或不加。缩进其实是Python语法中的一部分,而不仅仅是编程风格:任何特定单一块中的所有语句都必须缩进到相同的层次,否则Python会报告语法错误。这是有意而为之的,因为你不需明确标识嵌套代码块的开头和结尾,其他语言中常见的一些语法上的杂乱无章,在Python中是看不见的。

把缩进变成语法模型一部分,也强化了一致性,这是Python这种结构化编程语言中可读性的重要组成部分。Python的语法被描述成“所见即所得”——每行程序代码毫不含糊的缩进就告诉了读者它属于什么地方。这种一致的外观让Python程序更易于维护和重用。

要避免混合使用制表符和空格。尽管可以使用空格或制表符来缩进,在一段代码块中混合使用这两者就不好了。如果混合制表符和空格的话,代码也可以工作。但是,这样的代码很难修改。更糟糕的是,混合制表符和空格会使得代码难以阅读——制表符在另一个程序员的编辑器中看上去与在你的编辑器中的样子可能有很大不同。

猜你喜欢

转载自juejin.im/post/7053002579227181087