1:续行符
在Python中,一般是一行一个语句。一个过长的语句可以使用反斜杠( \ )分解成几行。
有两种例外情况,一个语句不使用反斜线也可以跨行。在使用闭合操作符时,单一语句可以跨多行,例如:在含有小括号、中括号、花括号时可以多行书写。另外就是三引号包括下的字符串也可以跨行书写。如下例:
>>> alist = [1,
... 2]
>>> alist
[1, 2]
2:表达式和语句
表达式:某件事情,语句:做某件事情。
表达式有算术表达式,函数表达式等。语句有赋值语句,print语句,import语句、条件语句、循环语句等。
语句使用关键字来组成命令,类似告诉解释器一个命令。你告诉Python做什么,它就为你做什么。
表达式没有关键字。它们可以是使用数学运算符构成的算术表达式,也可以是使用括号调用的函数。
3:语句块
Python中,冒号(:)用来标识语句块的开始,块中的每一个语句都是缩进的(缩进量相同),当回退到和已经闭合的块一样的缩进量时,就表示当前块已经结束了。
也可以使用Tab键进行缩进,但是标准且推荐的方式是只用空格,特别是使用4个空格。
4:序列解包
将多个变量同时赋值的方法称为序列解包(sequence unpacking)。因为采用这种方式赋值时,等号两边的对象都是元组。
>>> x, y, z = 1, 2, 'a string'
>>> x
1
>>> y
2
>>> z
'a string'
Python的多元赋值方式可以实现无需中间变量交换两个变量的值。
# swapping variables in Python
>>> x, y = 1, 2
>>> x
1
>>> y
2
>>> x, y = y, x
>>> x
2
>>> y
1
5:Python文件布局
用模块来合理组织Python 代码是简单又自然的方法。应该建立一种统一且容易阅读的结构,并将它应用到每一个文件中去。下面就是一种非常合理的布局:
# (1) 起始行(Unix)
# (2) 模块文档
# (3) 模块导入
# (4) 变量定义
# (5) 类定义
# (6) 函数定义
# (7) 主程序
6:主程序
当模块被导入时class语句(类定义语句)会被执行, 类也就会被定义。def 语句(函数定义语句)会被执行,函数也就都会定义好。
无论模块是被别的模块导入还是作为脚本直接执行,都会执行这部分代码。
主程序中的代码通常包括变量赋值, 类定义和函数定义,随后检查__name__来决定是否调用另一个函数(通常调用main()函数)来完成该模块的功能。
时刻记住一个事实,那就是所有的模块都有能力来执行代码。最高级别的Python 语句,也就是, 那些没有缩进的代码行在模块被导入时就会执行, 不管是不是真的需要执行。由于有这样一个“特性”,比较安全的写代码的方式就是除了那些真正需要执行的代码以外,几乎所有的功能代码都在函数当中。
很多项目都是一个主程序,由它导入所有需要的模块。所以请记住,绝大部分的模块创建的目的是为了被别人调用而不是作为独立执行的脚本。
Python有一种方法能在运行时检测该模块是被导入还是被直接执行。__name__ 系统变量就是这种机制。如果模块是被导入, __name__ 的值为模块名字;如果模块是被直接执行,__name__ 的值为 '__main__'。
7:比较运算符连接
Python支持一个表达式进行多种比较操作,也就是多个比较操作可以在同一行上进行,求职顺序为从左到右,比如:
>>> 3 < 4 < 7 #same as ( 3 < 4 ) and ( 4 < 7 )
True
>>>4 > 3 == 3 # same as ( 4 >3 ) and ( 3 == 3 )
True
本质上,多个比较操作是由多个隐式的and连接起来的多个表达式。
《Python核心编程》