Python中如何在if语句内修改字典指定键的对应值
如何在Python字典中修改指定产品的库存值
我是Python初学者,刚学习使用字典批量管理产品库存,无需逐行打印产品信息。现在遇到语法问题,不知如何在if语句中修改字典内指定产品的库存值。当前代码如下:
products={ "product 1" : 100, "product 2" : 100, "product 3" : 100, "product 4" : 100, "product 5" : 100 } print("current stock: ",products) change=input("Would you like to change stock amount? ") if "yes" in change.lower(): chosen_product=input("Which product would you like to change? ") change_type=input("Would you like to add or subtract stock? ") else: print("current stock: ",products)
我在上述if语句部分无法继续编写:不能直接调用整个products字典,因为需修改用户选择的单个产品;也不能直接将chosen_product放在方括号中,因为它本身不是字典,不知如何正确提取该产品并修改其值。
解决方案
你完全可以用products[chosen_product]来定位并修改指定产品的库存,chosen_product是用户输入的键字符串,只要和字典里的键匹配,就能直接访问对应的值。下面是补充完整的代码,还加入了基础的容错处理:
products={ "product 1" : 100, "product 2" : 100, "product 3" : 100, "product 4" : 100, "product 5" : 100 } print("current stock: ",products) change=input("Would you like to change stock amount? ") if "yes" in change.lower(): chosen_product=input("Which product would you like to change? ") # 先检查产品是否存在于字典中 if chosen_product not in products: print(f"产品 {chosen_product} 不存在") else: change_type=input("Would you like to add or subtract stock? ") # 获取要修改的数量 try: amount = int(input("Enter the amount: ")) if change_type.lower() == "add": products[chosen_product] += amount elif change_type.lower() == "subtract": # 避免库存变为负数 if products[chosen_product] - amount < 0: print("库存不能为负数") else: products[chosen_product] -= amount else: print("请输入add或subtract") # 打印更新后的库存 print("Updated stock: ", products) except ValueError: print("请输入有效的数字") else: print("current stock: ",products)
- 核心逻辑:用
products[chosen_product]直接访问目标产品的库存值,通过+=或-=运算符快速修改数值 - 产品存在性检查:避免用户输入不存在的产品导致程序报错
- 输入异常处理:防止用户输入非数字内容导致程序崩溃
- 库存合法性判断:确保库存不会被修改为负数,让逻辑更严谨
内容的提问来源于stack exchange,提问作者hatsukeii
相关产品推荐
相关产品推荐

