为什么不让这些if语句在此代码中起作用? python餐厅选择器

时间:2018-09-24 23:51:40

标签: python-3.x

我必须制定一个程序,询问人们是否素食,无素食或无麸质,然后使用该信息列出他们可以去的餐馆。我在使用if语句时遇到麻烦,因为该代码将执行,并且您可以对问题输入是或否,但不会打印您可以去的餐馆的选择。请帮忙。

y=True
n=False

vegetarian=input("Is anyone in your party vegetarian? (y/n)")

vegan=input("Is anyone in your party vegan? (y/n)")

glutenfree=input("Is anyone in your party gluten-free? (y/n)")

print("here are your restaurant choices")

if vegetarian==False and vegan==False and glutenfree==False:
    print("Joe's Gourmet Burgers")
if vegetarian==True and vegan==False and glutenfree==True:
    print("Main Street Pizaa Company")
if vegetarian==True and vegan==True and glutenfree==True:
    print("Corner Cafe")
    print("The Chef's Kitchen")
if vegetarian==True and vegan==False and glutenfree==False:
    print("Mama's Fine Italian")

2 个答案:

答案 0 :(得分:0)

键入y / n时,输入将返回该字符串,而不仅仅是TrueFalse。您需要比较用户键入的y以获得布尔值。为了确保您同时接受大写和小写的y / n以及酸性的空格,请对输入进行剥离和小写。

您也不需要将变量与True或False比较,只需使用变量本身或not运算符即可。最终代码:

vegetarian=input("Is anyone in your party vegetarian? (y/n)").strip().lower()=='y'

vegan=input("Is anyone in your party vegan? (y/n)").strip().lower()=='y'

glutenfree=input("Is anyone in your party gluten-free? (y/n)").strip().lower()=='y'

print("here are your restaurant choices")

if not vegetarian and not vegan and not glutenfree:
    print("Joe's Gourmet Burgers")
if vegetarian and not vegan and glutenfree:
    print("Main Street Pizaa Company")
if vegetarian and vegan and glutenfree:
    print("Corner Cafe")
    print("The Chef's Kitchen")
if vegetarian and not vegan and not glutenfree:
    print("Mama's Fine Italian")

答案 1 :(得分:0)

input函数返回字符串:

  

然后函数从输入中读取一行,并将其转换为字符串   (剥离尾随的换行符),然后返回。

变量vegetarianveganglutenfree将包含"y""n"字符串。但是,您将它们与布尔值TrueFalse进行比较,因此所有这些条件都将失败。

一种解决方案是将它们与"y""n"进行比较。

vegetarian=input("Is anyone in your party vegetarian? (y/n)")

vegan=input("Is anyone in your party vegan? (y/n)")

glutenfree=input("Is anyone in your party gluten-free? (y/n)")

print("here are your restaurant choices")

if vegetarian=="n" and vegan=="n" and glutenfree=="n":
    print("Joe's Gourmet Burgers")
if vegetarian=="y" and vegan=="n" and glutenfree=="y":
    print("Main Street Pizaa Company")
if vegetarian=="y" and vegan=="y" and glutenfree=="y":
    print("Corner Cafe")
    print("The Chef's Kitchen")
if vegetarian=="y" and vegan=="n" and glutenfree=="n":
    print("Mama's Fine Italian")