Python3 运算符(长文讲解)
💡一则或许对你有用的小广告
欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论
- 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于
Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...
,点击查看项目介绍 ;- 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;
截止目前, 星球 内专栏累计输出 82w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2900+ 小伙伴加入学习 ,欢迎点击围观
在 Python 编程语言中,运算符(Operators)如同程序员手中的“瑞士军刀”,是实现逻辑运算、数据处理和算法设计的基础工具。无论是进行简单的数值计算,还是复杂的条件判断,运算符都能以简洁的方式完成任务。本文将从基础到进阶,系统讲解 Python3 运算符的核心知识点,并通过案例和比喻帮助读者理解其应用场景。
算术运算符:基础但不可或缺的力量
算术运算符是编程中最基础的运算符类型,用于执行基本的数学计算。它们类似于数学中的加减乘除符号,但通过代码形式实现。
基础算术运算符
运算符 | 描述 | 示例 |
---|---|---|
+ | 加法 | 5 + 3 → 8 |
- | 减法 | 10 - 4 → 6 |
* | 乘法 | 3 * 4 → 12 |
/ | 除法(结果为浮点数) | 10 / 3 → 3.333... |
% | 取模(求余数) | 10 % 3 → 1 |
** | 幂运算 | 2 ** 3 → 8 |
// | 整除(取商的整数部分) | 10 // 3 → 3 |
案例:计算圆的面积
radius = 5
area = 3.1415 * (radius ** 2)
print(area) # 输出 78.5375
比喻:算术运算符就像计算器的按键,虽然功能简单,但通过组合可以实现复杂计算,例如 **
运算符可以替代手动编写指数循环。
比较运算符:逻辑判断的基石
比较运算符用于比较两个值,并返回 True
或 False
的布尔值。它们在条件语句(如 if
)和循环中至关重要。
常用比较运算符
运算符 | 描述 | 示例 |
---|---|---|
== | 等于 | 5 == 5 → True |
!= | 不等于 | 3 != 4 → True |
> | 大于 | 10 > 5 → True |
< | 小于 | 2 < 1 → False |
>= | 大于等于 | 7 >= 7 → True |
<= | 小于等于 | 5 <= 3 → False |
案例:成绩等级判定
score = 85
if score >= 90:
print("优秀")
elif score >= 70:
print("良好") # 当 score=85 时,输出“良好”
else:
print("需努力")
比喻:比较运算符如同交通信号灯,根据不同的“信号”(条件)决定程序的执行路径。
逻辑运算符:构建复杂条件的“乐高积木”
逻辑运算符用于将多个条件组合或反转,常用于复杂判断场景。它们的结果同样是布尔值。
逻辑运算符详解
运算符 | 描述 | 示例 |
---|---|---|
and | 逻辑“与” | True and False → False |
or | 逻辑“或” | True or False → True |
not | 逻辑“非”(取反) | not True → False |
案例:用户登录验证
username = "admin"
password = "123456"
if username == "admin" and password == "123456":
print("登录成功!")
else:
print("用户名或密码错误")
比喻:逻辑运算符就像乐高积木,通过 and
、or
将简单条件“拼接”成复杂的逻辑结构,而 not
则像“翻转器”,改变条件的真假性。
赋值运算符:高效的数据更新
赋值运算符用于将值或表达式的结果赋给变量,常见的包括简单赋值 =
和复合赋值(如 +=
)。
赋值运算符列表
运算符 | 描述 | 示例 |
---|---|---|
= | 简单赋值 | x = 5 |
+= | 加法赋值 | x += 3 → x = x + 3 |
-= | 减法赋值 | x -= 2 → x = x - 2 |
*= | 乘法赋值 | x *= 4 → x = x * 4 |
/= | 除法赋值 | x /= 2 → x = x / 2 |
案例:统计购物车总价
total = 0
item_prices = [100, 200, 150]
for price in item_prices:
total += price # 相当于 total = total + price
print(total) # 输出 450
比喻:赋值运算符就像快递员,将数据“送货上门”到变量的“地址”,而复合赋值(如 +=
)则是“送货+搬运”的一站式服务。
位运算符:底层数据的“魔术师”
位运算符直接操作数据的二进制位,常用于底层编程或优化特定算法。虽然对初学者可能较难理解,但掌握基础用法仍有必要。
常用位运算符
运算符 | 描述 | 示例 |
---|---|---|
& | 按位“与” | 5 & 3 → 1 (二进制 01 & 11 → 01 ) |
| | 按位“或” | 5 | 3 → 7 (二进制 011 | 101 → 101 ) |
^ | 按位“异或” | 5 ^ 3 → 6 |
~ | 按位取反 | ~5 → -6 |
<< | 左移(乘以 2 的幂) | 5 << 1 → 10 |
>> | 右移(除以 2 的幂) | 8 >> 1 → 4 |
案例:快速判断奇偶数
number = 7
if number & 1: # 若最后一位二进制为 1(奇数),则结果为 True
print("奇数") # 输出“奇数”
else:
print("偶数")
比喻:位运算符如同“二进制乐手”,通过操作数据的每一位,演奏出高效的算法“乐章”。
运算符优先级:避免歧义的“交通规则”
当多个运算符出现在同一表达式中时,优先级(Precedence)决定了计算顺序。例如,乘法 *
的优先级高于加法 +
。
优先级规则表
类别 | 运算符 | 优先级(从高到低) |
---|---|---|
指数运算 | ** | 1 |
一元运算 | + , - , not , ~ | 2 |
乘性运算 | * , / , % , // | 3 |
加减运算 | + , - | 4 |
比较运算 | > , < , == 等 | 5 |
逻辑运算 | and , or | 6 |
案例:表达式优先级影响结果
result = 3 + 4 * 2 # 先计算 4*2 → 8,再加 3 → 11
print(result) # 输出 11
result = (3 + 4) * 2 # 括号优先级最高 → 14
print(result) # 输出 14
比喻:运算符优先级就像交通规则,确保代码中的“车辆(运算)”按顺序行驶,避免“事故”(计算错误)。
运算符重载:为对象赋予“超能力”
在 Python 中,运算符重载(Operator Overloading)允许开发者重新定义运算符的行为,使其适用于自定义对象。例如,可以为类定义 +
运算符,使其能直接相加。
案例:自定义向量类
class Vector:
def __init__(self, x, y):
self.x = x
self.y = y
def __add__(self, other): # 重载 + 运算符
return Vector(self.x + other.x, self.y + other.y)
v1 = Vector(1, 2)
v2 = Vector(3, 4)
v3 = v1 + v2 # 调用 __add__ 方法
print(v3.x, v3.y) # 输出 4 6
比喻:运算符重载如同“魔法咒语”,让程序员为对象赋予超越默认行为的能力。
结论:掌握运算符,掌控代码逻辑
Python3 运算符是编程语言的“原子级”工具,从简单数值计算到复杂逻辑判断,它们贯穿于代码的每个角落。通过理解运算符的优先级、类型和应用场景,开发者可以编写出更高效、更简洁的代码。无论是初学者夯实基础,还是中级开发者优化算法,深入理解运算符都是迈向编程进阶的重要一步。
实践建议:尝试将本文中的案例改编为自己的项目,例如用比较运算符实现天气预警系统,或用位运算符优化数据处理逻辑。运算符的真正价值,将在代码的实践中逐渐显现。