案例:个人书单管理系统¶
(date: 2025-11-13)
目标: 在15分钟内,将前面学到的零散方法组合运用,解决一个稍复杂的实际问题。
第1步:情境引入与任务发布¶
现在我们用刚学的List方法,做一个书单管理系统。你有一个读书清单,需要完成三个管理任务。
初始数据:
# 所有人的初始数据都一样
book_list = ["红楼梦", "三国演义", "百年孤独", "三体", "三国演义", "Python编程", "三体"]
三个任务:
清理任务:书单中有重复的书,请去重。
筛选任务:我只想看标题里带“三”的书。
整理任务:把书单按书名字母顺序排列。
第2步:分步实施与引导¶
任务1:去重¶
学生动手:尝试写代码
教师巡视:观察学生方案
[方案分享]
引导讨论:“两种方案各有什么优缺点?”(A简洁但丢失原序,B可控但稍慢)
任务2:筛选带“三”的书¶
学生动手
[方案分享]
深化理解:强调
if "三" in book是字符串包含判断,与if book in book_list(列表包含)的区别关键讲解:强调
"三" in book是字符串包含判断,与"三" in book_list(列表包含)的区别
任务3:按书名排序¶
学生动手
[方案分享]
深化理解:对比
sort()(原地修改,返回None)和sorted()(返回新列表)的区别
第3步:综合挑战与总结¶
终极挑战: 能不能用一行代码,完成先去重,再筛选带'三'的书,最后排序?
[最佳答案]
教师总结:
方法组合:
set()+list()+ 列表推导式 +sorted()编程思维:复杂任务可以拆解成多个简单任务
Python哲学:总有多种方法解决问题,要选择最适合的
教学实施要点¶
时间控制严格:每个阶段用倒计时器,确保不超时
鼓励多种解法:不强求统一答案,展示不同思路
重视错误分析:收集典型错误代码,现场调试讲解
关注学生差异:对快的学生提供拓展任务(如:按书名长度排序)
这样的组织实施既保证了教学效率,又给了学生充分的实践和思考空间,真正实现了从“学会方法”到“会用方法”的跨越。