2 Python 编程基础

第 2 章只解决一件事:把一个小想法写成能运行、能保存数据、能处理错误、能讲清楚的 Python 程序。
先看 Python 工作闭环

先看图。大多数入门 Python 程序都是这个闭环:
输入 -> 数据结构 -> 函数 -> 文件/API/输出
Python 之所以是 AI 主线语言,是因为同一个闭环以后会变成数据清洗、模型训练、RAG 检索、API 封装和 Agent 工具。
学习顺序与任务表
下面这一张表同时作为本章学习指南和任务清单。
| 页面 | 跟着做 | 留下的证据 |
|---|---|---|
| 2.1.1 Python 介绍 到 2.1.5 流程控制 | 手敲变量、输入输出、条件和循环的小脚本 | 5 个改过并能输出结果的小脚本 |
| 2.1.6 数据结构 | 用列表、字典和 JSON 形状对象保存同一组任务 | 一段说明:为什么这个结构更合适 |
| 2.1.7 函数基础 和 2.1.8 模块与包 | 把重复逻辑拆成函数和模块 | 一个输入、返回值清楚的脚本 |
| 2.2.2 异常处理 和 2.2.3 文件操作 | 保存数据、重新读取,并处理文件缺失或损坏 | 一个 JSON/文本文件和一条调试记录 |
| 2.2.1 面向对象、2.2.5 迭代器、2.2.6 类型提示 | 先浏览,项目需要结构或清晰度时再回头用 | 一个重构过的函数或类 |
| 2.3.1 任务管理器 到 2.3.4 AI API 体验 | 做能保存数据、采集数据、提供 API、调用 AI API 的小项目 | 带 README 运行命令的项目文件夹 |
| 2.3.5 跟做工作坊 | 串起 CLI 命令、JSON 持久化、统计和报告导出 | ch02_output/ 和终端输出 |
本章常见术语:
| 术语 | 含义 |
|---|---|
CLI | Command-Line Interface,命令行界面:用文字命令操作的程序 |
I/O | Input/Output,输入/输出:数据进入程序,结果从程序出来 |
JSON | 适合保存任务、配置、API 返回结果的嵌套文本格式 |
API | 一个程序调用另一个程序的入口 |
SDK | 把 API 包装成更好调用函数的库 |
第一个可运行闭环
在一个空练习文件夹里运行下面代码。它不用第三方包,就能做一个极小的 JSON 任务管理器。
import json
from pathlib import Path
DATA = Path("tasks.json")
def load_tasks():
if not DATA.exists():
return []
try:
return json.loads(DATA.read_text(encoding="utf-8"))
except json.JSONDecodeError:
return []
def save_tasks(tasks):
DATA.write_text(json.dumps(tasks, ensure_ascii=False, indent=2), encoding="utf-8")
tasks = load_tasks()
tasks.append({"title": "学习 Python 文件读写", "done": False})
save_tasks(tasks)
print(f"已保存 {len(tasks)} 个任务")
预期输出:
已保存 1 个任务
连续运行两次。第二次应该输出 已保存 2 个任务,这说明程序已经能保存状态并重新读取。
常见失败
| 现象 | 先检查什么 | 常见修复 |
|---|---|---|
| 语法错误 | 报错行和上一行 | 检查缩进、括号、引号和冒号 |
| 文件找不到 | 当前运行目录 | 打印 Path.cwd(),移动文件或改路径 |
| JSON 解析失败 | 文件是否为空或格式损坏 | 加 try/except,失败时回到空列表 |
| 函数看不懂 | 输入、返回值和隐藏的全局状态 | 拆成职责单一的小函数 |
| API 调用失败 | 参数、状态码和返回的错误内容 | 安全打印响应,并处理失败分支 |
通关检查
能回答下面五个问题,就可以进入第 3 章:
- 什么数据进入程序?什么结果离开程序?
- 什么时候字典比列表更合适?
- 文件路径是相对于哪个文件夹?
print和return有什么区别?- 其他人能不能按 README 运行你的项目?
需要打印式清单时,打开 2.0 学习指南与任务单。下一章会继续用 Python 处理 CSV、分析数据并连接数据库。