不知道别人是怎么学这些 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
来源: http://www.bubuko.com/infodetail-2985185.html