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

来源:互联网 发布:java模拟器 编辑:程序博客网 时间:2024/04/26 18:40

在python中,True 和False的判断,下面列出几种典型的情况:value真假值1, -1, [""], ("",),{None :0}True0, “”, 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就是炮灰无论如何都输不出来~~~就酱


0 0