Python中的运算符

145 阅读6分钟

一、前言

在编程中,运算符(Operators) 是用于对变量和值执行操作的特殊符号。Python 提供了丰富的运算符种类,包括算术运算符、比较运算符、逻辑运算符、赋值运算符等,这些运算符是编写程序时进行数据处理和逻辑判断的基础。

掌握 Python 中的各类运算符及其使用方法,对于理解程序逻辑、提升代码效率至关重要。

本文将带你深入了解:

  • 运算符的基本概念;
  • 各类常见运算符及其使用方式;
  • 运算符的优先级与结合性;
  • 实际开发中的应用场景;
  • 常见误区与注意事项;

无论你是刚入门 Python 的新手,还是希望巩固基础的老手,这篇文章都将为你提供实用的知识点!

二、什么是运算符?

运算符是一种特殊的符号,用来对一个或多个操作数(Operands)执行特定的操作。

例如:

a = 5 + 3

在这个表达式中:

  • + 是运算符;
  • 5 和 3 是操作数;
  • 整个表达式的值为 8

根据功能不同,Python 中的运算符可以分为以下几类:

类型描述
算术运算符执行基本数学运算(加减乘除等)
比较(关系)运算符比较两个值之间的大小关系
赋值运算符将值赋给变量
逻辑运算符对布尔值进行逻辑操作(与、或、非)
成员运算符判断某个元素是否属于集合
身份运算符判断两个对象是否指向同一内存地址
位运算符对整数进行按位操作

三、算术运算符

✅ 常用算术运算符:

运算符名称示例结果
+加法2 + 35
-减法5 - 23
*乘法4 * 312
/除法(浮点)10 / 33.333...
//整除10 // 33
%取模(取余)10 % 31
**幂运算2 ** 38

✅ 示例:

print(2 + 3)       # 输出:5
print(10 / 3)      # 输出:3.333...
print(10 // 3)     # 输出:3
print(10 % 3)      # 输出:1
print(2 ** 3)      # 输出:8

📌 注意:

  • / 返回的是浮点结果;
  • // 只返回商的整数部分;
  • % 常用于判断奇偶、循环索引等场景;

四、比较(关系)运算符

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

✅ 常用比较运算符:

运算符名称示例结果
==等于5 == 5True
!=不等于5 != 3True
>大于6 > 3True
<小于2 < 4True
>=大于等于5 >= 5True
<=小于等于3 <= 2False

✅ 示例:

x = 10
y = 5
print(x > y)       # True
print(x == y)      # False
print(y < x)       # True

📌 注意:

  • 比较字符串时,按照字符的 Unicode 值逐个比较;
  • 比较列表、元组等结构时,会逐项比较;

五、赋值运算符

赋值运算符用于将值赋给变量。

✅ 常用赋值运算符:

运算符等价表达式示例
=a = ba = 5
+=a = a + ba += 3
-=a = a - ba -= 2
*=a = a * ba *= 4
/=a = a / ba /= 2
//=a = a // ba //= 3
%=a = a % ba %= 5
**=a = a ** ba **= 2

✅ 示例:

a = 10
a += 5   # 等价于 a = a + 5
print(a) # 输出:15

📌 推荐使用复合赋值操作简化代码书写。

六、逻辑运算符

逻辑运算符用于组合多个条件表达式。

✅ 常用逻辑运算符:

运算符功能示例结果
and与(全为真才为真)True and FalseFalse
or或(有一个为真即为真)True or FalseTrue
not非(取反)not TrueFalse

✅ 示例:

age = 20
gender = 'male'

if age > 18 and gender == 'male':
    print("符合条件")
else:
    print("不符合条件")

📌 注意:

  • and 和 or 具有短路特性;
  • not 常用于判断空值、反转布尔值;

七、成员运算符

用于判断某个元素是否存在于可迭代对象中(如字符串、列表、元组、字典等)。

✅ 成员运算符:

运算符功能示例结果
in是否包含'a' in 'abc'True
not in是否不包含'x' not in 'abc'True

✅ 示例:

fruits = ['apple', 'banana', 'cherry']
print('apple' in fruits)      # True
print('grape' not in fruits)  # True

📌 常用于筛选、搜索、权限控制等场景。

八、身份运算符

用于判断两个对象是否引用同一个内存地址。

✅ 身份运算符:

运算符功能示例结果
is是否是同一对象a is bTrue/False
is not是否不是同一对象a is not bTrue/False

✅ 示例:

a = [1, 2]
b = a
c = [1, 2]

print(a is b)        # True
print(a is c)        # False

📌 注意:

  • == 比较的是值;
  • is 比较的是对象的身份(内存地址);
  • 建议只在判断 None 时使用 is

九、位运算符

位运算符用于对整数的二进制形式进行操作。

✅ 常用位运算符:

运算符名称示例说明
&按位与5 & 31
``按位或`5
^异或5 ^ 36
~取反~5-6
<<左移5 << 110
>>右移5 >> 12

✅ 示例:

x = 5   # 二进制:0b101
y = 3   # 二进制:0b011

print(x & y)   # 0b001 → 1
print(x | y)   # 0b111 → 7
print(x ^ y)   # 0b110 → 6

📌 位运算常用于底层开发、加密算法、性能优化等场景。

十、运算符优先级与结合性

✅ 运算符优先级(从高到低):

优先级运算符
1()(括号)
2**(幂)
3~+-(单目运算)
4*///%
5+-(双目运算)
6<<>>
7&
8^
9`
10==!=><>=<=
11isis notinnot in
12not
13and
14or

📌 使用括号 () 可以改变运算顺序,提高代码可读性。

十一、实际开发中的常见应用场景

✅ 1. 条件判断与流程控制

score = int(input("请输入分数:"))
if score >= 90:
    print("优秀")
elif score >= 60:
    print("及格")
else:
    print("不及格")

✅ 2. 数学计算与公式应用

radius = float(input("请输入圆的半径:"))
area = 3.14159 * radius ** 2
print("圆的面积为:", area)

✅ 3. 数据筛选与处理

numbers = [1, 2, 3, 4, 5, 6]
even_numbers = [n for n in numbers if n % 2 == 0]
print(even_numbers)

✅ 4. 字符串拼接与格式化输出

name = input("请输入你的名字:")
print("欢迎你," + name + "!")

十二、注意事项与最佳实践

问题建议
混淆 == 与 is== 比较值,is 比较对象身份
忽略类型转换导致错误输入默认是字符串,需手动转换为 int 或 float
表达式复杂不加括号使用 () 明确运算顺序
使用 and/or 时忽略短路特性特别是在函数调用中
忽略 not 的作用范围使用括号避免歧义

十三、总结对比表

运算符类型常见符号主要用途
算术运算符+-*///%**数学运算
比较运算符==!=><>=<=条件判断
赋值运算符=+=-=*=/=变量赋值
逻辑运算符andornot组合判断
成员运算符innot in判断存在性
身份运算符isis not判断对象身份
位运算符&, `, ^, ~, <<, >>`

十四、结语

感谢您的阅读!如果你有任何疑问或想要分享的经验,请在评论区留言交流!