Python中and和or如何使用
Python中and、or是Python中的逻辑运算符,它们的用法如何呢?
and:
在Python中,and和or执行布尔逻辑演算,如你所期待的一样,但是它们并不返回布尔值;而是,返回它们实际进行比较的值之一。
代码如下:
>>>'a'and'b''b' >>>''and'b''' >>>'a'and'b'and'c' 'c'
在布尔上下文中从左到右演算表达式的值,如果布尔上下文中的所有值都为真,那么and返回最后一个值。
如果布尔上下文中的某个值为假,则and返回第一个假值
or:
代码如下:
>>>'a'or'b''a' >>>''or'b''b' >>>''or[]or{} {} >>>0or'a'or'c' 'a'
使用or时,在布尔上下文中从左到右演算值,就像and一样。如果有一个值为真,or立刻返回该值
如果所有的值都为假,or返回最后一个假值
注意or在布尔上下文中会一直进行表达式演算直到找到第一个真值,然后就会忽略剩余的比较值
and-or:
and-or结合了前面的两种语法,推理即可。
>>>a='first' >>>b='second' >>>1andaorb'first' >>>(1anda)orb'first' >>>0andaorb'second' >>>(0anda)orb'second' >>>
这个语法看起来类似于C语言中的bool?a:b表达式。整个表达式从左到右进行演算,所以先进行and表达式的演算。1and'first'演算值为'first',然后'first'or'second'的演算值为'first'。
0and'first'演算值为False,然后0or'second'演算值为'second'。
and-or主要是用来模仿三目运算符bool?a:b的,即当表达式bool为真,则取a否则取b。
and-or技巧,boolandaorb表达式,当a在布尔上下文中的值为假时,不会像C语言表达式bool?a:b那样工作。
安全使用and-or
代码如下:
>>>a="" >>>b="second" >>>(1and[a]or[b]) [''] >>>(1and[a]or[b])[0]'' >>>
由于[a]是一个非空列表,所以它决不会为假。即使a是0或者''或者其它假值,列表[a]也为真,因为它有一个元素。
一个负责的程序员应该将and-or技巧封装成一个函数:
代码如下:
defchoose(bool,a,b): return(booland[a]or[b])[0] printchoose(1,'','second') #''
实例补充:
>>>a='first' >>>b='second' >>>1andaorb#等价于bool=true时的情况 'first' >>>0andaorb#等价于bool=false时的情况 'second' >>>a='' >>>1andaorb#a为假时,则出现问题 'second' >>>(1and[a]or[b])[0]#安全用法,因为[a]不可能为假,至少有一个元素 '' >>>
到此这篇关于Python中and和or如何使用的文章就介绍到这了,更多相关Python中and、or用法实例内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。