2016-04-10 81 views
-3

我正在編寫一個代碼,按類別對學生進行排序,因此稍後輸入的信息將單獨存儲。這裏是我的代碼:爲什麼我的代碼無法正常工作? - Python 3

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在所有的變化,例如,資金,無大寫,但它是太長,不適合的圖片。

我是一個初學者,我可能做的事情非常愚蠢。

+3

請包括有問題的相關代碼(和輸出)。您可以通過將代碼塊預先加上4個空格來很好地格式化它。 –

+0

對不起,我忘了圖像鏈接,已編輯問題 – Gordon

+2

請勿將代碼張貼爲圖像。 [編輯]你的問題,並添加代碼*作爲代碼*。 –

回答

1

的條件:

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

不能永遠是假的,如果classchoice == "class 1"那麼第一個條件將是真正的使整個事情將是真,或者如果classchoice == "Class 1"那麼第二個條件將真正使整個聲明是事實,你要使用,而不是

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

這樣,如果它不是的選擇的任何它將執行爲真,或者更好的使用in操作:

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

想想a or b or c評估爲。如果aFalseb,如果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塊。

相關問題