Python运算符 - 详细说明

运算符是编程语言中用于执行各种操作的符号。Python提供了多种类型的运算符,包括算术运算符、比较运算符、赋值运算符、逻辑运算符、位运算符等。掌握这些运算符对于编写Python程序至关重要。

运算符分类概览

Python中的运算符可以分为以下几类:

  • 算术运算符:用于执行基本数学运算
  • 比较运算符:用于比较两个值
  • 赋值运算符:用于给变量赋值
  • 逻辑运算符:用于组合条件语句
  • 位运算符:用于对二进制数进行操作
  • 成员运算符:用于测试序列中是否包含某个成员
  • 身份运算符:用于比较两个对象的内存地址

算术运算符

算术运算符用于执行基本的数学运算,如加、减、乘、除等。

运算符 描述 示例 结果
+ 加法 10 + 5 15
- 减法 10 - 5 5
* 乘法 10 * 5 50
/ 除法 10 / 5 2.0
% 取模(余数) 10 % 3 1
** 幂运算 2 ** 3 8
// 整除(向下取整) 10 // 3 3
# 算术运算符示例
a = 10
b = 3

print("加法:", a + b) # 输出: 13
print("减法:", a - b) # 输出: 7
print("乘法:", a * b) # 输出: 30
print("除法:", a / b) # 输出: 3.333...
print("取模:", a % b) # 输出: 1
print("幂运算:", a ** b) # 输出: 1000
print("整除:", a // b) # 输出: 3

比较运算符

比较运算符用于比较两个值,返回布尔值(True或False)。

运算符 描述 示例 结果
== 等于 10 == 5 False
!= 不等于 10 != 5 True
> 大于 10 > 5 True
< 小于 10 < 5 False
>= 大于等于 10 >= 5 True
<= 小于等于 10 <= 5 False
# 比较运算符示例
x = 10
y = 5

print("等于:", x == y) # 输出: False
print("不等于:", x != y) # 输出: True
print("大于:", x > y) # 输出: True
print("小于:", x < y) # 输出: False
print("大于等于:", x >= y) # 输出: True
print("小于等于:", x <= y) # 输出: False

赋值运算符

赋值运算符用于给变量赋值,也可以与其他运算符结合使用。

运算符 描述 示例 等价于
= 简单赋值 x = 5 x = 5
+= 加法赋值 x += 3 x = x + 3
-= 减法赋值 x -= 3 x = x - 3
*= 乘法赋值 x *= 3 x = x * 3
/= 除法赋值 x /= 3 x = x / 3
%= 取模赋值 x %= 3 x = x % 3
**= 幂赋值 x **= 3 x = x ** 3
//= 整除赋值 x //= 3 x = x // 3
# 赋值运算符示例
x = 10
print("初始值:", x) # 输出: 10

x += 5 # x = x + 5
print("加法赋值后:", x) # 输出: 15

x *= 2 # x = x * 2
print("乘法赋值后:", x) # 输出: 30

x %= 7 # x = x % 7
print("取模赋值后:", x) # 输出: 2

逻辑运算符

逻辑运算符用于组合条件语句,返回布尔值。

运算符 描述 示例 结果
and 逻辑与 - 如果两个操作数都为真,则条件为真 x > 5 and x < 10 True/False
or 逻辑或 - 如果任一操作数为真,则条件为真 x > 5 or x < 4 True/False
not 逻辑非 - 反转操作数的逻辑状态 not(x > 5) True/False
# 逻辑运算符示例
a = True
b = False

print("a and b:", a and b) # 输出: False
print("a or b:", a or b) # 输出: True
print("not a:", not a) # 输出: False
print("not b:", not b) # 输出: True

# 实际应用
age = 20
has_license = True

can_drive = age >= 18 and has_license
print("可以开车:", can_drive) # 输出: True

位运算符

位运算符用于对二进制数进行操作。

运算符 描述 示例 结果
& 按位与 5 & 3 1
| 按位或 5 | 3 7
^ 按位异或 5 ^ 3 6
~ 按位取反 ~5 -6
<< 左移 5 << 1 10
>> 右移 5 >> 1 2
# 位运算符示例
a = 5 # 二进制: 0101
b = 3 # 二进制: 0011

print("按位与:", a & b) # 0101 & 0011 = 0001 (1)
print("按位或:", a | b) # 0101 | 0011 = 0111 (7)
print("按位异或:", a ^ b) # 0101 ^ 0011 = 0110 (6)
print("按位取反:", ~a) # ~0101 = 1010 (-6)
print("左移:", a << 1) # 0101 << 1 = 1010 (10)
print("右移:", a >> 1) # 0101 >> 1 = 0010 (2)

成员运算符和身份运算符

成员运算符用于测试序列中是否包含某个成员,身份运算符用于比较两个对象的内存地址。

运算符 描述 示例 结果
in 如果在序列中找到值返回True,否则返回False 5 in [1,2,3,4,5] True
not in 如果在序列中没有找到值返回True,否则返回False 6 not in [1,2,3,4,5] True
is 如果两个变量引用同一个对象返回True x is y True/False
is not 如果两个变量引用不同的对象返回True x is not y True/False
# 成员运算符示例
fruits = ["apple", "banana", "cherry"]
print("banana在列表中:", "banana" in fruits) # 输出: True
print("orange不在列表中:", "orange" not in fruits) # 输出: True

# 身份运算符示例
x = [1, 2, 3]
y = [1, 2, 3]
z = x

print("x is y:", x is y) # 输出: False (不同对象)
print("x is z:", x is z) # 输出: True (相同对象)
print("x is not y:", x is not y) # 输出: True

运算符优先级

当表达式中有多个运算符时,Python会按照运算符的优先级进行计算。优先级高的运算符先于优先级低的运算符进行计算。

优先级 运算符 描述
1 () 括号
2 ** 幂运算
3 ~ + - 按位取反、正号、负号
4 * / % // 乘、除、取模、整除
5 + - 加、减
6 >> << 右移、左移
7 & 按位与
8 ^ | 按位异或、按位或
9 <= < > >= 比较运算符
10 == != 等于、不等于
11 = %= /= //= -= += *= **= 赋值运算符
12 is is not 身份运算符
13 in not in 成员运算符
14 not or and 逻辑运算符
# 运算符优先级示例
result1 = 10 + 5 * 2 # 乘法优先级高于加法: 5*2=10, 10+10=20
result2 = (10 + 5) * 2 # 括号改变优先级: 10+5=15, 15*2=30
result3 = 2 ** 3 * 4 # 幂运算优先级高于乘法: 2**3=8, 8*4=32

print("10 + 5 * 2 =", result1) # 输出: 20
print("(10 + 5) * 2 =", result2) # 输出: 30
print("2 ** 3 * 4 =", result3) # 输出: 32
提示: 当不确定运算符的优先级时,使用括号可以明确指定计算顺序,同时提高代码的可读性。
← 返回知识点列表