Python符号分为运算符、语法标记和特殊含义标记三类:运算符如+、==参与计算;语法标记如:、[]定义结构;特殊符号如、*依上下文有不同语义。

Python 中的符号不是“运算符”就是“语法标记”,它们各自有明确角色,混用会报错。掌握它们的关键是分清:哪些参与计算(如 +、==),哪些定义结构(如 :、#, [ ], ( ), { }),哪些是特殊含义标记(如 *、**、/ 在不同上下文行为不同)。
一、算术与比较符号:基础但易错
这些符号用于数值或可比较对象的运算和判断:
-
+:加法;字符串/列表/元组拼接("a"+"b"→"ab",[1]+[2]→[1, 2]) -
-:减法;也作负号(-5)或取反(-x) -
*:乘法;字符串/列表重复("x"*3→"xxx",[1]*2→[1, 1]) -
/:真除法,结果总是float(5/2→2.5) -
//:整除,向下取整(5//2→2,-5//2→-3) -
%:取余(模运算),符号随左操作数(-7%3→2,不是-1) -
==和!=:判断值是否相等/不等;注意别写成=(赋值)或===(Python 没有) -
is和is not:判断是否为同一对象(内存地址),不是值比较([] is []→False)
二、赋值与增强赋值:不止是“等于”
= 是赋值,把右边结果绑定给左边名称;它不返回值(不能写 if a = 5:,会语法错误):
-
a = 5:基本赋值 -
a += 3等价于a = a + 3(支持-=、*=、//=、**=等) -
a, b = 1, 2:多变量同时赋值(解包) -
a, b = b, a:交换两变量,无需中间变量 -
a, *rest, c = [1,2,3,4,5]:带星号解包,rest得到[2,3,4]
三、括号与标点:语法骨架,缺一不可
它们不参与运算,但决定代码是否合法、如何被解释:
动态WEB网站中的PHP和MySQL详细反映实际程序的需求,仔细地探讨外部数据的验证(例如信用卡卡号的格式)、用户登录以及如何使用模板建立网页的标准外观。动态WEB网站中的PHP和MySQL的内容不仅仅是这些。书中还提到如何串联JavaScript与PHP让用户操作时更快、更方便。还有正确处理用户输入错误的方法,让网站看起来更专业。另外还引入大量来自PEAR外挂函数库的强大功能,对常用的、强大的包
立即学习“Python免费学习笔记(深入)”;
-
():调用函数(print())、创建元组((1,),单元素必须加逗号)、控制运算优先级((2+3)*4) -
[]:定义列表([1,2,3])、索引取值(lst[0])、切片(s[1:4])、列表推导式([x*2 for x in range(3)]) -
{}:定义字典({"a":1})、集合({1,2})、f-string 格式占位(f"{x}") -
::标识代码块开始(if、for、def后必须跟冒号);切片语法分隔符(a[1:5:2]);字典键值对分隔({"k": v}) -
#:单行注释开始,后面内容被忽略(# 这是注释) -
\:行续行符(a = 1 + \ 2等价于a = 1 + 2),但更推荐用括号隐式续行
四、特殊符号:上下文决定含义
同一个符号在不同位置代表完全不同语义,这是初学者最易混淆的地方:
-
*:- 乘法(
3 * 4) - 解包参数(
func(*args)把列表/元组展开为位置参数) - 强制关键字参数分隔(
def f(a, *, b):,调用时b必须用关键字) - 在参数名前表示“收集多余位置参数”(
def f(*args):)
- 乘法(
-
**:- 幂运算(
2**3→8) - 解包字典为关键字参数(
func(**kwargs)) - 在参数名前表示“收集多余关键字参数”(
def f(**kw):)
- 幂运算(
-
@:装饰器语法糖(@timer等价于func = timer(func)) -
&、|、^、~:位运算符(按位与、或、异或、取反),也可用于集合操作({1,2} & {2,3}是交集) -
->:函数注解中的返回类型提示(def f() -> str:),不影响运行,仅供工具和人阅读
基本上就这些。不用死记,边写边查、写错看报错信息(比如 SyntaxError: invalid syntax 多半是括号或冒号漏了,TypeError: unsupported operand type 就是符号用错了对象),熟练后自然形成直觉。










