gpt4 book ai didi

python - 更多问题 'simple' 杂货 list

转载 作者:行者123 更新时间:2023-12-01 01:27:37 24 4
gpt4 key购买 nike

昨天我发布了一个有关杂货 list 的问题,并得到了很多帮助。我遇到了另一个问题。这是我的代码:

item = {}
while True:
x = input('enter item: ')
if x =='done':
break
y = float(input('enter price: '))

item[x] = (y)

slist = {}
print('How much do you want of everything?')
while True:
listitem = input("Item name: ")
if listitem == 'done':
break
qty = float(input("How many: "))
slist[listitem] = qty



total = 0
for key in item:
value = item[key] * slist[key]
total = total + value
print(total)

当您为第一个循环输入一个项目,然后不为第二个循环输入该项目时,就会出现问题。例如,将:牛奶,5 - 鸡蛋,3 - 面包,2 放入第一个循环中,然后在第二个循环中仅包含牛奶和鸡蛋会导致错误:

Traceback (most recent call last):
File "V:\Downloads\grocery list.py", line 24, in <module>
value = item[key] * slist[key]
KeyError: 'Bread'

我可以采取什么措施来防止这种情况发生?

最佳答案

而不是循环

for key in item

你应该这样做

for key in slist

因为 item 包含商店中的所有商品,而 slist 仅包含已购买的商品。顺便说一下,slist 是一个不好的名字,它是一个字典,而不是一个列表。

调整代码的演示:

enter item: Milk
enter price: 5
enter item: Eggs
enter price: 3
enter item: Bread
enter price: 2
enter item: done
How much do you want of everything?
Item name: Milk
How many: 2
Item name: Eggs
How many: 1
Item name: done
13.0

关于python - 更多问题 'simple' 杂货 list ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53215499/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com