编程启蒙|Scratch 转 Python 系列第10天:问答闯关游戏实战(AI题库管理+随机出题实战)

品牌:梅雅达编程笔记 · Scratch 转 Python 系列


摘要

本篇是 Scratch 转 Python 系列的第 10 天,我们来做一件超酷的事------亲手打造一个问答闯关游戏!🎮

游戏里用到的核心知识全部来自前面学过的内容:Day 9 的字典 用来存每道题的题目、选项和答案;Day 6 的列表 用来把多道题装进题库;Day 2 的分支判断 用来校验答案对错;Day 3 的循环 用来遍历每一关。最后,我们还会用 random.choice 模拟"AI 随机出题",并给出真正对接 AI 大模型生成题目的伪代码------让你离 AI 编程实战只差一步!🚀


1. 本节课学习目标

  1. ✅ 掌握用字典存储单道题目(题目+选项+答案),理解字典在游戏数据管理中的作用
  2. ✅ 掌握用列表 管理多道题目(题库),学会 random.choice 随机抽题
  3. ✅ 综合运用分支判断循环,实现答题校验、计分、闯关逻辑
  4. AI 应用场景 :理解 AI 题库管理的原理,用 random 模拟 AI 出题,掌握对接 AI 大模型动态生成题目的伪代码框架

2. 专业名词通俗释义

名词 通俗解释 生活类比
题库 存放很多道题目的"仓库",随时可以取出来用 🗄️ 就像一个题卡盒,里面装了好多张题卡
字典 把一道题的题目、选项、答案"打包"在一起的数据结构 📇 就像一张题卡,正面写题目,背面写答案,侧面写选项
列表 按顺序存放多个数据的容器,可以存放多个字典(题目) 📦 就像一个抽屉柜,每个抽屉里放一张题卡
随机抽题 从题库中随机选一道题,让每次答题都不一样 🎲 就像蒙着眼睛从题卡盒里随机抽一张卡
关卡 游戏中的"一道门",每过一关题目难度或数量可能增加 🚪 就像闯关游戏里的每一层楼,越往上越难
生命值(HP) 答错会扣血,血量为零就 Game Over ❤️ 就像游戏角色的血条,挨打就掉血
AI出题 调用 AI 大模型,自动生成新的题目 🤖 就像请了一个AI老师,随时帮你出无限的新题

3. 分模块双向对照知识点

模块1:用字典存储单道题(题目、选项、答案)

🟡 Scratch 积木逻辑

在 Scratch 中,如果要存一道题的信息,你可能会这样做:

  • 建变量 题目内容,设置为 "Python中哪个函数获取用户输入?"
  • 建列表 选项列表,依次添加 "A. print()"、"B. input()"、"C. len()"、"D. range()"
  • 建变量 正确答案,设置为 "B"

这样一道题就需要 3 个变量/列表来管理,很零散

🐍 Python 源码
python 复制代码
# 【Scratch积木】建立变量 [question] 并设置为字典
# 在 Scratch 中,可以用多个列表分别存题目、选项A、选项B...
# 在 Python 中,用字典把一道题的所有信息"打包"在一起
question = {
    "question": "Python中哪个函数获取用户输入?",
    "options": ["A. print()", "B. input()", "C. len()", "D. range()"],
    "answer": "B"
}

# 【Scratch积木】说出 [question] 的值
print(f"题目:{question['question']}")
print("选项:")
for option in question["options"]:
    print(f"  {option}")
print(f"正确答案:{question['answer']}")
▶️ 运行结果
复制代码
题目:Python中哪个函数获取用户输入?
选项:
  A. print()
  B. input()
  C. len()
  D. range()
正确答案:B
⚠️ 核心易错说明
  • 字典的键要用引号question["answer"] 中的 "answer" 是字符串,不能写成 question[answer](除非 answer 是变量)
  • 字典用花括号 {} :别和列表的 [] 搞混了!Day 9 学过,字典用 {},列表用 []
  • 访问字典值用方括号question["question"] 获取题目内容,键名要和定义时完全一致

模块2:用列表存储多道题(题库)

🟡 Scratch 积木逻辑

在 Scratch 中,你可以建一个列表 question_bank,但列表里只能存文本 ,无法直接存"一道完整题目"。

所以 Scratch 中需要建多个列表:题目列表选项A列表选项B列表......管理起来很麻烦。

而在 Python 中,列表里可以放字典 !每道题就是一个字典,多道题放进列表里,就是一个完整的题库。

🐍 Python 源码
python 复制代码
# 【Scratch积木】建立列表 [question_bank] 并添加项目
question_bank = []

# 【Scratch积木】将 {题目字典} 加入列表 [question_bank]
question_bank.append({
    "question": "Python中哪个函数获取用户输入?",
    "options": ["A. print()", "B. input()", "C. len()", "D. range()"],
    "answer": "B"
})

# 【Scratch积木】将 {题目字典} 加入列表 [question_bank]
question_bank.append({
    "question": "Python中哪个关键字定义函数?",
    "options": ["A. func", "B. define", "C. def", "D. function"],
    "answer": "C"
})

# 【Scratch积木】将 {题目字典} 加入列表 [question_bank]
question_bank.append({
    "question": "Python中列表用什么符号包裹?",
    "options": ["A. ()", "B. []", "C. {}", "D. <>"],
    "answer": "B"
})

# 【Scratch积木】说出 [question_bank] 的长度
print(f"题库中共有 {len(question_bank)} 道题\n")

# 【Scratch积木】对于 [question_bank] 中的每个项目
for i, q in enumerate(question_bank):
    print(f"第{i + 1}题:{q['question']}")
    print(f"  答案:{q['answer']}")
    print()
▶️ 运行结果
复制代码
题库中共有 3 道题

第1题:Python中哪个函数获取用户输入?
  答案:B

第2题:Python中哪个关键字定义函数?
  答案:C

第3题:Python中列表用什么符号包裹?
  答案:B
⚠️ 核心易错说明
  • append() 添加的是整个字典question_bank.append({...}) 是把一整道题加到列表末尾,不是只加题目文本
  • enumerate() 同时获取序号和内容for i, q in enumerate(question_bank)i 是序号(从 0 开始),q 是每道题的字典
  • 列表可以存放字典:这是 Python 比 Scratch 方便的地方------列表里的每个元素可以是任意类型,包括字典!

模块3:随机抽题(random.choice 从题库抽题)

🟡 Scratch 积木逻辑

在 Scratch 中,要从列表中随机取一项,你需要:

  1. 在 1 到 [列表长度] 之间取随机数 得到一个随机索引
  2. 列表 [question_bank] 的第 [随机数] 项 取出对应题目

在 Python 中,random.choice(列表) 一步搞定!

🐍 Python 源码
python 复制代码
import random

# 【Scratch积木】建立列表 [question_bank] 并添加项目
question_bank = [
    {
        "question": "Python中哪个函数获取用户输入?",
        "options": ["A. print()", "B. input()", "C. len()", "D. range()"],
        "answer": "B"
    },
    {
        "question": "Python中哪个关键字定义函数?",
        "options": ["A. func", "B. define", "C. def", "D. function"],
        "answer": "C"
    },
    {
        "question": "Python中列表用什么符号包裹?",
        "options": ["A. ()", "B. []", "C. {}", "D. <>"],
        "answer": "B"
    },
    {
        "question": "Python中字典用什么符号包裹?",
        "options": ["A. ()", "B. []", "C. {}", "D. <>"],
        "answer": "C"
    },
    {
        "question": "Python中哪个函数获取列表长度?",
        "options": ["A. size()", "B. length()", "C. len()", "D. count()"],
        "answer": "C"
    }
]

# 【Scratch积木】在 1 到 [题库长度] 之间取随机数 → 对应 Python 的 random.choice
# Scratch 中没有直接"随机选列表项"的积木,通常用随机索引实现
picked = random.choice(question_bank)

print("🎲 随机抽到的题目:")
print(f"题目:{picked['question']}")
print("选项:")
for option in picked["options"]:
    print(f"  {option}")
print(f"答案:{picked['answer']}")
▶️ 运行结果(每次运行结果不同)
复制代码
🎲 随机抽到的题目:
题目:Python中哪个关键字定义函数?
选项:
  A. func
  B. define
  C. def
  D. function
答案:C
⚠️ 核心易错说明
  • 别忘了 import random :使用 random.choice() 之前,必须在文件开头导入 random 模块
  • random.choice() 直接返回元素本身:不需要再用索引去取,返回的就是字典本身
  • 每次运行结果不同:这是随机的特点!多次运行可能抽到不同的题目

模块4:答题校验+计分

🟡 Scratch 积木逻辑
  • 建变量 score 设为 0,建变量 hp 设为 3
  • 询问 [请输入你的答案] 并等待
  • 如果 <[回答] = [answer]> 那么将 [score] 增加 10否则将 [hp] 增加 -1

这就是 Day 2 学过的分支判断 + Day 6 学过的变量操作!

🐍 Python 源码
python 复制代码
# 【Scratch积木】建立变量 [score] 并设置为 0
score = 0

# 【Scratch积木】建立变量 [hp] 并设置为 3
hp = 3

# 准备一道题
question = {
    "question": "Python中哪个函数获取用户输入?",
    "options": ["A. print()", "B. input()", "C. len()", "D. range()"],
    "answer": "B"
}

# 【Scratch积木】说出 [题目]
print(f"题目:{question['question']}")
print("选项:")
for option in question["options"]:
    print(f"  {option}")

# 【Scratch积木】询问 [请输入你的答案] 并等待
user_answer = input("\n请输入你的答案(A/B/C/D):").strip().upper()

# 【Scratch积木】如果 <[user_answer] = [answer]> 那么
if user_answer == question["answer"]:
    # 【Scratch积木】将 [score] 增加 10
    score += 10
    print(f"✅ 回答正确!得分 +10,当前总分:{score}")
else:
    # 【Scratch积木】将 [hp] 增加 -1
    hp -= 1
    print(f"❌ 回答错误!正确答案是 {question['answer']},剩余生命值:{hp}")

print(f"\n📊 当前状态 → 分数:{score},生命值:{hp}")
▶️ 运行结果
复制代码
题目:Python中哪个函数获取用户输入?
选项:
  A. print()
  B. input()
  C. len()
  D. range()

请输入你的答案(A/B/C/D):B
✅ 回答正确!得分 +10,当前总分:10

📊 当前状态 → 分数:10,生命值:3
⚠️ 核心易错说明
  • input() 返回的是字符串 :用户输入的 B 是字符串 "B",和 question["answer"]"B" 类型一致才能比较
  • .strip().upper() 很重要 :用户可能输入 " b "(带空格和小写),.strip() 去空格,.upper() 转大写,保证比对正确
  • == 不是 === 是比较是否相等,= 是赋值!Day 2 的经典易错点

4. 综合实战项目:问答闯关完整游戏

把前面 4 个模块串起来,我们就得到了一个完整的问答闯关游戏!🎉

游戏设计:

  • 📋 题库 7 道题(字典存储 + 列表管理)
  • 🚪 共 3 关,每关 2 道题(随机抽取,不重复)
  • ✅ 答对 +10 分,❌ 答错 -1 生命值(初始 3 血)
  • 🏆 通关后根据分数给出评价
  • 🤖 附带 AI 出题伪代码,展示如何真正对接 AI
python 复制代码
import random

# ==================== 题库初始化 ====================
# 【Scratch积木】建立列表 [question_bank] 并添加项目
question_bank = []

# 【Scratch积木】将 {题目字典} 加入列表 [question_bank]
question_bank.append({
    "question": "Python中哪个函数获取用户输入?",
    "options": ["A. print()", "B. input()", "C. len()", "D. range()"],
    "answer": "B"
})

# 【Scratch积木】将 {题目字典} 加入列表 [question_bank]
question_bank.append({
    "question": "Python中哪个关键字定义函数?",
    "options": ["A. func", "B. define", "C. def", "D. function"],
    "answer": "C"
})

# 【Scratch积木】将 {题目字典} 加入列表 [question_bank]
question_bank.append({
    "question": "Python中列表用什么符号包裹?",
    "options": ["A. ()", "B. []", "C. {}", "D. <>"],
    "answer": "B"
})

# 【Scratch积木】将 {题目字典} 加入列表 [question_bank]
question_bank.append({
    "question": "Python中字典用什么符号包裹?",
    "options": ["A. ()", "B. []", "C. {}", "D. <>"],
    "answer": "C"
})

# 【Scratch积木】将 {题目字典} 加入列表 [question_bank]
question_bank.append({
    "question": "Python中哪个函数获取列表长度?",
    "options": ["A. size()", "B. length()", "C. len()", "D. count()"],
    "answer": "C"
})

# 【Scratch积木】将 {题目字典} 加入列表 [question_bank]
question_bank.append({
    "question": "Python中哪个模块可以生成随机数?",
    "options": ["A. math", "B. random", "C. time", "D. sys"],
    "answer": "B"
})

# 【Scratch积木】将 {题目字典} 加入列表 [question_bank]
question_bank.append({
    "question": "Python中用什么符号给变量赋值?",
    "options": ["A. ==", "B. =>", "C. =", "D. :="],
    "answer": "C"
})

# ==================== AI题库管理(伪代码展示) ====================
# 🔌 AI出题伪代码(本游戏使用本地题库模拟,真正对接AI的伪代码如下):
#
# import requests
#
# def ai_generate_question(topic):
#     """调用AI大模型自动生成一道题目"""
#     response = requests.post(
#         "https://api.ai-model.com/v1/chat",
#         headers={"Authorization": "Bearer YOUR_API_KEY"},
#         json={
#             "messages": [
#                 {"role": "system", "content": "你是一个Python编程出题老师"},
#                 {"role": "user", "content": f"请出一道关于{topic}的Python选择题,包含4个选项和正确答案"}
#             ]
#         }
#     )
#     result = response.json()
#     # AI返回的题目解析为字典格式
#     return {
#         "question": result["question"],
#         "options": result["options"],
#         "answer": result["answer"]
#     }
#
# # 调用AI生成题目并加入题库
# new_question = ai_generate_question("循环")
# question_bank.append(new_question)
#
# 💡 实际项目中,可以调用AI接口动态生成无限题目,实现真正的"AI出题"!

# ==================== 游戏初始化 ====================
# 【Scratch积木】建立变量 [score] 并设置为 0
score = 0

# 【Scratch积木】建立变量 [hp] 并设置为 3
hp = 3

# 【Scratch积木】建立变量 [level] 并设置为 1
level = 1

# 每关需要回答的题目数
questions_per_level = 2

# 总关卡数
total_levels = 3

# 记录已用过的题目索引,避免重复
used_indices = []

print("🏰 欢迎来到「Python问答闯关」!")
print(f"📋 题库已加载 {len(question_bank)} 道题")
print(f"❤️ 初始生命值:{hp}  |  📊 初始分数:{score}")
print(f"🏆 共 {total_levels} 关,每关 {questions_per_level} 道题")
print("✅ 答对 +10 分  |  ❌ 答错 -1 生命值")
print("-" * 60)

# ==================== 闯关主循环 ====================
# 【Scratch积木】重复执行直到 <[level] > [total_levels]> 或 <[hp] <= 0>
while level <= total_levels and hp > 0:
    print(f"\n🚪 ===== 第 {level} 关 =====")
    print(f"❤️ 生命值:{hp}  |  📊 分数:{score}")

    # 【Scratch积木】重复执行 [questions_per_level] 次
    for q_num in range(questions_per_level):
        if hp <= 0:
            break

        # 从未用过的题目中随机抽题
        available_indices = [i for i in range(len(question_bank)) if i not in used_indices]
        if not available_indices:
            # 题目用完了,重置已用列表
            used_indices = []
            available_indices = list(range(len(question_bank)))

        # 【Scratch积木】在 1 到 [题库长度] 之间取随机数
        picked_index = random.choice(available_indices)
        used_indices.append(picked_index)
        current_question = question_bank[picked_index]

        # 【Scratch积木】说出 [题目]
        print(f"\n📝 第 {level}-{q_num + 1} 题:")
        print(f"   {current_question['question']}")
        print("   选项:")
        for option in current_question["options"]:
            print(f"     {option}")

        # 【Scratch积木】询问 [请输入你的答案] 并等待
        user_answer = input("   你的答案(A/B/C/D):").strip().upper()

        # 【Scratch积木】如果 <[user_answer] = [answer]> 那么
        if user_answer == current_question["answer"]:
            # 【Scratch积木】将 [score] 增加 10
            score += 10
            print(f"   ✅ 太棒了!答对了!+10分  📊 当前分数:{score}")
        # 【Scratch积木】否则
        else:
            # 【Scratch积木】将 [hp] 增加 -1
            hp -= 1
            print(f"   ❌ 答错了!正确答案是 {current_question['answer']}")
            print(f"   ❤️ 生命值 -1,剩余:{hp}")

        if hp <= 0:
            print("\n💀 生命值耗尽!游戏结束...")
            break

    # 关卡通过判断
    if hp > 0:
        print(f"\n🎉 恭喜通过第 {level} 关!")
        if level < total_levels:
            print(f"   下一关:第 {level + 1} 关,继续加油!")
        # 【Scratch积木】将 [level] 增加 1
        level += 1

# ==================== 通关评价 ====================
print("\n" + "=" * 60)
print("📊 ===== 游戏结束 =====")
print(f"   📊 最终分数:{score}")
print(f"   ❤️ 剩余生命:{hp}")

# 【Scratch积木】如果 <[score] >= 50> 那么
if score >= 50:
    print("   🏆 评价:完美通关!你是Python问答大师!")
# 【Scratch积木】如果 <[score] >= 30> 那么
elif score >= 30:
    print("   🥈 评价:表现不错!再练练就更厉害了!")
# 【Scratch积木】如果 <[score] >= 10> 那么
elif score >= 10:
    print("   🥉 评价:及格了!继续加油学习吧~")
# 【Scratch积木】否则
else:
    print("   💪 评价:别灰心!多复习前面的知识,下次一定行!")

print("=" * 60)

🎮 游戏运行示例

复制代码
🏰 欢迎来到「Python问答闯关」!
📋 题库已加载 7 道题
❤️ 初始生命值:3  |  📊 初始分数:0
🏆 共 3 关,每关 2 道题
✅ 答对 +10 分  |  ❌ 答错 -1 生命值
------------------------------------------------------------

🚪 ===== 第 1 关 =====
❤️ 生命值:3  |  📊 分数:0

📝 第 1-1 题:
   Python中哪个函数获取用户输入?
   选项:
     A. print()
     B. input()
     C. len()
     D. range()
   你的答案(A/B/C/D):B
   ✅ 太棒了!答对了!+10分  📊 当前分数:10

📝 第 1-2 题:
   Python中列表用什么符号包裹?
   选项:
     A. ()
     B. []
     C. {}
     D. <>
   你的答案(A/B/C/D):B
   ✅ 太棒了!答对了!+10分  📊 当前分数:20

🎉 恭喜通过第 1 关!
   下一关:第 2 关,继续加油!

...(后续关卡类似)

📊 ===== 游戏结束 =====
   📊 最终分数:60
   ❤️ 剩余生命:3
   🏆 评价:完美通关!你是Python问答大师!

🤖 AI 出题说明

上面的游戏使用本地题库 + random.choice 模拟 AI 随机出题的效果。

在真正的 AI 项目中,你可以调用 AI 大模型的 API,让它动态生成新的题目:

复制代码
用户输入主题 → AI 大模型生成题目 → 解析为字典格式 → 加入题库 → 随机出题

伪代码已在代码注释中展示(ai_generate_question 函数),实际项目只需:

  1. 替换为真实的 AI API 地址和密钥
  2. 解析 AI 返回的 JSON 数据为字典格式
  3. 把生成的新题目 append 到题库中

这样就能实现无限题库,让每次游戏都有新鲜感!🌟


5. 高频易错点总结

  1. 字典和列表的符号搞混 🔄

    • 字典用 {}(花括号),列表用 [](方括号)
    • 记忆口诀:花括号包字典,方括号包列表
  2. 忘记 import random 📦

    • 使用 random.choice()random.shuffle() 之前,必须在文件开头写 import random
    • 否则会报 NameError: name 'random' is not defined
  3. input() 返回的是字符串 🔤

    • input() 永远返回字符串类型,即使用户输入数字
    • 比较答案时确保两边都是字符串:user_answer == question["answer"]
    • 记得用 .strip().upper() 处理用户输入,避免空格和大小写问题
  4. === 搞混

    • ==比较是否相等(if 判断用)
    • =赋值(给变量设值用)
    • Day 2 就讲过的经典坑,千万别再踩!
  5. while 循环条件设置不当 🔄

    • while level <= total_levels and hp > 0 两个条件缺一不可
    • 只判断关卡不判断血量 → 血量为零还在答题
    • 只判断血量不判断关卡 → 永远停不下来

6. 💡 学习提示

💡 学习提示

为鼓励大家动手练习、吃透编程逻辑,本篇不提供Scratch成品源码,请对照截图亲手搭建积木完成复刻!

配套Python代码可直接复制运行学习。


7. 往期历史笔记

  1. 编程启蒙|Scratch 转 Python 系列第 1 天:变量、数字运算积木双向对照(AI 基础数值计算实战)

  2. 编程启蒙|Scratch 转 Python 系列第 2 天:分支判断 if 积木双向对照(AI 指令条件过滤实战)

  3. 编程启蒙|Scratch 转 Python 系列第 3 天:循环重复积木双向对照(AI 批量循环处理,已收录 AI Agent 技术社区)

  4. 编程启蒙|Scratch 转 Python 系列第 4 天:字符串文本积木双向对照(AI 提示词拼接、文本清洗实战)

  5. 编程启蒙|Scratch 转 Python 系列第 5 天:自定义积木 / 函数双向对照(AI 工具封装、重复指令简化实战)

  6. 编程启蒙|Scratch 转 Python 系列第 6 天:列表、数组积木双向对照(AI 底层语法 / AI 批量数据处理实战)

  7. 编程启蒙|Scratch 转 Python 系列第 7 天:猜数字大挑战·升级版实战(AI 出题 + 二分查找最优解 + 完整命令行游戏)

  8. 编程启蒙|Scratch 转 Python 系列第8天:节奏敲击机游戏实战(AI节奏谱生成实战)

  9. 编程启蒙|Scratch 转 Python 系列第9天:字典/哈希表积木双向对照(AI大模型参数配置表实战)

📚 知识串联地图

本篇是综合实战篇,串联了前面多天的核心知识:

  • 🔗 Day 9 字典 → 每道题用字典存储(题目、选项、答案)
  • 🔗 Day 6 列表 → 题库用列表存储多道题
  • 🔗 Day 2 分支判断 → 答案校验(if-else 判断对错)
  • 🔗 Day 3 循环 → 遍历题目、闯关循环(while/for)
  • 🔗 Day 7 函数 → 代码模块化封装

把这些知识"拼"在一起,就做出了一个完整的问答闯关游戏!这就是编程的魅力------学过的知识不会浪费,它们会组合成越来越强大的作品。✨


9. 下一章预告

Day 11:文件读写积木双向对照------AI训练数据存取实战

本篇的题库是"写死"在代码里的,每次运行都是同样的题目。那如果想让玩家自己出的题保存下来,下次还能用呢?🤔

Day 11 我们将学习 Python 的文件读写

  • 📄 如何把题库保存到文件中
  • 📖 如何从文件读取题库数据
  • 🤖 AI 训练数据是怎么存储和读取的
  • 🎮 让问答游戏的题库持久化,关掉程序也不丢失

Scratch 中有"读写文件"积木,Python 中有 open() 函数,两者怎么对照?Day 11 见!👋


10. 原创声明

本文为梅雅达编程笔记原创内容,Scratch 转 Python 系列持续更新中。

🚫 未经授权,禁止搬运、转载、抄袭或用于任何商业用途。

如需引用请注明出处:梅雅达编程笔记 · Scratch 转 Python 系列

© 梅雅达编程笔记 · All Rights Reserved


跟着梅雅达,编程不迷路!我们 Day 11 见! 🚀

相关推荐
云烟成雨TD18 小时前
Agent Scope Java 2.x 系列【42】2.0 GA 正式发布:从透明开发迈向智能体系统工程
java·人工智能·agent
anyup18 小时前
从文本到具身:我给 AI Agent 搭了套实时 3D 交互身体
前端·人工智能·aigc
科技圈快迅19 小时前
新工科保研机构怎么选?垂直辅导与综合型服务模式差异解析
大数据·人工智能
中微极客19 小时前
视频Agent:从一次性生成到多轮编排架构
人工智能·架构·音视频
武子康19 小时前
FDE 到底是什么:为什么 AI 时代重新需要前线部署工程师(4 个标准 + 8 类风险 + 10 个问题)
人工智能·后端·openai
AOwhisky19 小时前
Python 学习笔记(第十一期)——运维自动化(上·后篇):进程级监控与子进程管理——psutil进阶
运维·开发语言·python·学习·云原生·运维开发
人间凡尔赛19 小时前
从服务注册到 AI 注册:Nacos 3.0 MCP Registry 如何重塑 2026 年后端架构
人工智能·架构
rain_sxr19 小时前
拆解时间切片:React 并发渲染与 Scheduler 调度机制的源码剖析
人工智能
人工干智能19 小时前
Python 的链式调用:一连串的“点”调用
开发语言·python