我对 python 和编程都很陌生,我正在解决这个问题,每当我输入“Taco”时,我都会得到 4.25 和 3.00 的输出。
我认为问题是由于有两个相似的项目“Baja Taco”和“Taco”引起的,我不明白的是,当我只满足一个输出时,它如何能够打印出两个输出。
期待了解我哪里出错了!
menu = {
"Baja Taco": 4.25,
"Burrito": 7.50,
"Bowl": 8.50,
"Nachos": 11.00,
"Quesadilla": 8.50,
"Super Burrito": 8.50,
"Super Quesadilla": 9.50,
"Taco": 3.00,
"Tortilla Salad": 8.00
}
food = input("Item: ")
for i in menu:
if food in i:
print(menu[i])
您正在使用“in”运算符,因此当您输入“Taco”时预计会返回两个输出。 如果输入字符串存在于给定字符串中,“in”运算符返回 true。如果您想从映射中检索给定输入字符串的值,请使用相等运算符。
问题出现在你的for循环中,因为你已经明确地说“for i in food”,这意味着当你输入“taco”时,taco在两个键中找到,即“Baja Taco”和“Taco”,因此循环执行两个乘以菜单["Taco"] 的一个,乘以菜单["Baja Taco"] 的另一个,这就是为什么它会给出两个结果。因为循环对于两个实例都是正确的。
您必须在程序末尾添加“中断”指令。否则,当达到所述食物时,循环继续运行