如何在一个if语句中放入2个变量

时间:2017-12-03 12:56:52

标签: python-3.x

我不希望它打印'当我输入汤姆或姐妹时,你最喜欢的食物是什么?我把它们都放在一个if语句中,但它会保留打印“你最喜欢的食物是什么”

def question(person_name, favourite_food):
    return(person_name + ' favourite food is ' + favourite_food)

while True:
    q1 = str(input("Please enter your name:").title())
    if q1 == 'quit':
        break
    if q1 == 'Tom':
        print("My creator favourite food is fried chicken")
    if q1 == 'Sister':
        print("Her favorite food is chicken too")



    q2 =input("Please enter you favourite food:")
    if q2 == 'quit':
        break
    if 'Tom' or 'Sister' in q1:
        questions = question(q1)
        print(questions)


questions = question(q1, q2)
print(questions)

2 个答案:

答案 0 :(得分:0)

你的代码中有一个无限循环,所以它继续执行。如果您想在用户输入“Tom”或“Sister”时退出。

你应该使用: -

if q1 == "Tom" or q1 == "Sister":
   break;

或者您可以将这些放入列表中并使用“in”运算符来完成任务;像这样 -

dont_ask_list = ["Tom", "Sister"]
if q1 in dont_ask_list:
    break;

答案 1 :(得分:0)

当名称条目被转换为标题大小写时,退出将变为Quit,您需要对其进行测试。

添加了elif行,如果名称不正确则继续。

在喜欢的食物输入之后测试q1似乎是多余的,因为它已经在名字输入后进行了测试。

def question(person_name, favourite_food):
    return(person_name + ' favourite food is ' + favourite_food)

while True:
    q1 = input("Please enter your name:").title()
    if q1 == 'Quit':
        break
    elif q1 == 'Tom':
        print("My creator favourite food is fried chicken")
    elif q1 == 'Sister':
        print("Her favorite food is chicken too")
    else:
        # Show help and then continue the loop from the while statement.
        print('Choose from Quit, Tom or Sister.')
        continue

    q2 = input("Please enter you favourite food:")
    if q2 == 'Quit':
        break
    # Already tested q1 above.
    #~ if 'Tom' or 'Sister' in q1:

    questions = question(q1, q2)
    print(questions)