python中真假值的问题和and or 的串联用法

在python中,True 和False的判断,下面列出几种典型的情况:

value真假值
1, -1, [""], ("",),{None :0}True
0, “”, None, [], (), {}, (“”)
False

其中要注意的是,(“”)虽然看起来像元组,由于括号中没有逗号实质上还是一个空字符串。

也许[""]为True不好理解,但是如果写成[0]就好理解了,虽然里面列表内部的值为False,但是列表是有值的。


下面是对and or 的串联用法的分析

def permission_level(self):
    group = UserGroup.objects.filter(user=self)
    return group and group[0].role or 'MEMBER'
在这个return语句中,用到了a and b or c的用法:

下面分几种情况:

如果a为真b为真则返回b,

如果a  b均为假则返回c

如果a为假则b被短路返回c,

如果a为真b为假则返回c,


a就是炮灰无论如何都输不出来~~~就酱


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值