python条件赋值笔记day01

群里看到有人简单讲解了python条件判断的or和and判断,非常有意思,mark一下

问题描述:  

a = 10 or 20
a = 10 and 20
a = 0 or 30
a = 30 or 0
a = 0 and 30
a = 30 and 0

 你是否知道每一个a的准确结果?

 

 你做对了么?

群里大佬的解读:

and的作用,两侧中含0,返回0; 均为非0时,返回后一个值
or的作用,两侧中至少有一个非0时,返回第一个非0
所以从用法上来说and和or与if有着本质上的区别,if是判断后面一个代码块是否为真,而and和or是综合判断两个代码块。

我的理解:

  两侧代码块没有0 两侧代码块有0
or 取左侧代码块的值 非0
and 取右侧代码块的值 取0

知乎上有个解释清晰明了:

“短路原则”:

1. or左边代码块只要返回了真值,就会终止对右边代码块取值,直接返回左边代码块的值

2. and是左右两侧代码块均返回了真值,返回的是右边代码块的值。如果两侧有一边为假值,则只会返回假值

posted on 2020-12-13 15:08  JUranus  阅读(565)  评论(0编辑  收藏  举报