知行编程网知行编程网  2022-12-18 04:00 知行编程网 隐藏边栏  10 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python中and、or用法实例的相关知识,希望可以帮到处于编程学习途中的小伙伴

Python中and、or是Python中的逻辑运算符,它们的用法如何呢?


and 和 or 在 Python 中的用法示例


and:

在 Python 中,and 和 or 执行布尔逻辑,正如你所期望的那样,但它们不返回布尔值;相反,他们返回他们实际比较的值之一。

代码如下:

>>> 'a' and 'b' 'b' 
>>> '' and 'b' '' 
>>> 'a' and 'b' and 'c'
 'c'

在布尔上下文中从左到右计算表达式,如果布尔上下文中的所有值都为真,则返回最后一个值。

如果布尔上下文中的值之一为假,则返回第一个假值


or:

代码如下:

>>> 'a' or 'b' 'a' 
>>> '' or 'b' 'b' 
>>> '' or [] or {}
{} 
>>> 0 or 'a' or 'c' 
'a'

使用 or 时,值在布尔上下文中从左到右求值,就像 and 一样。如果任何值为真,或立即返回该值

如果所有的值都为假,or 返回最后一个假值

请注意,或在布尔上下文中计算表达式直到找到第一个真值,然后忽略剩余的比较值


and-or:

and-or 结合了前面的两种语法,推理即可。

>>> a='first' 
>>> b='second' 
>>> 1 and a or b 'first' 
>>> (1 and a) or b 'first' 
>>> 0 and a or b 'second' 
>>> (0 and a) or b 'second' 
>>>

此语法看起来类似于 bool ? a : b C 中的表达式。整个表达式是从左到右求值的,所以 and 表达式先求值。 1 和 'first' 的计算结果为 'first',然后 'first' 或 'second' 的计算结果为 'first'。

0 and 'first' 演算值为 False,然后 0 or 'second' 演算值为 'second'。

and-or主要用来模仿三元运算符bool?a:b,即当表达式bool为真时取a,否则取b。

and-or 技巧,bool and a or b 表达式,不像 C 表达式 bool ? a : b 当 a 在布尔上下文中的计算结果为 false 时。


安全使用and-or

代码如下:

>>> a="" 
>>> b="second" 
>>> (1 and [a] or [b])
[''] 
>>> (1 and [a] or [b])[0] '' 
>>>

由于 [a] 是一个非空列表,因此它永远不会为假。即使 a 为 0 或 '' 或其他某个假值,List[a] 也为真,因为它只有一个元素。

一个负责任的程序员应该将 and-or 技巧包装到一个函数中:

代码如下:

def choose(bool,a,b): 
return (bool and [a] or [b])[0] 
print choose(1,'','second') 
#''

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享