Python输入与字符串的内容不匹配

2024-07-03 07:06:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了两个字符串:ediblesvz。我希望创建一个循环,要求用户1)输入食物2)告知我是否对食物过敏。如果用户从edibles字符串中键入一个名称,他们就会被告知过敏。如果用户从vz字符串中键入名称,则不存在过敏。我还包括一个选项,用于不包含在任何字符串中的食物项。你知道吗

目前,我的代码单独处理这些项。我需要帮助来找出如何将输入与字符串匹配,而不需要为每个项添加elif行。你知道吗

edibles = ["ham", "jachnun", "tiger", "ostrich head","eggs","nuts", "spam"]
vz = ["gefilte fish", "liver", "chrain", "sushi", "cholent"]
edv = vz + edibles

while True:
    sval = input('Enter a food: ')
    if sval == "spam":
        print("I'm allergic to: " + sval + " Get it away from me")
    elif sval == "jachnun":
        print("I'm allergic to: " + sval + " Get it away from me")
    elif sval == "gefilte fish":
        print("I am not allergic to " + sval)
    elif sval == "done":
        break
    else:
        print(sval + " is an unfamiliar item" )
print('Thank you for respecting my allergies')

Tags: to字符串用户名称键入spam食物print
1条回答
网友
1楼 · 发布于 2024-07-03 07:06:34

我不知道你为什么需要edv来做。我们也可以使用一些数据帧来解决这个问题。这里有一个解决方案,你要求摆脱多余的elif

while True:
    sval = input('Enter a food: ')
    if sval in edibles:
        print("I'm allergic to: " + sval + " Get it away from me")
    elif sval in vz:
        print("I am not allergic to " + sval)
    elif sval == "done":
        break
    else:
        print(sval + " is an unfamiliar item" )

相关问题 更多 >