字典:1 个输入产生 2 个输出

问题描述 投票:0回答:3

我对 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])
python cs50
3个回答
0
投票

您正在使用“in”运算符,因此当您输入“Taco”时预计会返回两个输出。 如果输入字符串存在于给定字符串中,“in”运算符返回 true。如果您想从映射中检索给定输入字符串的值,请使用相等运算符。


0
投票

问题出现在你的for循环中,因为你已经明确地说“for i in food”,这意味着当你输入“taco”时,taco在两个键中找到,即“Baja Taco”和“Taco”,因此循环执行两个乘以菜单["Taco"] 的一个,乘以菜单["Baja Taco"] 的另一个,这就是为什么它会给出两个结果。因为循环对于两个实例都是正确的。


0
投票

您必须在程序末尾添加“中断”指令。否则,当达到所述食物时,循环继续运行

© www.soinside.com 2019 - 2024. All rights reserved.