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

本博客已迁往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)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值