
🌈个人主页:聆风吟_
🔥系列专栏:Python编程日志、C标准库
🔖少年有梦不应止于心动,更要付诸行动。
文章目录
-
- 📋前言
- 一、运算符基础概念
-
- [1.1 定义](#1.1 定义)
- [1.2 分类](#1.2 分类)
- 二、算术运算符
-
- [2.1 定义](#2.1 定义)
- [2.2 高频注意事项](#2.2 高频注意事项)
- 三、赋值运算符
-
- [3.1 定义](#3.1 定义)
- [3.2 特殊用法](#3.2 特殊用法)
- [3.3 赋值常见错误总结](#3.3 赋值常见错误总结)
- 四、比较运算符
-
- [4.1 运算符规则表](#4.1 运算符规则表)
- [4.2 不同数据类型的比较规则](#4.2 不同数据类型的比较规则)
- [4.3 Python 独有:链式连续比较](#4.3 Python 独有:链式连续比较)
- [4.4 易错点:浮点数谨慎使用 `==` 判断相等](#4.4 易错点:浮点数谨慎使用
==判断相等)
- 五、逻辑运算符
-
- [5.1 运算符规则](#5.1 运算符规则)
- [5.2 核心特性:逻辑短路](#5.2 核心特性:逻辑短路)
- [5.3 运算优先级](#5.3 运算优先级)
- 📝全文总结
📋前言
在前面内容中,我们系统梳理了 Python 基础数据类型。在实际开发中,想要对各类数据做处理、计算与判断,就离不开运算符。
运算符是用于完成变量、数值运算的专用符号。本文系统梳理四大高频基础运算符:算术运算符、赋值运算符、比较运算符、逻辑运算符。
一、运算符基础概念
1.1 定义
- 运算符:对变量、字面量等数据执行运算操作的特殊符号;
- 操作数:参与运算的数据(变量、数字、字符串字面量等);
- 表达式:操作数 + 运算符组合而成的完整运算语句。
python
a + b
+ 是运算符; a、b 是操作数
1.2 分类
Python 内置 7 大类运算符,覆盖数值计算、赋值、条件判断、二进制操作、容器检测、对象内存判断全场景:
- 算术运算符
- 赋值运算符
- 比较运算符
- 逻辑运算符
- 位运算符
- 成员运算符
- 身份运算符
本文仅讲解前四类常用运算符。
二、算术运算符
2.1 定义
算术运算符:用于 数字类型 的数学加减乘除运算,包含常规四则运算、整除、取余、幂运算。
| 运算符 | 作用 | 示例(a=10, b=3) | 运算结果 |
|---|---|---|---|
+ |
加法 | a + b |
13 |
- |
减法 | a - b |
7 |
* |
乘法 | a * b |
30 |
/ |
浮点除法(结果必为浮点数) | a / b |
3.3333333333333335 |
// |
地板整除(向下取整) | a // b |
3 |
% |
取模/取余数 | a % b |
1 |
** |
幂运算(次方) | a ** 2 |
100 |
基础代码演示:
python
a = 10
b = 3
print(a / b) # 3.3333333333333335
print(a // b) # 地板除向下取整:3
print(a % b) # 取余数:1
print(2 ** 5) # 2的5次方:32
2.2 高频注意事项
(1)浮点除法禁止除数为0
分母使用数字 0 会直接抛出运行异常,程序终止。
python
print(10 / 0) # ZeroDivisionError 运行报错

📌知识补充:异常是编程语言内置机制,代表程序运行时出现非法意外,无法继续向下执行。
(2)整数相除结果仍为浮点数
Python3 中两个整数使用 / 运算,不会截断小数,统一返回浮点类型:
python
print(1 / 2) # 0.5
print(f'{1 / 2:.3f}') # 格式化保留3位小数:0.500
(3)% 仅代表取余,不是百分号
原理和小学数学除法取余数逻辑一致:7 ÷ 2,商3,余数1
python
print(7 % 2) # 1
(4)幂运算支持整数、小数次方
python
print(4 ** 2) # 4的平方:16
print(4 ** 0.5) # 开平方根:2.0
(5)地板除 // 向下取整,非四舍五入
正数运算直观,负数会向下取更小整数,和 C++/Java 整数除法逻辑近似:
python
print(7 // 2) # 3
print(-7 // 2) # -4
三、赋值运算符
3.1 定义
赋值运算符核心作用:将运算结果直接赋给变量。
| 运算符 | 等价完整写法 | 说明 |
|---|---|---|
= |
a = 5 |
基础赋值 |
+= |
a = a + b |
加法复合赋值 |
-= |
a = a - b |
减法复合赋值 |
*= |
a = a * b |
乘法复合赋值 |
/= |
a = a / b |
除法复合赋值 |
//= |
a = a // b |
整除复合赋值 |
%= |
a = a % b |
取余复合赋值 |
**= |
a = a ** b |
幂运算复合赋值 |
基础代码演示:
python
num = 6
num += 4 # 等价 num = num + 4
print(num) # 输出 10
📌知识补充 :Python 不存在
++、--自增自减运算符,如需增减1只能使用num += 1、num -= 1替代。
3.2 特殊用法
(1)连续赋值:多变量绑定同一个值
从右向左依次赋值,多个变量指向同一初始值
python
a = b = 10
print(f'a = {a}, b = {b}') # 输出:a = 10, b = 10
(2)多元解包赋值:多变量同时赋值
一对一匹配赋值,经典用途:无需中间变量交换两个变量值
python
# 基础解包赋值
a, b = 10, 20
print(f'a = {a}, b = {b}') # 输出:a = 10, b = 20
# 快速交换变量
num1, num2 = 10, 20
num1, num2 = num2, num1
print(num1, num2) # 输出 20 10
(3)+= 运算符重载:支持字符串、列表拼接
字符串、列表仅支持 += 拼接,不支持 -=、*=、/= 等其他复合赋值
python
# 字符串拼接
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)区分赋值 = 和相等判断 ==
=:赋值操作,把右侧值赋予左侧变量;==:比较运算符,判断左右两边值是否相等。
python
a = 5 # 赋值
if a == 5: # 判断是否相等
pass
(2)/= 会自动转换变量为浮点类型,//= 保留整型
python
n = 10
n /= 2
print(type(n)) # <class 'float'>
m = 10
m //= 2
print(type(m)) # <class 'int'>
(3)复合赋值运算符不可加空格拆分
a + = 2 属于非法语法,必须紧贴书写 a += 2。
四、比较运算符
比较运算符用于判断两个数据的大小、相等关系,运算结果固定为布尔值 True / False,多用于 if 判断、循环条件。
4.1 运算符规则表
| 运算符 | 含义 | 示例 | 结果 |
|---|---|---|---|
> |
大于 | 5 > 3 |
True |
< |
小于 | 5 < 3 |
False |
>= |
大于等于 | 5 >= 5 |
True |
<= |
小于等于 | 5 <= 3 |
False |
== |
值相等 | 5 == 3 |
False |
!= |
值不相等 | 5 != 3 |
True |
基础代码演示:
python
print(10 > 5) # True
print(3 == 3.0) # True
print("abc" == "def")# False
4.2 不同数据类型的比较规则
(1)数字(int / float)
直接对比数值大小,整数与等值浮点数判定相等:
python
print(3.5 > 2) # True
print(2.0 == 2) # True
(2)字符串:按 ASCII 码字典序逐字符对比
从第一个字符开始对比编码值,第一个不相等字符直接决定整体结果,后续字符不再校验;区分大小写。
python
print("apple" < "banana") # True,a编码小于b
print("9" > "88") # True,首字符9编码大于8
(3)列表、元组等序列
逐元素依次对比,匹配规则和字符串字典序一致:
python
print([1, 3] > [1, 2]) # True,第二个元素3>2
print((2,5) < (3,1)) # True,第一个元素2<3
(4)禁止跨大类类型直接比较
Python3 不允许数字与字符串、列表互相比较,运行直接报错:
python
print(5 > "3") # TypeError 类型不匹配报错
4.3 Python 独有:链式连续比较
常规多条件判断需要 and 连接,Python 支持直接连续拼接,代码可读性更高,二者完全等价:
python
x = 5
# 常规写法
print(x > 1 and x < 10)
# Python 链式比较写法(推荐)
print(1 < x < 10) # True
4.4 易错点:浮点数谨慎使用 == 判断相等
计算机底层存储浮点数存在精度丢失,简单运算后会产生极小误差,直接用 == 判定相等会出错。
python
a = 0.1
b = 0.2
print(f"a = {a}")
print(f"b = {b}")
print(f"a + b = {a + b}")
print(a == 0.3) # False,精度丢失导致判断错误
正确解决方案:设置误差阈值,判断差值范围
取极小值作为允许误差,两个浮点数差值绝对值小于阈值即判定相等:
python
a = 0.1 + 0.2
b = 0.3
eps = 1e-6 # 误差允许范围 0.000001
print(abs(a - b) < eps) # True
五、逻辑运算符
逻辑运算符用于联合多个布尔条件,多用于多分支、复合条件判断,共 and / or / not 三种。
5.1 运算符规则
| 运算符 | 名称 | 运算规则 |
|---|---|---|
and |
逻辑与 | 两边全部为 True,结果才为 True;一假即假 |
or |
逻辑或 | 任意一边为 True,结果即为 True;一真即真 |
not |
逻辑非 | 单目运算符,对条件取反,True变False,False变True |
代码示例:
python
# and 全真才真
print(3 > 1 and 5 < 10) # True
print(2 > 5 and 4 < 6) # False
# or 一真即真
print(2 > 5 or 4 < 6) # True
print(10 < 2 or 3 > 8) # False
# not 取反
print(not 5 > 2) # False
print(not 3 < 1) # True
5.2 核心特性:逻辑短路
Python 逻辑运算存在短路机制,满足判定条件后,不会执行后方表达式,优化运行效率:
a and b:若a为假,直接返回a,不执行b;a or b:若a为真,直接返回a,不执行b。
python
# and 短路:左侧0为假,后半句print不会执行
0 and print("不会执行这句")
# or 短路:左侧1为真,后半句print不会执行
1 or print("不会执行这句")
5.3 运算优先级
优先级从高到低:not > and > or
复杂条件建议用括号 () 手动划分运算顺序,提升可读性:
python
# 先算not,再算and,最后算or
print(True or False and not True) # True
📝全文总结
本文完整讲解了 Python 四大基础运算符的核心用法与易错细节,核心要点复盘如下:
-
算术运算符 :负责数值数学运算,重点区分
/(浮点除法,必返回 float)、//(地板整除,向下取整)、%(取余)三者差异;需警惕除数为 0 异常、负数取整规则、浮点数精度特性。 -
赋值运算符 :核心作用是完成变量赋值,复合赋值可简化代码书写;需掌握连续赋值、多元解包交换变量等 Python 特有写法,明确区分赋值
=与相等判断==,注意/=会隐式改变变量数据类型。 -
比较运算符 :运算结果固定为布尔值,多用于条件判断;不同数据类型对比规则不同,Python 支持链式比较简化多区间判断;浮点数禁止直接用
==判等,需通过误差阈值实现可靠判断。 -
逻辑运算符 :用于组合多个判断条件,优先级遵循
not > and > or;核心特性是逻辑短路,满足判定条件后不再执行后续表达式,可用于性能优化与特殊语法写法。
🔮 下期预告: 位运算符、成员运算符、身份运算符属于进阶内容,将单独放在下一篇文章中讲解。
今天的干货分享到这里就结束啦!如果觉得文章还可以的话,希望能给个三连支持一下,聆风吟的主页还有很多有趣的文章,欢迎小伙伴们前去点评,您的支持就是作者前进的最大动力!
