Skip to content

列表与数据存储——用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()方法在列表末尾加新元素(类比"在收纳盒最后贴新便利贴"):
    python
    books = ["数学书", "语文书"]
    books.append("英语书")  # 添加新元素
    print(books)  # 输出:['数学书', '语文书', '英语书']
  • 修改元素:直接通过索引重新赋值(类比"把第1个夹层的课本换成另一本"):
    python
    books[0] = "科学书"  # 修改索引0的元素
    print(books)  # 输出:['科学书', '语文书', '英语书']

三、练习题设计:从"模仿"到"应用"(25分钟)

基础任务(全员完成):"我的班级数据"

  • 要求:创建3个列表,分别存储3名同学的"姓名、身高(cm)、生日月份",并完成:
    1. 打印第2名同学的身高;
    2. 给姓名列表添加1名新同学;
    3. 修改其中1名同学的生日月份。
  • 示例框架:
    python
    names = ["______", "______", "______"]
    heights = [____, ____, ____]
    birthdays = [____, ____, ____]
    
    # 打印第2名同学的身高(索引1)
    print(names[1] + "的身高是:" + str(heights[1]) + "cm")
    # 添加新同学
    names.append("______")
    # 修改生日月份
    birthdays[0] = ____

进阶任务(选做):"植物生长记录"

  • 提供豆芽生长数据(如day1 = [3, 2.5, 4],单位cm),要求:
    1. 创建day2列表,记录第2天的生长数据;
    2. day1添加1个新数据(如第4颗豆芽的高度);
    3. 比较两天同一颗豆芽的高度(如print(day2[0] - day1[0]))。

教师支持:

  • 打开AI代码小助手,学生可提问"怎么给列表加元素?",AI返回带注释的append()示例;
  • 准备"索引对照卡"(列表元素位置与索引的对应图),帮助基础薄弱学生理解。

四、讲解与互评:从"操作"到"理解"(10分钟)

  1. 典型错误分析:投屏1-2份含错误的代码(如用1而非0作为第一个索引),全班讨论"错在哪里?怎么改?"。
  2. 应用分享:选2名学生展示"植物生长记录",讲解"为什么用列表记录比单独变量更方便?",强调列表"批量管理"的核心价值。
  3. 互评标准:代码是否正确(索引、方法使用)、数据是否真实(鼓励用自己测量的真实数据),评选"数据小管家"。

五、总结与作业(5分钟)

课堂总结:

  • 列表是存储多个数据的"超级盒子",用[]定义(如[元素1, 元素2]);
  • 索引从0开始,通过列表名[索引]访问元素;
  • append(新元素)添加数据,用列表名[索引] = 新值修改数据。

课后作业:

  1. 创建"家庭成员信息列表"(姓名、年龄),打印"爸爸的年龄",并添加"宠物名字";
  2. 观察科学课的植物生长,记录3颗种子的第3天高度,用列表存储(下次课带数据)。

教学理论支撑:

  1. 皮亚杰具体运算阶段理论:通过"收纳盒""便利贴"等实物操作,将抽象的"列表"概念与具体经验关联,帮助11-15岁学生理解"数据集合"的逻辑。
  2. 维果茨基最近发展区:提供"索引对照卡""代码模板"等脚手架,降低"索引从0开始"的认知难点,让学生在支持下完成从"模仿"到"应用"的跨越。
  3. STEAM教育融合:结合科学(植物生长数据记录)、数学(身高/年龄的数字存储)、技术(列表工具使用),让数据管理成为跨学科实践的载体。