为什么我的代码不起作用? - Python 3

时间:2016-04-10 17:31:29

标签: python

我正在编写一个代码来按班级对学生进行排序,因此稍后输入的信息将单独存储。这是我的代码:

print(" Please Select Your Class From:")
print("Class 1")
print("Class 2")
print("Class 3")
while True:
   try:
       classchoice = input("")
       if classchoice != "Class 1" or classchoice != "Class 2" or  classchoice != "Class 3":
           print("Please Choose from one of the three classes")
       else:
           print("Thank You")
           break
   except: pass

或者部分继续包括所有变体中的1,2和3类,例如,大写字母,没有大写字母,但它太长而不能适应图片。

我是初学者,我可能正在做一些非常愚蠢的事情。

2 个答案:

答案 0 :(得分:1)

条件:

if classchoice != "Class 1" or classchoice != "class 1" ...

不可能是False,如果classchoice == "class 1"那么第一个条件将为True所以整个事件将为True或如果classchoice == "Class 1"那么第二个条件将为True所以整个语句将为True ,您想使用代替

if classchoice != "Class 1" and classchoice != "class 1" ..

如果不是任何选项,它将以True形式执行,或者更好地使用in运算符:

if classchoice not in ("Class 1","class 1",...):

答案 1 :(得分:0)

考虑a or b or c评估的内容。如果aFalse,则为b,如果b也为False,则为c。在您的情况下,classChoice != "Class 1"False,因此结果为classChoice != "Class 2",即True。一种方法是。

options = ["Class 1", "Class 2", "Class 3"]
while True:
    option = input("Class ?: ")
    if option in options:
        break

对于您显示的代码,不需要try / except块。