紫旭
Learning and Developing
详解Python中的逻辑运算符and or 和not

总体解释

首先,‘and’、‘or’和‘not’的优先级是not>and>or。

其次,逻辑操作符and 和or 也称作短路操作符(short-circuitlogic)或者惰性求值(lazy evaluation):它们的参数从左向右解析,一旦结果可以确定就停止。例如,如果A 和C 为真而B 为假, A and B and C 不会解析C 。作用于一个普通的非逻辑值时,短路操作符的返回值通常是最后一个变量。因此,逻辑运算符的理解也与C语言中不同。举个例子:

/wp-content/uploads/image/20180702/1530545008583089.png

输出内容:

/wp-content/uploads/image/20180702/1530545017167141.png

在以上例子中,按照C语言对的思维,3 and 4即3与4为3,但是由于是短路操作符,结果为4,是因为and运算符必须所有的运算数都是true才会把所有的运算数都解析,并且返回最后一个变量,即为4;改变一下顺序4 and 3 ,结果也不一样,即为3

而或逻辑(or),即只要有一个是true,即停止解析运算数,返回最近为true的变量,即 3 or 4,值为3;改变顺序4 or 3 即为4

个人理解

赋值变量为非布尔型时,进行判断永远返回真,所以and时,由于两个值都是true,则返回末尾的值,or 时,由于第一个已经是true了,所以第二个将不再继续判断。

赞赏

本站全部博文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。
本文永久地址:https://blog.zixutech.cn/archives/88
没有标签
首页      我爱学习      Python      详解Python中的逻辑运算符and or 和not
https://secure.gravatar.com/avatar/141689cb377e5fa6af643cdb5b5841c2?s=256&d=identicon&r=g

紫旭

文章作者

发表评论

textsms
account_circle
email

紫旭Blog – 学无止境

详解Python中的逻辑运算符and or 和not
总体解释首先,‘and’、‘or’和‘not’的优先级是not>and>or。其次,逻辑操作符and 和or 也称作短路操作符(short-circuitlogic)或者惰性求值(lazy evaluation):它们的参数从左向右…
扫描二维码继续阅读
2018-07-02
$(function(){ $('.EnlighterJSInfoButton').hide(); })