Files
PythonLearn/docs/superpowers/specs/2026-07-27-第八课列表-design.md
2026-07-28 16:19:52 +08:00

118 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 第八课“列表”教学设计
## 一、设计目标
第八课面向已经掌握字符串、条件判断和循环的零基础学习者,目标是让学习者理解“一个变量保存多个有序数据”的需求,并能够使用列表完成基础数据管理。
本课只讲列表,不讲元组。元组调整为独立的第九课。列表推导式保留到 Python 进阶阶段,避免本课知识密度过高。
## 二、课程目录
```text
01_python基础/1_8_列表/
├── README.md
├── lists.py
└── practice.py
```
- `README.md`:中文讲义、运行方法、常见错误、练习说明和验收标准。
- `lists.py`:带有详细中文注释的可运行示例。
- `practice.py`:只包含题目和提示,不预填答案。
## 三、知识范围
本课覆盖:
1. 创建列表和空列表;
2. 列表索引、负索引与切片;
3. 使用 `len()` 获取元素数量;
4. 修改指定位置的元素;
5. 使用 `append()``insert()` 添加元素;
6. 使用 `remove()``pop()``del` 删除元素;
7. 使用 `in` 判断成员;
8. 使用 `index()``count()` 查找和统计;
9. 使用 `sort()``reverse()` 排序和反转;
10. 使用 `for` 遍历列表;
11. 使用 `range(len(...))` 在确实需要索引时遍历;
12. 简单认识二维列表;
13. 理解列表可变性;
14. 区分直接赋值与浅复制列表的基础行为。
本课不覆盖:
- 元组;
- 列表推导式;
- 深复制;
- 复杂排序键;
- 列表内部实现与性能分析。
## 四、教学顺序
课程按照“读取 → 修改 → 增删 → 查询 → 排序 → 遍历 → 复制”的顺序推进。
先使用字符串索引和切片作为已有知识连接点,再说明字符串不可变而列表可变。随后通过 Agent 工具名称列表演示列表的常见操作,最后介绍直接赋值导致两个变量引用同一个列表的现象。
## 五、示例程序
`lists.py` 使用 Agent 开发工具清单作为统一业务背景,依次演示:
- 读取第一个和最后一个工具;
- 取得列表切片;
- 修改工具名称;
- 添加和删除工具;
- 查询某工具是否存在;
- 排序并遍历工具;
- 使用二维列表表示工具名称与用途;
- 对比直接赋值和 `copy()` 的结果。
示例不要求用户输入,确保可以直接运行并稳定复现结果。
## 六、课堂练习
`practice.py` 的项目名称为“Agent 工具清单管理器”。
练习要求学习者:
1. 创建初始工具列表;
2. 输出长度、首项和末项;
3. 添加两个工具;
4. 在指定位置插入工具;
5. 修改一个元素;
6. 判断并删除指定工具;
7. 使用 `pop()` 取得被删除的数据;
8. 对列表排序;
9. 遍历并输出编号;
10. 统计指定工具出现次数;
11. 创建列表副本并验证修改副本不影响原列表;
12. 输出最终管理报告。
练习文件只提供中文注释、测试数据和预期核心结果,不包含参考答案。
## 七、错误处理边界
本课在调用 `remove()``index()` 前先使用 `in` 判断,避免因元素不存在产生 `ValueError`
访问首尾元素前应确认列表非空。复杂异常处理将在后续课程讲解,本课使用条件判断保护常见边界。
## 八、验证方式
创建课程后执行:
```powershell
python lists.py
python practice.py
```
验收要求:
- `lists.py` 正常退出且输出覆盖所有主要列表操作;
- 空白 `practice.py` 可以正常执行;
- `practice.py` 不包含非注释答案;
- 根目录 `README.md` 的当前课程更新为 `1_8_列表`
- 不创建 `1_9_元组` 目录;
- 不修改第六、七课文件。
## 九、后续课程调整
第九课单独讲解元组,重点包括创建、单元素元组、索引切片、不可变性、解包和适用场景。字典、集合及后续课程编号依次顺延,实际目录仍按照学习进度逐课创建。