使用 OR 时 If 语句始终运行

If statement always runs when useing OR

如果我 运行 在 if 语句中使用 'or',那么无论我为输入提供什么名称,一切都使函数成为 运行。如果我删除 or 然后 if 语句 运行s 和 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")

问题是你的 if 语句,你实际上是在评估 name=="luke e.hayes" 或 "luke" 。 "luke" 将始终计算为真,因为它有一个值。尝试

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

您将 运行 进入下一行的相同 eact 问题,应将其转换为

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

第二个无论如何都应该打印,你会想在那里使用一个 and 语句。如果您需要更多解释,请告诉我