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

Python新手求助:如何实现用户输入添加至inventory字典功能

修正后的代码及说明

问题分析

你的代码存在几个关键问题:执行顺序错误、库存更新逻辑不当、缺少循环输入逻辑、退出条件判断错误。以下是修正后的完整代码及解释:

def displayInventory(myInv):
    print("Inventory:")
    total = 0
    for k, v in myInv.items():
        print(f"{v} {k}")  # 使用f-string简化输出格式
        total += v
    print(f"Total number of items: {total}")

def addToInventory(inventory):
    while True:
        item = input("你想添加什么到背包?输入D结束:")
        # 忽略大小写和首尾空格,判断是否退出输入
        if item.strip().upper() == "D":
            break
        # 安全更新库存:物品存在则数量+1,不存在则初始化为1
        inventory[item] = inventory.get(item, 0) + 1
        # 若需要同时将物品添加到dragonLoot列表,取消下方注释
        # dragonLoot.append(item)

# 先初始化库存和龙战利品列表,再调用函数
inventory = {'rope': 1, 'torch': 6, 'gold coin': 42, 'dagger': 1, 'arrow': 12}
dragonLoot = ['gold coin', 'dagger', 'gold coin', 'gold coin', 'ruby']

# 执行添加物品操作
addToInventory(inventory)

# 展示更新后的库存
displayInventory(inventory)

主要修改点

  • 调整执行顺序:先定义inventory和dragonLoot变量,再调用函数,避免名称错误。
  • 添加循环输入:通过while True循环持续询问用户输入,直到用户输入"D"退出。
  • 修正库存更新逻辑:使用inventory.get(item, 0)安全获取物品数量,不存在则返回0,再累加1,避免键不存在的错误。
  • 优化退出判断:使用strip().upper()处理用户输入的大小写和空格问题,提升交互友好性。
  • 移除无用参数:删除了被覆盖的addedItems参数,简化函数结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:15:35