比较字典中的值与输入的数字

  • 本文关键字:数字 字典 比较 python
  • 更新时间 :
  • 英文 :


我有一本如下的字典。

stock = {"samosa":5, "Kebab":5, "Shawarma":7}

我也有输入文本输入值如下

food = input{"What was the food delivered: "}数量为

qty = input{" Enter the quantity of the order: "}

所以我的比较是检查和比较数量和字典中股票的价值。如果有人订购了更多,他们会得到一条消息,他们已经订购了更多。我已经尝试过用这种方式来实现它。

if food in stock:
stock[food] -= int(qty)
print(stock)
elif int(qty) > stock[food]:
print("There is no enough stock")

然而,它并没有像预期的那样工作。

如果食品有库存,请先检查是否可以减去数量:

if food in stock:
if int(qty) > stock[food]:
print("There is no enough stock")
else:
stock[food] -= int(qty)
print(stock)

重要的事情先说:

input函数. 您必须使用()来调用该函数。如果您执行input{...},将引发错误。

food = input("What was the food delivered: ") 
qty = input(" Enter the quantity of the order: ")

然后,正如@Mark在评论中所说,您正在检查food是否在stock中。并且,elif语句只执行如果if求值为False。因此,if food in stock求值为False,键在字典中不存在。然后在elif:elif int(qty) > stock[food]:中获取key:value对,从而引发KeyError

下面是更正后的代码:

if food in stock:

if int(qty) < stock[food]:
stock[food] -= int(qty)
print(stock)
else:
print("There is no enough stock")

您的检查顺序不对。检查完食品是否有库存后,你应该检查一下数量。

if food in stock:
if int(qty) > stock[food]:
print("There is no enough stock")
else:
stock[food] -= int(qty)
print(stock)

相关内容

  • 没有找到相关文章

最新更新