跳到主要内容

Python 基础

别把 Python 当成一堆 API 的字典来背,要把它看作几个相互关联的核心模型。

本节面向 Python 3.10 及以上版本的小型同步程序,范围包括名称与对象、函数与控制流、字符串与集合、类及本地文件;不覆盖打包、异步执行、并发或整个标准库。先读语法,再读函数、条件与循环;递归中的树示例还需要列表和类的基础。带有 process 等未定义名称的代码是 API 使用模式,不是独立脚本。完整示例包含输入与断言;断言用于学习检查,不能代替输入校验,因为 Python 的 -O 选项可以禁用断言。

学习路径

核心问题对应页面
变量、对象、表达式和 import 机制是怎样的?基本语法
如何封装逻辑并调用?函数
程序如何根据条件走不同分支?条件语句
如何遍历数据或循环执行直到满足条件?循环
何时适合用递归拆解问题?递归
Unicode 文本在内存中如何表示与转换?字符串
哪种可变序列适合存有序数据?列表
键值对映射如何实现?字典
对象如何封装状态和行为?面向对象编程
文件与路径如何与程序交互?读写文件 / 路径

核心心智模型

  • 变量即引用:变量是绑定到对象的名称,赋值操作传递的是引用,而非复制对象。
  • 对象三要素:每个对象都有类型(type)、身份(identity)和值(value)。
  • 可变性与操作契约:可变性决定对象能否改变,具体操作的契约决定它是否修改原对象或返回结果。
  • 迭代优于索引:迭代是向可迭代对象(Iterable)索取值,不局限于数字索引。
  • 异常即通信:异常用于跨越调用栈传递错误信息。
  • 模块即边界:模块和包定义了命名空间,确立了代码复用的所有权边界。

编码准则

  1. 清晰优于聪明:优先保证数据流清晰、函数粒度小,避免过度压缩表达式。
  2. 副作用显式化:让数据修改(Mutation)和 I/O 操作在函数边界处清晰可见。
  3. 复用标准库:优先使用标准库类型和协议,不要过早发明轮子或包装器。
  4. 类型注解:用注解说明预期类型,并用静态检查工具发现类型不匹配;外部输入仍需单独做运行时校验。
  5. 测试行为:测试应关注行为结果,而不是简单比对解释器的输出日志。

参考来源

探索关联打开关联网络