如果语句在使用OR时始终运行

时间:2017-08-17 21:44:05

标签: python python-3.6

如果我在if语句中使用'或'来运行它,那么无论我为输入提供什么名称都无关紧要,一切都会使函数运行。如果我删除了或者if语句运行并且elif和else被忽略。

   names = ['Luke', 'James', 'Bob', 'Rob', 'Vincent']
    emp_name = input("What is your name?")

    def employees():
        for name in names:
            if name == 'Luke':
                print(name, '- is the best')
                continue
            if name == 'Vincent':
                print(name, '- is insane')
                continue
            print(name, '- is okay')


    if emp_name.lower() == "luke e. hayes" or "luke":
        employees()
    elif emp_name.lower() != "luke e. hayes" or "luke":
        print("Get out")
    else:
        print("Error")

1 个答案:

答案 0 :(得分:0)

问题是你的if语句,你实际上正在评估名字==" luke e.hayes"或者" luke" 。 "路"因为它有一个值,所以总是会评估为true。尝试

if emp_name.lower() == "luke e. hayes" or emp_name.lower() == "luke":

您将在下一行遇到同样的问题,该问题应转换为

 elif emp_name.lower() != "luke e. hayes" and emp_name.lower() !="luke":

第二个应该打印无论什么,你会想在那里使用和声明。如果您需要更多解释,请告诉我