栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python的in(__contains__)运算符返回布尔值,该布尔值既不是True也不是False

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python的in(__contains__)运算符返回布尔值,该布尔值既不是True也不是False

您正在遇到比较运算符链接;

1 in () == False
没有 意思
(1 in ()) == False

相反,比较是链接在一起的,该表达式的真正含义是:

(1 in ()) and (() == False)

因为

(1 in ())
已经为false,所以
False andsomething_else
将完全忽略链接表达式的后半部分(因为返回
False
的值
something_else
将是)。

请参阅比较表达式文档:

可以任意链接比较,例如

x < y <= z
与等效
x < y and y <= z
,不同之处在于
y
比较仅被评估一次(但在两种情况下
z
x< y
被发现为假,则根本不评估)。

对于记录,

<
>
==
>=
<=
!=
is
is not
in
not in
都是比较运算符(如本弃用
<>
)。

通常,不要将其与布尔值进行比较;只是测试表达式本身。如果 必须
对布尔文字进行测试,则至少要使用括号和

is
运算符,
True
并且
False
它们是单例的,就像
None

>>> (1 in ()) is FalseTrue

当涉及整数时,这仍然变得更加令人困惑。Python的

bool
类型是子类
int
1。因此,
False == 0
确实如此
True ==1
。因此,可以想象到,您可以创建看起来理智的链接操作:

3 > 1 == True

是正确的,因为

3 > 1
1 == True
都正确。但是表达式:

3 > 2 == True

是错误的,因为

2 == True
是错误的。

1是出于历史原因的子类;Python并不总是像C那样具有类型和具有布尔含义的重载整数。制作子类可使较旧的代码正常工作。

bool``int``bool``bool



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/382146.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号