python运算符详解

不知道别人是怎么学这些pyhton运算符的,会写一些基础的python脚本,可这些规则我经常搞错,作为一名运维人员,这看似简单的东西却偏偏是一些公司面试经常考的东西,觉得很有必要再次总结一下,方便以后翻阅。
x or y ,如果x==0,那么就是y,否则就是x,and的算法和or是相反的,可以反着推就对了
print(1 or 2) #答案1
print(2 or 3) #答案2
print(0 or 3) #答案3
print(0 or 4) #答案4
print(0 or 1 or 3 or 0 or 5) #答案1
print(1 and 3) #答案3
print(0 and 1) #答案0
print(0 and 5) #答案0
print(2 and 5) #答案5
print(1 or 2 and 3) #答案1
print(2 or 3 and 5 or 4) #答案2
print(0 or 4 and 3 or 7 or 9 and 6) #答案3
#思路:先算and,再算or,结果是0 or 3 or 7 or 6,最终结果为3

and or not同时存在,先算括号,然后算not,再算and,最后算or
print(3 > 4 or 4 < 3 and 1==1)
#思路:先算and,4<3是False,1==1是True,再算3>4是False,等于说是False or False and True,这时候False and True的结果是False,所以是False or False的结果是False

print(1 < 2 and 3 < 4 or 1 > 2)
#思路:True and True or False,然后是True or False,所以最终结果是True
print(2 > 1 and 3 < 4 or 4 > 5 and 2 <1)
#思路:True and True or False and False ,其实看or 前面的True and True 就知道本题答案是True,因为or有一个结果为True,最终结果就是True

print(1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8)
#思路:False and True or False and True or False,就是False or False,最终结果为False

print(not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6)
#对于下面两道题真的有坑,我习惯先算and,然后算>,其实大错特错,如果真是先算and,那么第一题照这个思路是成立的,第二题就说不过去了,来执行代码让解释器告诉我们结果
print(2 > 5 and 3)
print(2 > 5 and 1)
#思路:False相当于0 ,True是非0,2 > 5是0,就是等于说是0 and 1,所以是0,就是False
C:\Users\cheng>python first.py
False
False

print(2 < 1 and 4 > 6 or 3 and 4 > 5 or 6)
#思路:
False and False or 3 and False or 6
True or False or 6
False or 6
最终结果为6
C:\Users\cheng>python first.py
6

猜你喜欢

转载自blog.51cto.com/12943999/2361942
今日推荐