Python中+、==、and、+=等是运算符,:、,、()、[]等是语法符号;运算符参与计算并返回值或改变状态,语法符号仅用于结构分隔。
Python里哪些符号算运算符,哪些只是语法符号
不是所有看起来像“符号”的东西都是运算符。比如 :、,、( )、[ ] 是语法分隔符,不参与计算;而 +、==、and、+= 才是真正会触发操作的运算符。混淆这两类容易在查文档时走偏——比如搜 if x: y 里的 : 是什么运算符,其实它根本不是。
判断依据很简单:这个符号是否出现在表达式中,并能返回一个值(哪怕布尔值)或改变对象状态。例如 a + b 返回和,a += 1 修改 a,x == y 返回 True 或 False —— 这些全是运算符。
算术运算符的隐式类型转换陷阱
Python 的 +、* 看似简单,但行为高度依赖操作数类型,且不会强制转成数字:
-
"a" + "b"→"ab"(字符串拼接),但"a" + 1直接报TypeError -
[1] * 3→[1, 1, 1],但[1] * 2.5报错(右操作数必须是整数) -
7 / 2返回3.5(浮点除),而7 // 2是3(整除),7 % 2是1(取余)
特别注意 ** 是右结合:2 ** 3 ** 2 等价于 2 ** (3 ** 2) = 2 ** 9 = 512,不是 (2 ** 3) ** 2。
立即学习“Python免费学习笔记(深入)”;
比较运算符链式写法的真实含义
Python 允许写 1 ,但它**不是**先算 1 得布尔值再跟 10 比。而是等价于 (1 ,且 x 只求值一次。