您的位置:首页 > 编程语言 > Python开发

Python小贴士之赋值语句、分支语句和循环语句

2013-09-21 18:13 375 查看

本博客已迁往http://coredumper.cn

赋值语句

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

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Python print cmp else for