在实际开发中,想要对各类数据做处理、计算与判断,就离不开运算符。
运算符是用于完成变量、数值运算的专用符号。本文系统梳理四大高频基础运算符:算术运算符、赋值运算符、比较运算符、逻辑运算符。
一、运算符基础概念
1.1 定义
- 运算符:对变量、字面量等数据执行运算操作的特殊符号;
- 操作数:参与运算的数据(变量、数字、字符串字面量等);
- 表达式:操作数 + 运算符组合而成的完整运算语句。
+ 是运算符; a、b 是操作数
1.2 分类
Python 内置 7 大类运算符,覆盖数值计算、赋值、条件判断、二进制操作、容器检测、对象内存判断全场景:
本文仅讲解前四类常用运算符。
二、算术运算符
2.1 定义
算术运算符:用于 数字类型 的数学加减乘除运算,包含常规四则运算、整除、取余、幂运算。
a = 10b = 3print(a / b) # 3.3333333333333335print(a // b) # 地板除向下取整:3print(a % b) # 取余数:1print(2 ** 5) # 2的5次方:32
2.2 高频注意事项
(1)浮点除法禁止除数为0
分母使用数字 0 会直接抛出运行异常,程序终止。
print(10 / 0) # ZeroDivisionError 运行报错
知识补充:异常是编程语言内置机制,代表程序运行时出现非法意外,无法继续向下执行。(2)整数相除结果仍为浮点数
Python3 中两个整数使用 / 运算,不会截断小数,统一返回浮点类型:print(1 / 2) # 0.5print(f'{1 / 2:.3f}') # 格式化保留3位小数:0.500
(3)% 仅代表取余,不是百分号
原理和小学数学除法取余数逻辑一致:7 ÷ 2,商3,余数1print(4 ** 2) # 4的平方:16print(4 ** 0.5) # 开平方根:2.0
(5)地板除 // 向下取整,非四舍五入
正数运算直观,负数会向下取更小整数,和 C++/Java 整数除法逻辑近似:print(7 // 2) # 3print(-7 // 2) # -4
三、赋值运算符
3.1 定义
赋值运算符核心作用:将运算结果直接赋给变量。
num = 6num += 4 # 等价 num = num + 4print(num) # 输出 10
知识补充:Python 不存在 ++、-- 自增自减运算符,如需增减1只能使用 num += 1、num -= 1 替代。3.2 特殊用法
(1)连续赋值:多变量绑定同一个值
从右向左依次赋值,多个变量指向同一初始值
a = b = 10print(f'a = {a}, b = {b}') # 输出:a = 10, b = 10
(2)多元解包赋值:多变量同时赋值
一对一匹配赋值,经典用途:无需中间变量交换两个变量值# 基础解包赋值a, b = 10, 20print(f'a = {a}, b = {b}') # 输出:a = 10, b = 20# 快速交换变量num1, num2 = 10, 20num1, num2 = num2, num1print(num1, num2) # 输出 20 10
(3)+= 运算符重载:支持字符串、列表拼接
字符串、列表仅支持 += 拼接,不支持 -=、*=、/= 等其他复合赋值# 字符串拼接s = "hello"s += " python"print(s) # hello python# 列表合并lst = [1,2]lst += [3,4]print(lst) # [1, 2, 3, 4]# 错误示例:字符串不支持 -=# s = "hello"# s -= " python"# print(s) # 直接语法报错
3.3 赋值常见错误总结
(1)区分赋值 = 和相等判断 ==
a = 5 # 赋值if a == 5: # 判断是否相等 pass
(2)/= 会自动转换变量为浮点类型,//= 保留整型n = 10n /= 2print(type(n)) # <class 'float'>m = 10m //= 2print(type(m)) # <class 'int'>
(3)复合赋值运算符不可加空格拆分
a + = 2 属于非法语法,必须紧贴书写 a += 2。四、比较运算符
比较运算符用于判断两个数据的大小、相等关系,运算结果固定为布尔值 True / False,多用于 if 判断、循环条件。
4.1 运算符规则表
print(10 > 5) # Trueprint(3 == 3.0) # Trueprint("abc" == "def")# False
4.2 不同数据类型的比较规则
(1)数字(int / float)
直接对比数值大小,整数与等值浮点数判定相等:
print(3.5 > 2) # Trueprint(2.0 == 2) # True
(2)字符串:按 ASCII 码字典序逐字符对比
从第一个字符开始对比编码值,第一个不相等字符直接决定整体结果,后续字符不再校验;区分大小写。print("apple" < "banana") # True,a编码小于bprint("9" > "88") # True,首字符9编码大于8
(3)列表、元组等序列print([1, 3] > [1, 2]) # True,第二个元素3>2print((2,5) < (3,1)) # True,第一个元素2<3
(4)禁止跨大类类型直接比较
Python3 不允许数字与字符串、列表互相比较,运行直接报错:print(5 > "3") # TypeError 类型不匹配报错
4.3 Python 独有:链式连续比较
常规多条件判断需要 and 连接,Python 支持直接连续拼接,代码可读性更高,二者完全等价:
x = 5# 常规写法print(x > 1 and x < 10)# Python 链式比较写法(推荐)print(1 < x < 10) # True
4.4 易错点:浮点数谨慎使用 == 判断相等
计算机底层存储浮点数存在精度丢失,简单运算后会产生极小误差,直接用 == 判定相等会出错。
a = 0.1b = 0.2print(f"a = {a}")print(f"b = {b}")print(f"a + b = {a + b}")print(a == 0.3) # False,精度丢失导致判断错误
正确解决方案:设置误差阈值,判断差值范围
取极小值作为允许误差,两个浮点数差值绝对值小于阈值即判定相等:a = 0.1 + 0.2 b = 0.3eps = 1e-6 # 误差允许范围 0.000001print(abs(a - b) < eps) # True
五、逻辑运算符
逻辑运算符用于联合多个布尔条件,多用于多分支、复合条件判断,共 and / or / not 三种。
5.1 运算符规则
# and 全真才真print(3 > 1 and 5 < 10) # Trueprint(2 > 5 and 4 < 6) # False# or 一真即真print(2 > 5 or 4 < 6) # Trueprint(10 < 2 or 3 > 8) # False# not 取反print(not 5 > 2) # Falseprint(not 3 < 1) # True
5.2 核心特性:逻辑短路
Python 逻辑运算存在短路机制,满足判定条件后,不会执行后方表达式,优化运行效率:
a and ba or b
# and 短路:左侧0为假,后半句print不会执行0 and print("不会执行这句") # or 短路:左侧1为真,后半句print不会执行1 or print("不会执行这句")
5.3 运算优先级
优先级从高到低:not > and > or
复杂条件建议用括号 () 手动划分运算顺序,提升可读性:
# 先算not,再算and,最后算orprint(True or False and not True) # True
全文总结
本文完整讲解了 Python 四大基础运算符的核心用法与易错细节,核心要点复盘如下:
算术运算符:负责数值数学运算,重点区分 /(浮点除法,必返回 float)、//(地板整除,向下取整)、%(取余)三者差异;需警惕除数为 0 异常、负数取整规则、浮点数精度特性。
赋值运算符:核心作用是完成变量赋值,复合赋值可简化代码书写;需掌握连续赋值、多元解包交换变量等 Python 特有写法,明确区分赋值 = 与相等判断 ==,注意 /= 会隐式改变变量数据类型。
比较运算符:运算结果固定为布尔值,多用于条件判断;不同数据类型对比规则不同,Python 支持链式比较简化多区间判断;浮点数禁止直接用 == 判等,需通过误差阈值实现可靠判断。
逻辑运算符:用于组合多个判断条件,优先级遵循 not > and > or;核心特性是逻辑短路,满足判定条件后不再执行后续表达式,可用于性能优化与特殊语法写法。
感谢阅读,如果对你有所帮助,给点个免费的小关注,这对我真的很重要获取python教程资料步骤:
+
+关注