python系列教程133——几种特殊语法

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

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

上一篇文章中,我们提到了python语法有下面两点规则: •一行的结束就是该行语句的终止(不需要分号)。 •使用缩进来表示嵌套语句的代码块(不需要大括号)。

但是Python也提供了一些特殊的规则来调整语句的终止和嵌套语句的代码块。

虽然Python语句一般都是一行一个,但是Python中也有可能出现某一行挤进多个语句的情况,这时它们由分号隔开:

a = 1; b = 2; print(a + b) # Three statements on one line
复制代码

不过,只有当摆到一起的语句本身不是复合语句才行。换句话说,只能把简单语句放在一起。例如,赋值操作、打印和函数调用。复合语句还是必须出现在自己的行里。

另一个特殊规则却是相反的——可以让一个语句的范围横跨多行。为了实现这一操作,你只需要用一对括号把语句括起来:括号()、方括号[]或者字典的大括号{}都行。任何括在这些符号里的程序代码都可横跨好几行。语句将一直运行,直到Python遇到包含闭合括号的那一行。例如,连续几行列表常量:

mlist = [111,

         222,

         333]
复制代码

由于程序被括在一对方括号里,Python就会接着运行下一行,直到遇见闭合的方括号为止。花括号包含的字典也可以用这个方法横跨数行,圆括号则一般处理元组、函数调用和表达式。连续行的缩进是无所谓的,但是为了让程序具有可读性,那几行也应该对齐。

括号是可以包含一切的——因为任何表达式都可以包含在内,只要插入一个左边括号,你就可以到下一行接着写你的语句。

X = (A + B +

     C + D)
复制代码

这种技巧也适用于复合语句。不管你在什么地方需要写一个大型的表达式,只要把它括在括号里,就可以在下一行接着写:

if (A == 1 and

    B == 2 and

    C == 3):

           print('spam' * 3)
复制代码

其实有一条比较老的规则也允许我们跨越数行——当上一行以反斜线结束时,可以在下一行继续:

X = A + B + \            # An error-prone alternative

    C + D
复制代码

但是这种方法已经过时了,目前从某种程度上来说,不再提倡使用这种方法,因为关注并维护反斜线比较困难,而且这种做法相当脆弱(反斜线之后可能没空格)。

还有一种特殊情况,复合语句的主体可以出现在Python的首行冒号之后。

if x > y: print(x)
复制代码

这样我们就能够编辑单行if语句、单行循环等。不过,只有当复合语句本身不包含任何复合语句的时候,才能这样做。也就是说,只有简单语句可以跟在冒号后面,比如赋值操作、打印、函数调用等。较复杂的语句仍然必须单独放在自己的行里。

虽然上面说了这么多特殊案例,但是如果你将所有语句都分别放在不同的行里并总是将嵌套代码块缩进,那么程序代码会更容易读懂并且便于后期的修改。

Guess you like

Origin juejin.im/post/7039522164147486733