Python 运算符大全:7 大类详解与实战示例

Released: 2025年12月29日
📅 最后更新:2025年12月29日

编程的本质是对数据进行操作,而运算符 (Operators) 正是操作数据的“指挥棒”。无论是简单的数学计算,还是复杂的逻辑判断,都离不开它们。

很多 Python 新手常在 is 和 == 的区别上栽跟头,或者搞不清 and 和 or 的执行顺序。我们不仅列出语法,更会通过实战代码告诉您“为什么这么用”。
Python 运算符大全

算术运算符 (Arithmetic Operators)

这是最基础的一类,用于执行数学运算。但在 Python 中,除法和取模有一些特殊的细节需要注意。

运算符 描述 实例 (a=10, b=3) 结果
+ 加法 a + b 13
- 减法 a - b 7
* 乘法 a * b 30
/ 真除法 (结果总是浮点数) a / b 3.333…
% 取模 (返回除法的余数) a % b 1
** 幂运算 (a 的 b 次方) a ** b 1000
// 整除 (向下取整) a // b 3

? 专家提示:除法与整除的区别

在 Python 3 中,/ 永远返回 float 类型,即使能除尽。如果您需要得到整数结果,请使用 //。具体细节可以参考 Python 官方数学运算文档 中的说明。

Python

print(10 / 2) # 输出: 5.0 (float)
print(10 // 2) # 输出: 5 (int)
print(-10 // 3) # 输出: -4 (注意:是向下取整,向负无穷方向)

比较运算符 (Comparison Operators)

用于比较两个值,结果永远是布尔值:True 或 False。这在 if 语句和循环中至关重要。

  • == (等于)

  • != (不等于)

  • > (大于)

  • < (小于)

  • >= (大于等于)

  • <= (小于等于)

实战场景:

Python

x = 5
y = 10
print(x == y) # False
print(x != y) # True

赋值运算符 (Assignment Operators)

除了基础的 =,Python 还支持复合赋值(如 +=),这能让代码更简洁。另外,Python 3.8 引入了备受争议但也非常强大的海象运算符。

常用复合赋值

  • c += a 等效于 c = c + a

  • c *= a 等效于 c = c * a

  • c //= a 等效于 c = c // a

? 海象运算符 (Walrus Operator :=)

它允许你在表达式内部为变量赋值。

不使用海象运算符:

Python

# 需要先获取数据,再判断
data = input("请输入内容: ")
if len(data) > 0:
 print(f"你输入了: {data}")

使用海象运算符:

Python

# 赋值与判断同时进行,代码更紧凑
if (n := len(input("请输入内容: "))) > 0:
 print(f"你输入了 {n} 个字符")

逻辑运算符 (Logical Operators)

逻辑运算符用于组合条件语句。理解它们的短路机制 (Short-circuit evaluation) 是写出高效代码的关键。

运算符 描述 逻辑规则
and 与 只有两边都为 True,结果才为 True
or 或 只要有一边为 True,结果就为 True
not 非 反转布尔值 (True 变 False)

⚠️ 易错点:短路求值

Python 解析器一旦能确定结果,就会停止往后执行。

Python

a = 10
b = 0

# 因为 a > 5 是 True,Python 必须检查第二个条件
# 此时 b != 0 是 False,所以结果是 False
if a > 5 and b != 0: 
 print("Safe division")

# 如果 a > 5 是 False (例如 a=1),Python 根本不会去检查 b != 0

身份运算符 (Identity Operators)

这是 Python 特有的概念,用于比较两个对象的内存地址。

  • is: 判断两个变量是否引用同一个对象。

  • is not: 判断两个变量是否引用不同的对象。

深度解析:is vs ==

  • == 比较的是 值 (Value)。

  • is 比较的是 内存地址 (Memory ID)。

Python

list_a = [1, 2, 3]
list_b = [1, 2, 3]
list_c = list_a

print(list_a == list_b) # True (因为内容一样)
print(list_a is list_b) # False (它们是内存中两个不同的列表对象)
print(list_a is list_c) # True (它们指向同一个对象)

成员运算符 (Membership Operators)

用于测试一个序列(字符串、列表、元组、字典等)中是否包含指定的元素。

  • in

  • not in

实战案例:

Python

# 检查列表
fruits = ["apple", "banana"]
if "apple" in fruits:
 print("Apple is in the list")

# 检查字典 (默认检查 Key)
user = {"name": "John", "age": 30}
if "name" in user:
 print("Name key exists")

运算符优先级 (Operator Precedence)

当一个表达式中包含多个运算符时,Python 会按照优先级顺序执行。这是一个常见的 Bug 来源。

优先级从高到低(精简版):

  1. ** (指数)

  2. ~, +, - (按位取反,一元加减)

  3. *, /, %, // (乘除)

  4. +, - (加减)

  5. <<, >> (位移)

  6. & (按位与)

  7. ^, | (按位异或、或)

  8. <=, <, >, >= (比较)

  9. ==, != (等于)

  10. =, +=, -= (赋值)

  11. is, is not (身份)

  12. in, not in (成员)

  13. not, and, or (逻辑)

专家建议: 永远不要为了“炫技”而依赖隐晦的优先级。使用括号 () 来明确你的意图,这能让代码可读性提升 10 倍。
Python 运算符大全

8. PEP 8 规范与最佳实践

在编写包含运算符的代码时,代码的格式美观同样重要。根据 Python 官方的 PEP 8 风格指南:

  1. 空格的使用: 二元运算符(如 +, -, =, ==)两边应各有一个空格。

    • ✅ 正确:result = a + b

    • ❌ 错误:result=a+b在 Python 3 中

  2. 例外情况: 在函数参数传递时,等号两边不加空格。

    • ✅ 正确:def functional(key=value):

  3. 注释: 复杂的运算逻辑旁边一定要加注释。

如果您想深入了解如何编写符合规范的 Python 代码,包括注释的艺术,强烈建议阅读我们的新手必读指南:

? Python 注释怎么写?新手必看的 PEP 8 规范与最佳实践

常见问题解答 (FAQ)

Q1: Python 中 ^ 是幂运算吗?

不是!在 Python 中,^ 是按位异或 (Bitwise XOR) 运算符。如果你想计算 $2^3$,请使用 2 ** 3,而不是 2 ^ 3。

Q2: 为什么 0.1 + 0.2 != 0.3?

这与运算符本身无关,而是浮点数在计算机底层的二进制存储精度问题。在进行精确的财务计算时,建议使用 decimal 模块。

Q3: and 和 & 有什么区别?

and 是逻辑运算符(判断真假),& 是位运算符(对二进制位进行操作)。在 Pandas 等数据分析库中,经常用 & 来连接多个条件,但这属于重载用法。

结语

掌握 Python 运算符 是通往编程高手的必经之路。从最基础的算术运算到高效的海象运算符,每一个符号都有其特定的应用场景。

记住,代码是写给人看的,只是顺便给机器执行。合理使用运算符,配合良好的注释和格式,才能写出优雅的代码。

更多 Python 学习资源和下载,欢迎访问我们的首页:Python下载。

Related Resources