运算符执行方式
运算符都是有优先级的,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,下班了。