Skip to content

Latest commit

 

History

History
214 lines (176 loc) · 5.91 KB

File metadata and controls

214 lines (176 loc) · 5.91 KB

02 运算符

学习目标

掌握Python中各种运算符的使用方法和优先级,能够熟练运用运算符解决实际编程问题。

主要内容

  • 算术运算符:+、-、*、/、//、%、**
  • 比较运算符:==、!=、>、<、>=、<=
  • 逻辑运算符:and、or、not
  • 赋值运算符:=、+=、-=、*=、/=等
  • 位运算符:&、|、^、~、<<、>>
  • 成员运算符:in、not in
  • 身份运算符:is、is not
  • 运算符优先级和结合性

代码文件说明

01_arithmetic_operators.py - 算术运算符

学习内容:

  • 基本算术运算符的使用(+、-、*、/、//、%、**)
  • 不同数据类型的算术运算
  • 运算符优先级在算术表达式中的应用
  • 实用的数学计算示例

运行方式:

python 01_arithmetic_operators.py

重点知识:

  • 整除(//)与普通除法(/)的区别
  • 取模运算(%)的实际应用
  • 幂运算(**)的使用场景
  • 浮点数运算的精度问题

02_comparison_operators.py - 比较运算符

学习内容:

  • 六种比较运算符的使用方法
  • 不同数据类型的比较规则
  • 链式比较的语法和应用
  • 特殊值(None、NaN)的比较

运行方式:

python 02_comparison_operators.py

重点知识:

  • 字符串比较的字典序规则
  • 数值类型之间的比较
  • 容器类型的比较方法
  • 链式比较的优势和注意事项

03_logical_operators.py - 逻辑运算符

学习内容:

  • and、or、not 三种逻辑运算符
  • 短路求值(Short-circuit evaluation)机制
  • 真值测试和布尔上下文
  • 复杂条件判断的构建

运行方式:

python 03_logical_operators.py

重点知识:

  • 短路求值的性能优势
  • 不同数据类型的真值判断
  • 德摩根定律的应用
  • 逻辑运算符的优先级

04_assignment_operators.py - 赋值运算符

学习内容:

  • 基本赋值和复合赋值运算符
  • 多重赋值和序列解包
  • 赋值运算符的性能考虑
  • 可变对象赋值的注意事项

运行方式:

python 04_assignment_operators.py

重点知识:

  • 复合赋值运算符的便利性
  • 解包赋值的灵活应用
  • 赋值与对象引用的关系
  • 链式赋值的使用场景

05_bitwise_operators.py - 位运算符

学习内容:

  • 六种位运算符的功能和用法
  • 二进制数的基础知识
  • 位运算在实际编程中的应用
  • 位运算的性能优势

运行方式:

python 05_bitwise_operators.py

重点知识:

  • 位运算符与逻辑运算符的区别
  • 位掩码技术的应用
  • 权限系统的位运算实现
  • 位运算优化技巧

06_membership_operators.py - 成员运算符和身份运算符

学习内容:

  • in 和 not in 成员运算符
  • is 和 is not 身份运算符
  • == 与 is 的本质区别
  • 不同数据结构中的成员检查

运行方式:

python 06_membership_operators.py

重点知识:

  • 成员运算符的性能特性
  • 身份运算符的使用场景
  • 小整数缓存和字符串驻留
  • None 值的特殊性

07_operator_precedence.py - 运算符优先级

学习内容:

  • 完整的运算符优先级表
  • 运算符的结合性规则
  • 复杂表达式的求值顺序
  • 括号的正确使用

运行方式:

python 07_operator_precedence.py

重点知识:

  • 常见的优先级陷阱
  • 提高代码可读性的技巧
  • 混合运算符表达式的处理
  • 最佳实践和编码规范

08_exercises.py - 综合练习题

学习内容:

  • 各种运算符的综合应用
  • 实际编程问题的解决方案
  • 算法和数据结构中的运算符应用
  • 挑战性编程练习

运行方式:

python 08_exercises.py

包含练习:

  • 计算器函数实现
  • 温度转换器
  • 成绩等级判定
  • 权限系统设计
  • 购物车计算器
  • 复数运算器
  • 位运算加法实现

学习建议

学习顺序

  1. 基础运算符:先学习算术和比较运算符(01、02)
  2. 逻辑控制:掌握逻辑运算符的使用(03)
  3. 高效编程:学习赋值运算符的便捷用法(04)
  4. 进阶技巧:了解位运算符的强大功能(05)
  5. 细节掌握:区分成员和身份运算符(06)
  6. 综合理解:掌握运算符优先级规则(07)
  7. 实践应用:通过综合练习巩固知识(08)

实践方法

  1. 逐个运行:按顺序运行每个Python文件,观察输出结果
  2. 修改实验:尝试修改代码中的参数,观察结果变化
  3. 独立练习:完成每个文件中的练习题和思考题
  4. 应用实践:将学到的知识应用到实际项目中

重点难点

  • 运算符优先级:容易出错,需要多练习
  • is vs ==:概念容易混淆,需要深入理解
  • 位运算符:应用场景特殊,需要额外练习
  • 短路求值:影响程序执行效率,需要掌握

练习要点

  1. 熟练使用各种算术运算,注意精度问题
  2. 掌握比较和逻辑运算的组合使用
  3. 理解运算符优先级规则,合理使用括号
  4. 学会使用位运算符解决特定问题
  5. 区分成员运算符和身份运算符的使用场景
  6. 通过综合练习提升编程能力

扩展学习

  • 运算符重载(add, eq 等魔法方法)
  • 表达式求值算法(中缀转后缀等)
  • 编译原理中的运算符处理
  • 不同编程语言的运算符差异

常见问题

Q: 为什么 0.1 + 0.2 != 0.3? A: 这是浮点数精度问题,可以使用 decimal 模块或 round() 函数处理。

Q: 什么时候使用 is,什么时候使用 ==? A: is 用于比较对象身份,== 用于比较值。通常只在与 None 比较时使用 is。

Q: 位运算符在实际编程中有什么用? A: 位运算符常用于权限管理、状态标志、性能优化等场景。

Q: 如何记住运算符优先级? A: 建议记住常用的几个,复杂表达式使用括号明确优先级。