元素码农
基础
UML建模
数据结构
算法
设计模式
网络
TCP/IP协议
HTTPS安全机制
WebSocket实时通信
数据库
sqlite
postgresql
clickhouse
后端
rust
go
java
php
mysql
redis
mongodb
etcd
nats
zincsearch
前端
浏览器
javascript
typescript
vue3
react
游戏
unity
unreal
C++
C#
Lua
App
android
ios
flutter
react-native
安全
Web安全
测试
软件测试
自动化测试 - Playwright
人工智能
Python
langChain
langGraph
运维
linux
docker
工具
git
svn
🌞
🌙
目录
▶
Python基础语法
Python环境安装与配置
第一个Python程序
变量与数据类型
字面量详解
基本运算符
流程控制语句
包管理与虚拟环境
▶
Python数据结构
列表(List)详解
元组(Tuple)使用指南
字典(Dict)完全解析
集合(Set)操作大全
▶
函数与模块
函数定义与参数传递
Lambda表达式
模块导入与使用
常用内置函数
▶
面向对象编程
类与对象
继承与多态
魔术方法解析
装饰器原理与应用
▶
Python类型系统
类型注解(Type Hints)
Pydantic基础
Pydantic高级特性
typing模块基础
泛型类型详解
泛型类详解
Callable类型详解
Awaitable类型详解
类型变量与约束
类型别名与Protocol
TypedDict详解
Annotated类型
Reducer类型
类型检查工具使用
类型注解最佳实践
▶
关键字
pass关键字
raise关键字
global关键字
nonlocal关键字
yield关键字
assert关键字
with关键字
async/await关键字
▶
包管理
pip包管理基础
虚拟环境管理
包管理工具对比
requirements.txt规范
依赖管理与requirements.txt
setup.py配置说明
Poetry项目管理工具
Conda包管理系统
打包与发布Python包
PyPI发布流程
私有PyPI仓库
▶
Python高级特性
迭代器与生成器
多线程编程
协程与异步IO
元编程入门
反射机制详解
描述符协议
上下文管理器协议
垃圾回收机制
内存管理深度解析
性能优化指南
▶
文件与异常处理
文件读写操作
JSON数据解析
异常处理机制
上下文管理器
发布时间:
2025-03-24 12:25
↑
☰
# Python基本运算符 本文将详细介绍Python中的各种运算符,包括算术运算符、比较运算符、逻辑运算符、位运算符等,帮助你理解如何在Python中进行各种运算操作。 ## 算术运算符 算术运算符用于执行基本的数学运算。 ### 基本算术运算符 ```python # 加法运算符 (+) x = 5 + 3 # 8 # 减法运算符 (-) y = 10 - 4 # 6 # 乘法运算符 (*) z = 3 * 4 # 12 # 除法运算符 (/) a = 15 / 3 # 5.0 (返回浮点数) # 整除运算符 (//) b = 17 // 3 # 5 (返回整数商) # 取模运算符 (%) c = 17 % 3 # 2 (返回余数) # 幂运算符 (**) d = 2 ** 3 # 8 (2的3次方) ``` ### 复合赋值运算符 ```python # 加法赋值 (+=) x = 5 x += 3 # 等同于 x = x + 3 # 减法赋值 (-=) y = 10 y -= 4 # 等同于 y = y - 4 # 乘法赋值 (*=) z = 3 z *= 4 # 等同于 z = z * 4 # 除法赋值 (/=) a = 15 a /= 3 # 等同于 a = a / 3 # 整除赋值 (//=) b = 17 b //= 3 # 等同于 b = b // 3 # 取模赋值 (%=) c = 17 c %= 3 # 等同于 c = c % 3 # 幂赋值 (**=) d = 2 d **= 3 # 等同于 d = d ** 3 ``` ## 比较运算符 比较运算符用于比较两个值,返回布尔值(True或False)。 ```python # 等于运算符 (==) x = 5 y = 5 print(x == y) # True # 不等于运算符 (!=) x = 5 y = 3 print(x != y) # True # 大于运算符 (>) print(x > y) # True # 小于运算符 (<) print(x < y) # False # 大于等于运算符 (>=) print(x >= y) # True # 小于等于运算符 (<=) print(x <= y) # False # 身份运算符 (is) a = [1, 2, 3] b = [1, 2, 3] print(a is b) # False (不同对象) # 身份运算符 (is not) print(a is not b) # True ``` ## 逻辑运算符 逻辑运算符用于组合条件判断。 ```python # 与运算符 (and) x = 5 print(x > 0 and x < 10) # True # 或运算符 (or) y = -1 print(y < 0 or y > 10) # True # 非运算符 (not) z = True print(not z) # False # 短路运算 # and 的短路运算 result = False and print("不会执行") # False # or 的短路运算 result = True or print("不会执行") # True ``` ## 位运算符 位运算符用于对整数的二进制位进行运算。 ```python # 按位与运算符 (&) x = 5 # 二进制: 0101 y = 3 # 二进制: 0011 print(x & y) # 1 (二进制: 0001) # 按位或运算符 (|) print(x | y) # 7 (二进制: 0111) # 按位异或运算符 (^) print(x ^ y) # 6 (二进制: 0110) # 按位取反运算符 (~) print(~x) # -6 (二进制: 1010) # 左移运算符 (<<) print(x << 1) # 10 (二进制: 1010) # 右移运算符 (>>) print(x >> 1) # 2 (二进制: 0010) ``` ## 成员运算符 成员运算符用于测试序列中的成员资格。 ```python # in 运算符 list1 = [1, 2, 3, 4, 5] print(3 in list1) # True # not in 运算符 print(6 not in list1) # True # 字符串成员运算 str1 = "Hello, Python!" print("Python" in str1) # True # 字典成员运算(检查键) dict1 = {"name": "Python", "version": 3.9} print("name" in dict1) # True ``` ## 运算符优先级 运算符优先级决定了表达式中运算执行的顺序。 1. 最高优先级 - `()`:括号 - `**`:幂运算 - `+x`, `-x`, `~x`:一元运算符 2. 中等优先级 - `*`, `/`, `//`, `%`:乘除模运算 - `+`, `-`:加减运算 - `<<`, `>>`:移位运算 - `&`:按位与 - `^`:按位异或 - `|`:按位或 3. 最低优先级 - `==`, `!=`, `>`, `<`, `>=`, `<=`:比较运算符 - `is`, `is not`:身份运算符 - `in`, `not in`:成员运算符 - `not`:逻辑非 - `and`:逻辑与 - `or`:逻辑或 ```python # 优先级示例 result = 2 + 3 * 4 # 14 (乘法优先) result = (2 + 3) * 4 # 20 (括号优先) # 复杂表达式 result = 2 + 3 * 4 ** 2 # 50 (幂运算优先,然后乘法,最后加法) ``` ## 实际应用示例 ### 1. 简单计算器 ```python def calculator(): # 获取用户输入 num1 = float(input("请输入第一个数字: ")) operator = input("请输入运算符(+,-,*,/): ") num2 = float(input("请输入第二个数字: ")) # 根据运算符执行计算 if operator == "+": result = num1 + num2 elif operator == "-": result = num1 - num2 elif operator == "*": result = num1 * num2 elif operator == "/": if num2 != 0: result = num1 / num2 else: return "错误:除数不能为零" else: return "错误:无效的运算符" return f"计算结果: {result}" ``` ### 2. 判断闰年 ```python def is_leap_year(year): # 使用逻辑运算符组合条件 return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0) # 测试闰年 year = 2024 if is_leap_year(year): print(f"{year}是闰年") else: print(f"{year}不是闰年") ``` ### 3. 位运算应用 ```python def swap_numbers(a, b): # 使用异或运算交换两个数 a = a ^ b b = a ^ b a = a ^ b return a, b # 测试数字交换 x = 5 y = 10 x, y = swap_numbers(x, y) print(f"交换后: x = {x}, y = {y}") ``` ## 最佳实践 1. **使用括号提高可读性** ```python result = (a + b) * (c + d) # 清晰的运算优先级 ``` 2. **避免过度复杂的表达式** ```python # 不好的写法 result = a + b * c ** d & e | f # 好的写法 temp1 = c ** d temp2 = b * temp1 temp3 = temp2 & e result = (a + temp3) | f ``` 3. **合理使用复合赋值运算符** ```python # 累加计数 counter += 1 # 字符串拼接 message += " World" ``` 4. **注意比较运算符的使用** ```python # 比较浮点数 import math def is_close(a, b, rel_tol=1e-09): return math.isclose(a, b, rel_tol=rel_tol) ``` 通过本文的学习,你应该已经掌握了Python中各种运算符的使用方法和注意事项。在实际编程中,合理使用这些运算符可以帮助你写出更简洁、高效的代码。继续练习这些概念,你会逐渐熟悉它们在不同场景下的应用!