案例:个人书单管理系统

(date: 2025-11-13)

目标: 在15分钟内,将前面学到的零散方法组合运用,解决一个稍复杂的实际问题。

第1步:情境引入与任务发布

现在我们用刚学的List方法,做一个书单管理系统。你有一个读书清单,需要完成三个管理任务。

初始数据

# 所有人的初始数据都一样
book_list = ["红楼梦", "三国演义", "百年孤独", "三体", "三国演义", "Python编程", "三体"]

三个任务

  1. 清理任务:书单中有重复的书,请去重。

  2. 筛选任务:我只想看标题里带“三”的书。

  3. 整理任务:把书单按书名字母顺序排列。


第2步:分步实施与引导

任务1:去重

  • 学生动手:尝试写代码

  • 教师巡视:观察学生方案

[方案分享]

  • 引导讨论:“两种方案各有什么优缺点?”(A简洁但丢失原序,B可控但稍慢)

任务2:筛选带“三”的书

  • 学生动手

[方案分享]

  • 深化理解:强调 if "三" in book字符串包含判断,与 if book in book_list(列表包含)的区别

  • 关键讲解:强调 "三" in book字符串包含判断,与 "三" in book_list(列表包含)的区别

任务3:按书名排序

  • 学生动手

[方案分享]

  • 深化理解:对比 sort()(原地修改,返回None)和 sorted()(返回新列表)的区别


第3步:综合挑战与总结

终极挑战: 能不能用一行代码,完成先去重,再筛选带'三'的书,最后排序

[最佳答案]

教师总结

  1. 方法组合set() + list() + 列表推导式 + sorted()

  2. 编程思维:复杂任务可以拆解成多个简单任务

  3. Python哲学:总有多种方法解决问题,要选择最适合的


教学实施要点

  1. 时间控制严格:每个阶段用倒计时器,确保不超时

  2. 鼓励多种解法:不强求统一答案,展示不同思路

  3. 重视错误分析:收集典型错误代码,现场调试讲解

  4. 关注学生差异:对快的学生提供拓展任务(如:按书名长度排序)

这样的组织实施既保证了教学效率,又给了学生充分的实践和思考空间,真正实现了从“学会方法”到“会用方法”的跨越。