赋值语句

可以通过使用()来让一个语句的范围跨越多行,如:

x = (1 + 2 +
     3 + 4)

交换两个变量的值可以通过元组赋值的方式直接交换:

(x, y) = (y, x)

+=这类复合赋值运算符对列表隐含采用了原地修改,如下所示:

L = [1, 2]
M = L
L += [3, 4]

此时L和M的值均为[1, 2, 3, 4]

而如果不使用+=,则不会产生如上的副作用:

L = [1, 2]
M = L
L = L + [3, 4]

此时L的值为[1, 2, 3, 4],M的值为[1, 2]

分支语句

真和假是每个对象的固有属性,数字如果非零,则为真,其他对象如果非空,则为真,对象None总是假。

逻辑运算符采用的是and,or,not,而不是&&,||,!。逻辑运算符遵循短路计算原则。

Python中使用如下连续比较方式的意义与C语言是不同的,如下两条语句是等价的,而C语言中是将(1<2)的计算结果1与3作比较:

1 < 2 < 3
(1 < 2) and (2 < 3)

有两种方法可以测试相等性:
==用于测试两个变量的值是否相等
is用于测试两个变量是否引用了同一个对象

用内建函数cmp(a, b)比较两个对象a和b的大小时,当a>b时,返回一个正数(通常为1,但某些特殊对象的比较不是1),当a<b时,返回一个负数(通常为-1,但某些特殊对象的比较不是-1),当a=b时,返回0。

循环语句

当else与while或者for一起使用时,仅当循环正常结束或者循环体完全没有执行时,才会执行else。当循环是由于break跳出时,则不会执行else。

通过for循环遍历列表的过程中不要做删除操作,例如:

L = [1, 2, 3]
for i in range(len(L)):
    print L[i],
    del L[i]

上述代码在打印出1 3之后就会报错,这是因为当删除列表中的元素后,列表的大小以及列表中剩余元素的索引都会随之发生改变。

所以如果想通过循环来批量删除列表中的元素,一定不要使用元素的索引进行删除,而应该使用列表的对象方法remove()通过元素的值进行删除,例如:

L = [1, 2, 3]
for x in [2, 3]:
    L.remove(x)