Skip to content

Python基础学习路线 ​

这 17 篇按“能读懂代码 → 能写出脚本 → 能维护项目”的顺序整理。每个专题都同时照顾学习和速查:先看常用用法,再按 API 标题定位细节。

学习目标 ​

  • 熟悉 Python 3.11+ 的对象、容器、控制流和函数模型。
  • 能用标准库完成文件、路径、序列化、命令行和日期处理。
  • 能读懂模块、异常、类、生成器、装饰器和类型提示。
  • 能使用虚拟环境、pytest 和代码质量工具维护小项目。

专题导航 ​

  1. 变量、数据类型与运算
  2. 字符串常用 API
  3. 列表与元组常用 API
  4. 字典与集合常用 API
  5. 条件、循环与推导式
  6. 函数、参数与作用域
  7. 模块、包与脚本入口
  8. 异常处理与错误边界
  9. 文件、路径与序列化
  10. 面向对象与 dataclass
  11. 迭代器与生成器
  12. 装饰器与上下文管理
  13. 类型提示与静态检查
  14. Python 标准库速查
  15. 虚拟环境与包管理
  16. 测试、调试与代码质量

核心知识点 ​

Python 是动态类型、强类型语言:变量名绑定到对象,类型属于对象而不是变量名。缩进是语法的一部分,表达式、可迭代对象和异常处理构成日常代码的骨架。

学习边界:本篇是目录和概念地图,不重复每个 API 的长示例;要查具体语法,直接进入对应专题。数据分析见 Python 进阶篇,深度学习见 PyTorch 速查入口。

常用用法 ​

学习路线与入口 ​

python
lessons = {
    "数据与表达式": "02-变量与数据类型、03-字符串、04-列表与元组、05-字典与集合",
    "程序流程": "06-条件与循环、07-函数、08-模块与包、09-异常处理",
    "工程基础": "10-文件与路径、11-面向对象、12-迭代器与生成器、13-装饰器",
    "项目维护": "14-类型提示、15-标准库速查、16-虚拟环境与包管理、17-测试与调试",
}
print(list(lessons))
# 输出:['数据与表达式', '程序流程', '工程基础', '项目维护']

先掌握前两组,再按工作需要查工程和维护专题。

Python版本信息 ​

python
import sys

major_minor = sys.version_info[:2]
print(major_minor)
# 输出:(3, 11)

实际输出会随解释器版本变化;项目文档以 Python 3.11+ 为基线。

运行一个脚本 ​

python
def main() -> None:
    print("hello, Python")
    # 输出:hello, Python


if __name__ == "__main__":
    main()

__name__ == "__main__" 让文件既能被导入又能直接运行。

速查页面的阅读方式 ​

python
query = "dict.get"
kind = "常用 API"
print(f"先查 {query},再看{kind}的易混点")
# 输出:先查 dict.get,再看常用 API的易混点

遇到陌生代码时,先识别对象类型,再查该类型的方法;不要只凭方法名猜返回值。

不常用但需要知道 ​

help() 与 dir() ​

python
value = "python"
names = [name for name in dir(value) if name.startswith("is")]
print(names[:3])
# 输出:['isascii', 'isdecimal', 'isdigit']

help() 会在终端打开较长说明,适合临时探索;项目文档应优先链接稳定的官方 API。

__annotations__ ​

python
count: int = 3
print(__annotations__)
# 输出:{'count': <class 'int'>}

注解主要服务于阅读器、类型检查器和 IDE,不会自动把运行时值转换成声明的类型。

易混点 ​

  • = 是赋值,== 是相等比较,is 比较是否为同一个对象。
  • list、dict、set 可变;str、tuple、int 不可变。
  • Python 没有“变量声明后才可使用”的独立语句,赋值时才建立绑定。
  • 代码块必须使用一致的缩进,推荐 4 个空格,不混用 Tab。
  • 速查中的示例输出是示意;地址、时间和版本相关输出不要写死。

课后小问 ​

  1. 为什么 x = 1 后不能说“x 的类型永远是 int”? 答案:因为变量名只是绑定,对象才有类型。 解析:执行 x = "one" 后同一个名字可以重新绑定到字符串对象,动态类型并不等于弱类型。

  2. 直接运行模块时,为什么常见 if __name__ == "__main__":? 答案:为了只在直接运行该文件时执行入口代码。 解析:被 import 时,模块的 __name__ 是模块名;直接运行时才是 "__main__"。

本节小结 ​

Python 基础的关键不是背完所有函数,而是建立“对象—容器—流程—函数—模块—工程”的地图。后续页面把每个节点展开为可复制的例子。

快速回顾 ​

  • 语言基线:Python 3.11+
  • 核心模型:名字绑定对象,类型属于对象
  • 编程骨架:表达式、容器、条件、循环、函数、异常
  • 工程骨架:模块、文件、环境、测试
  • 查找方法:先看对象类型,再定位 API 标题