面向 Java 后端开发者 的 Python 速成仓 —— 目标不是把 Python 学成另一门全栈语言,而是用 4–6 周拿下 Python Agent 生态 里最常用的工程能力。
学完能做到:
- 读懂并运行 LangChain / LangGraph / AutoGen / LlamaIndex 的示例
- 用 Python 快速做 Agent 原型、数据处理、批量评估脚本
- 理解 Agent 工程的那条主线:
输入 → prompt/message → model → tool/retriever → state → output → evaluation
完整版见 java-to-python-learning-roadmap.md。
每天 1 小时按 6 周,每天 2–3 小时可压到 4 周。
| 周 | 主题 | 重点 | 产出 |
|---|---|---|---|
| 第 1 周 | Python 可读可写 | 基础语法、容器、函数、文件、JSON、类型提示、dataclass | 3 个小脚本 + 1 个 JSON 处理工具 + 1 个 pytest 文件 |
| 第 2 周 | 脚本 / HTTP / Pydantic | argparse、logging、requests、httpx、Pydantic | 一个 API client + 一组 Pydantic 模型 + 一个批处理脚本 |
| 第 3 周 | asyncio / FastAPI | async/await、gather、semaphore、route、请求/响应模型 | 一个异步批处理器 + 一个 FastAPI Agent 原型服务 |
| 第 4 周 | Notebook / pandas | DataFrame、groupby、merge、评估结果分析 | 一个评估分析 Notebook + summary 报表 + 失败样本分析 |
| 第 5 周 | LangChain / LlamaIndex | prompt、model、parser、tool、retriever、RAG | 一个 chat+tool 示例 + 一个本地文档问答示例 |
| 第 6 周 | LangGraph / AutoGen | graph state、node、edge、多 Agent 消息流、tool execution | 一个多节点工作流 + 一个双 Agent 协作示例 |
| Java 常见概念 | Python 对应 | 学习重点 |
|---|---|---|
| Maven / Gradle | pip / uv / poetry / pyproject.toml | 创建虚拟环境、装依赖、固定版本 |
| package / classpath | module / package / import path | 文件即模块、目录即包 |
| POJO / DTO | dict / dataclass / Pydantic model | 区分轻量数据结构与强校验模型 |
| Jackson | Pydantic / json | 序列化、反序列化、类型转换 |
| Bean Validation | Pydantic validators | 入参、配置、LLM 输出结构化校验 |
| Spring Boot Controller | FastAPI route | 快速暴露 HTTP API |
| RestTemplate / WebClient | requests / httpx | 同步与异步 HTTP 调用 |
| CompletableFuture / Reactor | asyncio / await | 协程、并发 IO、任务编排 |
| Stream API | 推导式 / generator / pandas | 数据清洗、转换、聚合 |
| JUnit | pytest | 脚本级与评估级可运行测试 |
main 方法 |
if __name__ == "__main__" |
命令行脚本入口 |
最容易踩的几个坑:缩进是语法不是格式;变量是名字绑定不是 Java 引用;可变默认参数 def f(x=[]) 要避免;is 判身份、== 判值相等;别一上来套复杂 OO,Python 示例更偏函数式 + 数据流。
| 阶段 | 主题 | 教程 | 带注释示例 | 测试 |
|---|---|---|---|---|
| 1 | Python 基础语法 | stage1 ✅ | scripts/stage1_syntax_examples.py |
tests/test_stage1_syntax_examples.py |
| 2 | 基础脚本能力 | stage2 ✅ | scripts/stage2_basic_scripting.py |
tests/test_stage2_basic_scripting.py |
| 3 | requests / httpx | stage3 ✅ | scripts/stage3_http_client.py |
tests/test_stage3_http_client.py |
| 4 | Pydantic | stage4 ✅ | scripts/stage4_pydantic_models.py |
tests/test_stage4_pydantic_models.py |
| 5 | asyncio | stage5 ✅ | scripts/stage5_asyncio_tasks.py |
tests/test_stage5_asyncio_tasks.py |
| 6 | FastAPI | stage6 ✅ | services/app.py |
tests/test_stage6_fastapi_app.py |
| 7 | Jupyter Notebook | stage7 ✅ | notebooks/analyze_eval.ipynb |
tests/test_stage7_notebook.py |
| 8 | pandas | stage8 ✅ | scripts/stage8_pandas_analysis.py |
tests/test_stage8_pandas_analysis.py |
| 9 | Agent 生态(LangChain/LangGraph/AutoGen/LlamaIndex) | stage9 ✅ | scripts/stage9_minimal_agent.py |
tests/test_stage9_minimal_agent.py |
9 个阶段全部完成 🎉。目前全仓 116 个测试,全部通过。
# Windows PowerShell
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
# 跑全部测试
python -m pytest -q
# 跑某个阶段的示例
python scripts\stage1_syntax_examples.py# macOS / Linux
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python -m pytest -qpython-for-java/
├─ java-to-python-learning-roadmap.md # 完整 9 阶段路线图
├─ stage1-python-basics-tutorial.md # 阶段教程
├─ stage2-basic-scripting-tutorial.md
├─ stage3-http-clients-tutorial.md
├─ scripts/ # 带注释的语法/脚本示例
├─ tests/ # 对应 pytest 测试
├─ data/ # 练习与评估数据、结果
├─ notebooks/ # Notebook 实验(阶段 7)
├─ services/ # FastAPI 服务(阶段 6)
└─ requirements.txt
不要从每个类的源码读起,按数据流抓主线:
- 看输入(用户问题 / 文档 / 消息 / 状态)
- 看输出(回答 / 结构化 JSON / 工具结果 / 状态更新)
- 找模型调用位置 → 4. 找 prompt/system message → 5. 找 tool 定义
- 找状态/消息对象 → 7. 找执行入口(
invoke/ainvoke/run/stream/async for) - 最后再看框架特有抽象