【Python编程日志】Python 运算符初阶:算术 | 赋值 | 比较 | 逻辑运算符

🌈个人主页:聆风吟_

🔥系列专栏: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 定义

  1. 运算符:对变量、字面量等数据执行运算操作的特殊符号;
  2. 操作数:参与运算的数据(变量、数字、字符串字面量等);
  3. 表达式:操作数 + 运算符组合而成的完整运算语句。
python 复制代码
a + b

+ 是运算符; ab 是操作数

1.2 分类

Python 内置 7 大类运算符,覆盖数值计算、赋值、条件判断、二进制操作、容器检测、对象内存判断全场景:

  1. 算术运算符
  2. 赋值运算符
  3. 比较运算符
  4. 逻辑运算符
  5. 位运算符
  6. 成员运算符
  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 += 1num -= 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 逻辑运算存在短路机制,满足判定条件后,不会执行后方表达式,优化运行效率:

  1. a and b:若 a 为假,直接返回 a,不执行 b
  2. 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 四大基础运算符的核心用法与易错细节,核心要点复盘如下:

  1. 算术运算符 :负责数值数学运算,重点区分 /(浮点除法,必返回 float)、//(地板整除,向下取整)、%(取余)三者差异;需警惕除数为 0 异常、负数取整规则、浮点数精度特性。

  2. 赋值运算符 :核心作用是完成变量赋值,复合赋值可简化代码书写;需掌握连续赋值、多元解包交换变量等 Python 特有写法,明确区分赋值 = 与相等判断 ==,注意 /= 会隐式改变变量数据类型。

  3. 比较运算符 :运算结果固定为布尔值,多用于条件判断;不同数据类型对比规则不同,Python 支持链式比较简化多区间判断;浮点数禁止直接用 == 判等,需通过误差阈值实现可靠判断。

  4. 逻辑运算符 :用于组合多个判断条件,优先级遵循 not > and > or;核心特性是逻辑短路,满足判定条件后不再执行后续表达式,可用于性能优化与特殊语法写法。

🔮 下期预告: 位运算符、成员运算符、身份运算符属于进阶内容,将单独放在下一篇文章中讲解。

今天的干货分享到这里就结束啦!如果觉得文章还可以的话,希望能给个三连支持一下,聆风吟的主页还有很多有趣的文章,欢迎小伙伴们前去点评,您的支持就是作者前进的最大动力!