所有运算符只干两件事中的一件——要么造出一个值要么问出一个 True/False。几个重点注意①切勿把读成「等于」数学课上 表示左右两边相等是一个静态的、陈述性的符号。Python 里的 是一个动作把右边的值装进左边那个变量。拆这个陷阱光解释没用要改读法。统一读成「赋值给」认知就会跟着改。对照一下就清楚了x10# 把 10 装进 xxx5# 先把右边算出来15再装回 xprint(x)# 15x5# 等价于 x x 5print(x)# 20这张表在教材里通常有八行、、-、*、/、//、%、**看着吓人其实只说一句话就够除了“”其余每一个都是「在原来的基础上做一次运算再把结果存回去」。②is 跟 不是一回事理解为「长得一样」is理解为「是不是同一个人」。a[1,2]b[1,2]caprint(ab)# True 内容一样print(aisb)# False 但不是同一个盒子print(ac)# Trueprint(aisc)# True 就是同一个盒子a.append(3)# 往这个盒子里再放一个 3print(b)# [1, 2] b 没受影响print(c)# [1, 2, 3] c 跟着变了最后两行最有说服力我只往 a 里加了一个 3c 跟着变了b 没变。因为 c 和 a 根本是同一个盒子只是有两个名字b 是另一个盒子凑巧装了一样的东西。所以问的是「装的东西一样吗」is问的是「是不是同一个盒子」。③逻辑短路规则逻辑运算符的表面规则两句话就说完and是「而且」两边都真才是真or是「或者」有一个真就是真。短路and只要发现左边是假的右边根本不看直接收工。x0print(x!0and10/x1)# False 没报错因为右边没算print(10/x1)# ZeroDivisionError 去掉保护立刻崩第一行里明明有10 / x而x是 0。除以 0 在 Python 里是会崩的——第二行就崩了。但第一行老老实实输出了False。为什么因为and看到左边x ! 0是假的就停下来了。左边已经注定是假右边无论是什么都改变不了结果所以 Python 干脆不算。一句话记住and撞到假就收工or撞到真就收工后面的代码一律不执行。
阅读完成 · 觉得有帮助?