为了账号安全,请及时绑定邮箱和手机立即绑定

Python和/或运算符返回值

Python和/或运算符返回值

隔江千里 2019-07-05 15:55:16
Python和/或运算符返回值我在看2007年关于高级Python或理解Python的视频,在18‘27岁时,“演讲者声称”,正如一些人在Python中可能知道的那样。and和or返回两个值中的一个,而not返回始终是布尔值。“什么时候出现这种情况?”据我所知,and和or还布尔人。
查看完整描述

3 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

这个andor运算符确实返回它们的一个操作数,而不是像这样的纯布尔值。TrueFalse:

>>> 0 or 4242>>> 0 and 420

鉴于not总是返回一个纯布尔值:

>>> not 0True>>> not 42False


查看完整回答
反对 回复 2019-07-05
?
jeck猫

TA贡献1909条经验 获得超7个赞

从…Python文档:

如果操作符的参数为假,则不生成True,否则为false。

表达式x和y首先计算x;如果x是false,则返回其值;否则,计算y并返回结果值。

表达式x或y首先计算x;如果x为true,则返回其值;否则,计算y并返回结果值。

Python的or运算符返回第一个true-y值或最后一个值,然后停止。这对于需要后备值的普通编程任务非常有用。

就像这个简单的:

print my_list or "no values"

这个会打印出来my_list如果里面有什么东西的话。否则,它会打印no values(如果List是空的,或者它是空的None...).

一个简单的例子:

>>> my_list = []>>> print my_list or 'no values'no values>>> my_list.append(1)>>> print my_list or 'no values'[1]

恭维and,它返回第一个false-y值,或最后一个值,并停止。

就像这个:

my_list and my_list.pop()

这很有用,因为你不能用list.pop在……上面None,或[],它们是列表的公共先验值。

一个简单的例子:

>>> my_list = None>>> print my_list and my_list.pop()None>>> my_list = [1]>>> print my_list and my_list.pop()1

在这两种情况下,都会返回非布尔值,并且不会引发异常。


查看完整回答
反对 回复 2019-07-05
  • 3 回答
  • 0 关注
  • 726 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信