使用 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 语句。如果您需要更多解释,请告诉我
如果我 运行 在 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 语句。如果您需要更多解释,请告诉我