#yyds干货盘点#python之布尔运算、比较运算

网友投稿 329 2022-08-23


#yyds干货盘点#python之布尔运算、比较运算

布尔运算 --- ​​and​​, ​​or​​, ​​not​​

这些属于布尔运算,按优先级升序排列:

运算

结果:

备注

​x or y​

if x is false, then y, else x

(1)

​x and y​

if x is false, then x, else y

(2)

​not x​

if x is false, then ​​True​​​, else ​​False​

(3)

注释:

这是个短路运算符,因此只有在第一个参数为假值时才会对第二个参数求值。这是个短路运算符,因此只有在第一个参数为真值时才会对第二个参数求值。​​not​​ 的优先级比非布尔运算符低,因此 not a == b 会被解读为 not (a == b) 而 a == not b 会引发语法错误。

比较运算

在 Python 中有八种比较运算符。 它们的优先级相同(比布尔运算的优先级高)。 比较运算可以任意串连;例如,​​x < y <= z​​ 等价于 ​​x < y and y <= z​​,前者的不同之处在于 y 只被求值一次(但在两种情况下当 ​​x < y​​ 结果为假值时 z 都不会被求值)。

此表格汇总了比较运算:

运算

含意

​<​

严格小于

​<=​

小于或等于

​>​

严格大于

​>=​

大于或等于

​==​

等于

​!=​

不等于

​is​

对象标识

​is not​

否定的对象标识

除不同的数字类型外,不同类型的对象不能进行相等比较。​​==​​ 运算符总有定义,但对于某些对象类型(例如,类对象),它等于 is 。其他 ​​<​​、​​<=​​、​​>​​ 和 ​​>=​​ 运算符仅在有意义的地方定义。例如,当参与比较的参数之一为复数时,它们会抛出 TypeError 异常。

is 和 is not 运算符无法自定义;并且它们可以被应用于任意两个对象而不会引发异常。

还有两种具有相同语法优先级的运算 in 和 not in,它们被 iterable 或实现了 ​​__contains__()​​ 方法的类型所支持。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python 局部变量global,全局变量local ,非局部变量nonlocal ,Enclosing function locals作用域(python能做什么)
下一篇:五分钟手撸一个Spring容器(萌芽版)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~