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

文本冒险游戏基于字典的库存功能实现问题求助

解决文本冒险游戏库存系统的实现问题

首先你当前的库存字典写法存在语法错误,Python字典要求键值成对存在,正确的结构应该调整为每个物品对应包含count的子字典:

inventory = {
    'Holzbretter': {'count': 0},
    'Goldmünzen': {'count': 5},
    'Karte von Shipwreck-Beach': {'count': 0}
}

接下来针对你遇到的两个问题,给出解决方案:

核心思路

先筛选出所有count > 0的物品,再根据筛选结果决定输出内容:

  1. 若筛选结果不为空,按要求格式打印带索引的物品列表
  2. 若筛选结果为空,仅打印一次空库存提示

完整代码实现

# 修正后的库存字典
inventory = {
    'Holzbretter': {'count': 0},
    'Goldmünzen': {'count': 5},
    'Karte von Shipwreck-Beach': {'count': 0}
}

# 筛选出count>0的物品,同时保留物品名称
available_items = [(item_name, details['count']) for item_name, details in inventory.items() if details['count'] > 0]

if available_items:
    # 遍历带索引打印,索引从1开始
    for idx, (item, count) in enumerate(available_items, start=1):
        print(f"[{idx}] {item}: {count}")
else:
    print("Your inventory is empty!")

代码说明

  • 用列表推导式一次性筛选出所有有数量的物品,避免循环中重复判断空库存
  • enumerate(..., start=1)直接生成从1开始的索引,匹配你需要的格式
  • 仅在available_items为空时打印一次空提示,彻底解决重复打印的问题

内容的提问来源于stack exchange,提问作者IsItMe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 05:03:07