Python中逻辑表达式的值和上⼀篇⼀样也是在web.py的源码中产⽣的⼀点疑问。
源码中⼀个函数末尾有这样⼀句话:
return p and p[0]记住我
想也没想觉得返回值肯定是True或者False,可是发现返回值是p[0]。。。
后来到了关于⾮布尔值进⾏逻辑运算的规律,这⾥就暂且抄过来了:
在Python中,空字符串为假,⾮空字符串为真。⾮零的数为真。
数字和字符串之间、字符串之间的逻辑操作规律是:
对于and操作符:
只要左边的表达式为真,整个表达式返回的值是右边表达式的值,否则,返回左边表达式的值对于or操作符:
只要两边的表达式为真,整个表达式的结果是左边表达式的值。
如果是⼀真⼀假,返回真值表达式的值
如果两个都是假,⽐如空值和0,返回的是右边的值。(空值或0)