Python的多重比较

时间:2014-04-19 03:04:56

标签: python string validation while-loop

    shift = raw_input("Enter the shift the employee works in:  ")
    shift = shift.upper()
    print shift
    while (shift != "A" or shift != "B" or shift != "C" ):
        shift = raw_input("Invalid Input- Please Enter a, b or c:  ")
        shift = shift.upper()

我需要验证用户是否正在选择" a,b或c"我也必须使用string.upper()。 然而,即使我输入" a,A,b,B,c或C"它仍会进入while循环。我有"打印班次"确保它输入正确,确实如此。

当我只有'#34; shift!=" A""并键入" a或A"它不会进入循环。只有当我添加" B和C"它开始搞砸了。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您需要使用and代替or(因为x != 1 or x != 2始终为真):

while (shift != "A" and shift != "B" and shift != "C" ):

但你可以做得更好:

while shift not in "ABC":