• ⏳ 课程时长: 90 分钟
  • 🎯 教学目标:
    • 📦 认识列表:理解怎么在一个变量里存一堆东西。
    • 📍 索引访问:如何从箱子里把东西取出来。
    • 添加元素:学会 .append() 往箱子里塞东西。
    • 🔄 修改与删除:换掉坏的东西,扔掉不要的东西。
    • 🚶 遍历列表:结合 for 循环,一个个处理箱子里的宝物。

📖 课程内容

1. 🤔 引入:冒险者的背包 (10 分钟)

想象一下,你是一个要去屠龙的勇士。🗡️ 你手里只能拿一把剑(普通变量)。 但你还需要盾牌、药水、地图、食物… 手里拿不下怎么办? 你需要一个背包!🎒

在 Python 里,列表 (List) 就是这个背包。

2. 🎒 打造背包:创建列表 (15 分钟)

  • 📜 语法规则: 使用 方括号 [],里面的东西用 逗号 , 隔开。

  • 💻 代码示例:

    # 1. 空背包
    bag = [] 
    
    # 2. 装满宝物的背包 (字符串列表)
    items = ["圣剑", "盾牌", "红药水", "魔法书"]
    
    # 3. 混合背包 (什么都能装!)
    player_info = ["勇者小明", 12, 99.5, True] 
    # (名字, 等级, 攻击力, 是否存活)

3. 📍 拿出宝物:索引与切片 (15 分钟)

这部分和我们学过的字符串一模一样! 记得口诀吗?从 0 开始数!

# 索引:      0       1        2        3
items = ["圣剑", "盾牌", "红药水", "魔法书"]

print(items[0])   # 拿出第 1 个:圣剑
print(items[2])   # 拿出第 3 个:红药水
print(items[-1])  # 拿出最后 1 个:魔法书

# 切片 (包头不包尾)
print(items[1:3]) # 拿出中间的:['盾牌', '红药水']

4. 🛠️ 整理背包:增、删、改 (25 分钟)

列表最厉害的地方在于,它是可以改变的!

  • ➕ 添加 (Append): 在背包的最后面塞进一个新东西。

    print("捡到一个金币!")
    items.append("金币") 
    print(items) 
    # 输出: ['圣剑', '盾牌', '红药水', '魔法书', '金币']
  • 🔄 修改 (Change): 把某个位置的东西换掉

    print("把'红药水'换成了'蓝药水'...")
    items[2] = "蓝药水" # 索引 2 原来是红药水
    print(items)
  • 🗑️ 删除 (Remove): 把不想要的东西扔掉。

    print("盾牌坏了,扔掉!")
    items.remove("盾牌") # 指定名字删除
    print(items)

5. 🚶 盘点库存:列表与循环 (15 分钟)

如果背包里有 100 个东西,怎么一个个拿出来看? for 循环是列表的最佳搭档!

  • 语法: for 物品 in 列表:

    print("--- 🎒 目前的背包清单 ---")
    
    for item in items:
        print(f"我有: {item}")
    
    print("--- 盘点结束 ---")

    电脑会自动把列表里的东西,一个接一个地赋值给 item 变量,直到取完为止。

6. ✨ 多元化场景实战 (10 分钟)

场景 A:🥗 甚至能点菜

foods = []  # 空菜单
print("请点 3 道菜:")
for i in range(3):
    dish = input(f"第 {i+1} 道菜想吃什么?")
    foods.append(dish) # 加入列表

print("你点的菜单是:", foods)

场景 B:📊 成绩分析师

scores = [90, 85, 100, 70, 95]
total = 0

# 算出总分
for s in scores:
    total = total + s

print(f"总分是: {total}")
# 还可以用 len() 算出个数
print(f"平均分是: {total / len(scores)}") 

💪 课堂大练兵 (10 分钟)

  1. 🦸 英雄战队: 创建一个列表 heroes = ["钢铁侠", "蜘蛛侠"]

    • 使用 .append() 加入 “雷神”。
    • 使用 print 打印出战队的队长 (列表第一个人)。
  2. 🚫 敏感词过滤: 有一个列表 words = ["你好", "笨蛋", "再见"]。 使用 for 循环检查。如果发现 “笨蛋”,就把它改成 “*“。 最后打印修改后的列表。 (提示:这题有点难,可以用索引遍历 range(len(words)) 来修改)*


📝 课程总结 (5 分钟)

  1. 列表 []:能装很多数据的超级容器。
  2. 索引list[0] 访问,和字符串一样。
  3. .append():往屁股后面加东西(最常用!)。
  4. .remove():按名字删除。
  5. 遍历:用 for 循环一个个处理列表里的数据。

🏠 课后作业 (5 分钟)

  1. 🛒 购物车清单: 写一个程序,一直询问用户 “你想买什么?(输入 quit 退出)”。

    • 用户输入东西,就 .append() 到列表。
    • 用户输入 quit,就停止循环,并打印出所有买到的东西。
  2. 🔢 最大数挑战: 有一个列表 nums = [12, 45, 2, 99, 50]。 请编写一个循环,找出里面最大的数字,并打印出来。 (不要直接用 max() 函数,试着自己写逻辑!)

  3. 🔀 列表反转 (选做): 不使用切片 [::-1],试着把列表 [1, 2, 3] 变成 [3, 2, 1](提示:可以创建一个新列表,然后倒着读旧列表,塞进新列表里)


下节课预告: 现在我们有了背包(列表),也有了技能(函数)。 但是,上一节课留了个尾巴:函数算出来的结果,怎么拿回来给主程序用呢?(比如算出平均分后,还要拿去评级)。 下节课,我们将揭开函数最核心的秘密——“回旋镖:返回值 (Return)”!🔙🎯

下次见,收藏家们!👋

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。