You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python实现基于提问猜动物的动物数组程序?

Python 猜动物游戏实现指南

核心思路

用字典构建决策树实现问答逻辑:每个节点包含一个问题,以及"是"/"否"对应的分支——分支要么是最终的动物名称,要么是下一个问题节点。程序通过循环向用户提问,根据回答遍历树,直到猜出目标动物。

修正并汉化后的完整代码

# 定义动物决策树
animal_tree = {
    "question": "它有四条腿吗?",
    "no": "鱼",
    "yes": {
        "question": "它有皮毛吗?",
        "yes": "猫",
        "no": "牛"
    }
}

def guess_animal(tree):
    print("请想一种动物")
    print("请用'是'或'否'回答问题。")
    
    current_node = tree
    while isinstance(current_node, dict):
        # 提问并获取用户回答
        answer = input(current_node["question"] + " ").strip().lower()
        # 根据回答切换节点,无效输入时重复当前问题
        current_node = current_node.get(answer, current_node)
    
    # 到达叶子节点,给出猜测结果
    print(f"我猜你想的是:{current_node}!")

# 启动游戏
guess_animal(animal_tree)

代码解释

  • 决策树结构:animal_tree是嵌套字典,question键存储当前问题,yes/no键对应回答后的分支(可以是子字典或动物名称)。
  • 交互逻辑:guess_animal函数通过循环遍历决策树:
    1. 若当前节点是字典,就提问并获取用户回答;
    2. 根据回答切换到对应的分支;
    3. 若当前节点是字符串(动物名称),则输出猜测结果。
  • 输入容错:使用get()方法处理用户输入错误的情况(比如输入非"是"/"否"时,会重复当前问题)。

扩展建议

  • 给决策树添加更多分支,比如在"有皮毛"的分支下再问"会汪汪叫吗?",分支对应"狗"和"猫";
  • 当猜测错误时,允许用户输入新的动物和区分问题,动态扩展决策树;
  • 按"有脊椎/无脊椎""陆生/水生"等大类整理问题,让分类更系统。

内容的提问来源于stack exchange,提问作者Стефани Иванова

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 19:06:21