Python语言and-or的用法

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

【原】python语言的 and-or 常常被用来实现类C语言中的三元运算符 : ? ,

更为骚气的写法是 xxx and xxx or xxx and xxx or xxx,这样就可以可以做到一行实现多个表达式啦。

Code:

(1)def Judge(a):

if a > 10:

return "big"

elif a > 5:

return "middle"

else:

return "small"

(2) def judge (b) :

return b > 10 and "big" or b > 5 and "middle" or "small"

(1)和(2)所实现的效果是一样的

但要注意的是 and-or 并不完全等价于三元运算符,因为a and b or c,

如果b是个假值,那么就将返回c(电脑比较懒惰- -!)

不过有技巧能够实现:

def choose(bool, a, b):

return (bool and [a] or [b])[0]

如果bool为真就返回[a], 不然就返回[b]. 真如上面说的 电脑很懒惰 对于and ,它会先

判断and前的值是否为真,如果为真, 那么xxx and xxx 就为真。

return结尾的[0]的作用是:使结果以数字输出而不是以列表输出 结果: 加[0] 7 不加[0] [7]

例:choose(True, 0, 6)

>>> 0

choose(True, 7, 6)

>>>7

choose(False, 0, 6)

>>>6

choose(False, 7, 6)

>>>6

如果不加[0]

choose(True, 0, 6)

>>>[0]

就这些了

人生苦短 我用python QAQ

加油吧!!!

参考地址: http://python.jobbole.com/81233/

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航