• ⏳ 课程时长: 90 分钟
  • 🎯 教学目标:
    • 🔑 理解键值对:字典的核心秘密 (Key-Value)。
    • 🏗️ 创建字典:使用花括号 {}
    • 🔍 精准查找:通过“名字”找“内容”。
    • 🛠️ 增删改:管理字典里的数据。
    • 🆚 字典 vs 列表:知道什么时候用哪个。

📖 课程内容

1. 🤔 引入:超市的条形码 (10 分钟)

去超市买东西,收银员扫一下条形码(Key),电脑屏幕上就显示出价格(Value)。 收银员不需要知道“可乐”在数据库的第几行,只要有条码就能找到价格。

字典就是这样一个“超级查询机”

  • 键 (Key):条形码/名字 (必须唯一,不能重复)。
  • 值 (Value):价格/内容 (可以是任何东西)。

2. 🏗️ 建造查询机:创建字典 (15 分钟)

列表用方括号 [],字典用花括号 {}。 里面的东西是一对一对的,中间用冒号 : 连起来。

  • 💻 示例:英雄图鉴

    # 这是一个空字典
    empty_book = {}
    
    # 这是一个英雄图鉴
    # 名字(Key) : 攻击力(Value)
    heroes = {
        "钢铁侠": 99,
        "绿巨人": 100,
        "蜘蛛侠": 85
    }
    
    print(heroes)

3. 🔍 瞬间移动:查找数据 (15 分钟)

在列表里找东西要数索引 list[0],在字典里,直接叫名字!

  • 📜 语法: 字典名[键]

    print("绿巨人的攻击力是:")
    print(heroes["绿巨人"])  # 输出 100
    
    # 还可以拿来计算
    combo = heroes["钢铁侠"] + heroes["蜘蛛侠"]
    print(f"钢铁侠和蜘蛛侠合体攻击力: {combo}")
  • ⚠️ 崩溃警告 (KeyError): 如果你查找一个不存在的名字(比如 heroes["灭霸"]),程序会直接报错崩溃! 这就好比你在字典里查一个不存在的字。

4. 🛠️ 只有管理员能做:增、删、改 (25 分钟)

字典是动态的,我们可以随时修改它。

  • ➕ 新增 (Add) & 🔄 修改 (Update): 这两种操作的写法一模一样

    • 如果这个键存在 -> 新增
    • 如果这个键存在 -> 修改(覆盖旧的)。
    # 新增
    heroes["雷神"] = 95
    print("雷神加入了!", heroes)
    
    # 修改 (绿巨人变强了)
    heroes["绿巨人"] = 110
    print("绿巨人升级了!", heroes)
  • 🗑️ 删除 (Delete): 使用 del 指令。

    # 蜘蛛侠退出了
    del heroes["蜘蛛侠"]
    print(heroes)

5. 🕵️‍♂️ 安全检查:in 关键字 (10 分钟)

为了防止报错(KeyError),在查字典之前,最好先问问“你在吗?”

  • 语法: if 键 in 字典:

    query = input("你想查谁的攻击力?")
    
    if query in heroes:
        print(f"{query} 的攻击力是 {heroes[query]}")
    else:
        print("查无此人!")

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

场景 A:📞 通讯录

contacts = {
    "妈妈": "13800000001",
    "爸爸": "13900000002",
    "老师": "13700000003"
}
print("正在拨打给妈妈...", contacts["妈妈"])

场景 B:🌍 简易翻译器

en_to_cn = {
    "apple": "苹果",
    "book": "书",
    "cat": "猫"
}
word = "apple"
print(f"{word} 的中文是 {en_to_cn[word]}")

场景 C:🎮 游戏角色属性 (高级) 值 (Value) 也可以是一个列表!

player = {
    "名字": "龙傲天",
    "等级": 10,
    "装备": ["屠龙刀", "布衣", "草鞋"] # 这是一个列表
}

print(f"玩家 {player['名字']} 拿着 {player['装备'][0]}")

💪 课堂大练兵 (5 分钟)

  1. 🍔 餐厅菜单: 创建一个字典 menu,包含三个菜名和价格(比如 汉堡:20, 薯条:10, 可乐:5)。
    • 打印出汉堡的价格。
    • 虽然物价上涨,把薯条的价格改成 12。
    • 新增一个菜品 “冰激凌”: 8。
    • 打印整个菜单。

📝 课程总结 (5 分钟)

特性 列表 List [] 字典 Dict {}
查找方式 用数字索引 (0, 1…) 用键 (Key)
是否有序 有序 (排排坐) 3.7版本后有序,主要是为了查找
适用场景 存一堆同类的东西 (全班分数) 存关联的东西 (名字对应分数)

🏠 课后作业 (5 分钟)

  1. 🗳️ 投票计数器: 我们要统计 “猫派” 和 “狗派” 的人数。 创建一个字典 votes = {"猫": 0, "狗": 0}。 让用户输入 “猫” 或 “狗” (输入 ‘end’ 结束)。 每输入一次,对应的数字就 +1。 最后打印结果。

  2. 📱 智能电话本 (完整版): 做一个循环程序:

    • 输入 1:查询电话 (输入人名,显示号码)。
    • 输入 2:添加电话 (输入人名和号码)。
    • 输入 3:退出。 (记得用 if ... in ... 防止查询报错)
  3. 🔢 数字翻译机 (选做): 创建一个字典,把 0-9 映射成中文 "零" - "九"。 让用户输入一个数字(比如 “15”),程序把它翻译成中文 “一五”。 (提示:遍历输入的字符串,一个个去字典里查)


下节课预告: 我们的程序现在只能在那个黑黑的窗口(控制台)里运行。 是不是觉得不够酷? 下节课,我们将开始接触 Python 更有趣的扩展库,我们要去“画画”了!🎨 我们将学习 Turtle (海龟绘图),用代码画出彩色的几何图形!🐢✨

下次见,数据管理员们!👋

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