Appearance
列表与数据存储——用Python管理"信息清单"
课题
列表:存储数据的"超级盒子"与基础操作
教学时间
2课时(90分钟)
课前准备
- 教师端:电脑(Python 3.10+)、投影仪、多媒体课件(含生活中的"列表"案例:购物清单、班级花名册、课程表)、实物道具(纸质购物清单、便利贴、透明收纳盒)、数据卡片(写有学生姓名、成绩、植物高度等)。
- 学生端:电脑(Python环境)、笔记本、表格练习纸(提前打印:空白购物清单、成绩记录表)、彩色笔(标注列表元素)。
- 教学素材:代码模板(
students = ["小明", "小红"]等基础结构)、AI代码小助手(支持"如何添加元素"等问题)、奖励卡("数据整理小能手")。
一、导入活动:从"生活清单"到"代码列表"(15分钟)
活动1:"购物清单"大改造——理解"数据集合"
- 教师展示纸质购物清单:"妈妈去超市买东西,清单上写着'苹果、牛奶、面包'——这是生活中的'数据集合',怎么让计算机也能记住这些信息?"
- 学生分组:用便利贴写下3样想购买的物品,贴在"透明收纳盒"上,模拟"把数据放进盒子"。
- 引出概念:"Python中的'列表'就像这个收纳盒,能把多个数据放在一起,用
[]表示,元素用逗号隔开。"
活动2:"班级花名册"升级——发现"列表的优势"
- 展示两种记录方式:
- 单独变量:
name1 = "小明"; name2 = "小红"; ...(繁琐,新增名字需写新变量); - 列表:
names = ["小明", "小红", "小刚"](简洁,可直接添加新名字)。
- 单独变量:
- 提问:"哪种方式更适合记录全班20人的名字?"引导学生发现列表"批量存储、便于管理"的特点。
二、知识点讲解:列表的定义与基础操作(35分钟)
模块1:创建列表——给数据"安家"(10分钟)
- 核心概念:列表(
list)是Python中存储多个数据的"容器",元素可以是字符串、数字等,用[]包裹,逗号分隔。 - 生活类比:"就像书包里的夹层,第一个夹层放课本,第二个放文具——列表的每个元素也有固定位置(索引)。"
- 基础语法(代码演示+实物对应):python
# 示例1:存储字符串(姓名) classmates = ["小明", "小红", "小刚"] # 类比:便利贴放进收纳盒 print(classmates) # 输出整个列表:['小明', '小红', '小刚'] # 示例2:存储数字(成绩) scores = [95, 88, 92] # 类比:成绩卡片按顺序排列 print(scores) # 输出:[95, 88, 92] # 示例3:混合类型(不推荐,但允许) info = ["小丽", 12, "女生"] # 存储一个人的多类信息
模块2:访问元素——找到"特定数据"(15分钟)
- 索引的意义:列表中每个元素有"位置编号"(索引),从
0开始(而非1),如同"第0个夹层、第1个夹层"。 - 操作演示:python
fruits = ["苹果", "香蕉", "橙子"] # 访问第1个元素(索引0) print(fruits[0]) # 输出:苹果 # 访问第3个元素(索引2) print(fruits[2]) # 输出:橙子 - 互动练习:学生用自己的"购物清单列表"(如
shopping = ["铅笔", "橡皮", "笔记本"]),尝试打印第2件物品(引导发现索引=1)。 - 常见错误:索引越界(如
fruits[3]会报错,因列表只有3个元素,最大索引为2),用"书包只有3个夹层,不能找第4个"类比解释。
模块3:添加/修改元素——更新"数据清单"(10分钟)
- 添加元素:用
append()方法在列表末尾加新元素(类比"在收纳盒最后贴新便利贴"):pythonbooks = ["数学书", "语文书"] books.append("英语书") # 添加新元素 print(books) # 输出:['数学书', '语文书', '英语书'] - 修改元素:直接通过索引重新赋值(类比"把第1个夹层的课本换成另一本"):python
books[0] = "科学书" # 修改索引0的元素 print(books) # 输出:['科学书', '语文书', '英语书']
三、练习题设计:从"模仿"到"应用"(25分钟)
基础任务(全员完成):"我的班级数据"
- 要求:创建3个列表,分别存储3名同学的"姓名、身高(cm)、生日月份",并完成:
- 打印第2名同学的身高;
- 给姓名列表添加1名新同学;
- 修改其中1名同学的生日月份。
- 示例框架:python
names = ["______", "______", "______"] heights = [____, ____, ____] birthdays = [____, ____, ____] # 打印第2名同学的身高(索引1) print(names[1] + "的身高是:" + str(heights[1]) + "cm") # 添加新同学 names.append("______") # 修改生日月份 birthdays[0] = ____
进阶任务(选做):"植物生长记录"
- 提供豆芽生长数据(如
day1 = [3, 2.5, 4],单位cm),要求:- 创建
day2列表,记录第2天的生长数据; - 给
day1添加1个新数据(如第4颗豆芽的高度); - 比较两天同一颗豆芽的高度(如
print(day2[0] - day1[0]))。
- 创建
教师支持:
- 打开AI代码小助手,学生可提问"怎么给列表加元素?",AI返回带注释的
append()示例; - 准备"索引对照卡"(列表元素位置与索引的对应图),帮助基础薄弱学生理解。
四、讲解与互评:从"操作"到"理解"(10分钟)
- 典型错误分析:投屏1-2份含错误的代码(如用
1而非0作为第一个索引),全班讨论"错在哪里?怎么改?"。 - 应用分享:选2名学生展示"植物生长记录",讲解"为什么用列表记录比单独变量更方便?",强调列表"批量管理"的核心价值。
- 互评标准:代码是否正确(索引、方法使用)、数据是否真实(鼓励用自己测量的真实数据),评选"数据小管家"。
五、总结与作业(5分钟)
课堂总结:
- 列表是存储多个数据的"超级盒子",用
[]定义(如[元素1, 元素2]); - 索引从
0开始,通过列表名[索引]访问元素; - 用
append(新元素)添加数据,用列表名[索引] = 新值修改数据。
课后作业:
- 创建"家庭成员信息列表"(姓名、年龄),打印"爸爸的年龄",并添加"宠物名字";
- 观察科学课的植物生长,记录3颗种子的第3天高度,用列表存储(下次课带数据)。
教学理论支撑:
- 皮亚杰具体运算阶段理论:通过"收纳盒""便利贴"等实物操作,将抽象的"列表"概念与具体经验关联,帮助11-15岁学生理解"数据集合"的逻辑。
- 维果茨基最近发展区:提供"索引对照卡""代码模板"等脚手架,降低"索引从0开始"的认知难点,让学生在支持下完成从"模仿"到"应用"的跨越。
- STEAM教育融合:结合科学(植物生长数据记录)、数学(身高/年龄的数字存储)、技术(列表工具使用),让数据管理成为跨学科实践的载体。