python一些细节

逻辑运算符

对于Python的 andornot运算符,有时候使用并不是简单字面上那么简单。还有 一些小技巧。

  • and
    这个运算符会从左到右一直计算,如果左边的参数都是真,返回的是结果(不是bool类型),比如-1 and 5返回的值是5,因为第一个参数为真就一直向后计算,知道最后5,返回5。如果是0 and 5就是返回0了。
  • or
    这个运算符和and很相似,返回的都不是bool类型,比如0 or -1返回-1。
  • not
    这个运算符是只返回bool类型了。

在python中,None、False、空容器和字符串以及所有代表0的类型都是假,其它一切都是真。自定义类型可以通过__bool__() 方法自定义

这些特性很有用,比如:

r=s or 'hello'

这条语句相当于给s指定了个默认值,如果s为空,那么r就是’hello’

列表乘法

注意[0]*5不完全是一个创建列表,每个元素都是完全独立的,实际上共享引用!
这里是整数这种不可变类型所以无妨,但是如果考虑下面代码:

s=[[0]*5]*3
s[0][0]=1

上述情况下,每个子元素是一个列表,含5个0。但是三个列表共享引用,实际上是一个!!!
所以结果是所有子列表的第一个元素都是1。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值