运算符的优先级,py的执行方式

运算符执行方式 

运算符都是有优先级的,py也是。

() 》not 》and 》or                         

例题如下:

0 or 1 and 2                #结果输出是 2      说明 and 》 or
not False and True          #结果输出 True     说明 not 》and
not (False or True)         #结果输出 False    说明()》not

如果再深入一点了解,想知道py是怎么运行这些代码的,来看看他的心路历程

0 or False      #结果是 False
False or 0      #结果是 0
1 or 我就是bug    #结果是 1

为什么前两行代码结果不一样?

为什么 bug 都没有发现?

因为 or 是要找到一个 True 就会输出 True,我们把py想成一个很懒的人

当他看到  or 命令时,他只找True,其他的不管。

第一行代码:看到 0 了,不管。 看到False了,那这行代码没有 我要的True,那我就输出我最后看到的东西  False。

第二行代码:同上,最后看到的是0 那就返回0

第三行代码:注意这里有个 bug ,可是却正常输出数据。为什么?因为py懒,当他看见1时,OK了,这就是他要的True。输出 1,下班了。

原文地址:https://www.cnblogs.com/yizimei/p/8043424.html