1. 引言

运算符是编程语言中用于执行各种运算的符号或关键字。Python 提供了丰富的运算符,涵盖了算术、比较、赋值、逻辑、位运算、成员关系、身份判断等多个方面。掌握这些运算符是编写高效、简洁 Python 代码的基础。本文将系统性地介绍 Python 中的各类运算符,并通过示例代码帮助读者深入理解其用法和特性。

2. 算术运算符

算术运算符用于执行基本的数学运算。

运算符描述示例结果
+加法5 + 38
-减法10 - 46
*乘法7 * 214
/除法(浮点数)10 / 33.333...
//整除(向下取整)10 // 33
%取模(求余)10 % 31
**幂运算2 ** 38
# 算术运算符示例
a = 6
b = 2

print(a + b)       #8
print(a - b)       #4
print(a * b)       #12
print(b ** a)      #64
print(a / b)       #3.0
print(a // b)      #3
print(a % b)       #0

3. 比较运算符

比较运算符用于比较两个值,返回布尔值 TrueFalse

运算符描述示例结果
==等于5 == 5True
!=不等于5 != 3True
>大于10 > 5True
<小于3 < 7True
>=大于等于5 >= 5True
<=小于等于4 <= 6True
# 比较运算符示例
x = 10
y = 20
print(x == y)    # False
print(x != y)    # True
print(x > y)     # False
print(x < y)     # True
print(x >= 10)   # True
print(y <= 20)   # True

4. 赋值运算符

赋值运算符用于给变量赋值,并支持复合赋值运算。

运算符描述等价于示例
=基本赋值-x = 5
+=加后赋值x = x + yx += y
-=减后赋值x = x - yx -= y
*=乘后赋值x = x * yx *= y
/=除后赋值x = x / yx /= y
//=整除后赋值x = x // yx //= y
%=取模后赋值x = x % yx %= y
**=幂运算后赋值x = x ** yx **= y
# 赋值运算符示例
a = 10
a += 5      # a = a + 5 → 15
print(a)
b = 20
b -= 3      # b = b - 3 → 17
print(b)
c = 5
c *= 2      # c = c * 2 → 10
print(c)
d = 100
d /= 4      # d = d / 4 → 25.0
print(d)

5. 逻辑运算符

逻辑运算符用于组合多个条件,常用于流程控制。

运算符描述示例结果
and逻辑与(两者都为真)True and FalseFalse
or逻辑或(至少一个为真)True or FalseTrue
not逻辑非(取反)not TrueFalse
# 逻辑运算符示例
age = 25
has_license = True
# 使用 and
if age >= 18 and has_license:
print("可以驾驶")  # 输出
# 使用 or
if age < 12 or age >= 65:
print("享受优惠票价")
# 使用 not
is_weekend = False
if not is_weekend:
print("今天是工作日")  # 输出

6. 位运算符

位运算符直接对整数的二进制位进行操作。

运算符描述示例结果(二进制)
&按位与5 & 31 (0101 & 0011 = 0001)
|按位或5 | 37 (0101 | 0011 = 0111)
^按位异或5 ^ 36 (0101 ^ 0011 = 0110)
<<左移5 << 110 (0101 << 1 = 1010)
>>右移5 >> 12 (0101 >> 1 = 0010)
# 位运算符示例
a = 5  # 二进制 0101
b = 3  # 二进制 0011
print(a & b)   # 1  (0001)
print(a | b)   # 7  (0111)
print(a ^ b)   # 6  (0110)
print(a << 1) # 10 (1010)
print(a >> 1) # 2  (0010)

7. 成员运算符

成员运算符用于测试序列(如字符串、列表、元组、字典、集合)中是否包含某个成员。

运算符描述示例结果
in如果在序列中找到值则返回 True'a' in 'apple'True
not in如果在序列中没有找到值则返回 True5 not in [1,2,3]True
# 成员运算符示例
fruits = ['apple', 'banana', 'cherry']
print('banana' in fruits)      # True
print('orange' in fruits)      # False
print('grape' not in fruits)   # True
text = "Hello, World!"
print('World' in text)         # True
print('Python' in text)        # False

8. 身份运算符

身份运算符用于比较两个对象的内存地址(是否为同一个对象)。

运算符描述示例结果
is如果两个变量引用同一个对象则返回 Truex is y取决于对象标识
is not如果两个变量引用不同对象则返回 Truex is not y取决于对象标识
# 身份运算符示例
a = [1, 2, 3]
b = a                # b 引用同一个列表对象
c = [1, 2, 3]        # c 引用一个新列表对象,内容相同
print(a is b)        # True
print(a is c)        # False
print(a == c)        # True (值相等)
print(a is not c) # True
# 小整数缓存(-5 到 256)
x = 100
y = 100
print(x is y)        # True (Python 会缓存小整数)
m = 1000
n = 1000
print(m is n)        # False (大整数不缓存)

9. 运算符优先级

当表达式中包含多个运算符时,Python 会按照优先级顺序进行计算。下表从高到低列出了常见运算符的优先级:

  1. () —— 括号(最高优先级)
  2. ** —— 幂运算
  3. *///% —— 乘、除、整除、取模
  4. +- —— 加、减(二元运算符)
  5. <<>> —— 左移、右移
  6. & —— 按位与
  7. ^ —— 按位异或
  8. | —— 按位或
  9. <<=>>=!=== —— 比较运算符
  10. isis notinnot in —— 身份和成员运算符
  11. not —— 逻辑非
  12. and —— 逻辑与
  13. or —— 逻辑或(最低优先级)
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐