2016-03-01 96 views
-3
classname = input("classname = ") 
while classname > 4: 
    try: 
     classname = int(input(print("Classname = ") 
    except ValueError: 
     print("Invalid, classname must be 1,2,3") 

當類名是上述4但它不打印的錯誤信息重複的代碼?Python異常沒有顯示錯誤

+1

您的代碼是沒有做什麼,你認爲它應該做的。而且,除非你認爲它應該工作的方式不起作用。 – idjaw

+0

此代碼片段有語法錯誤,請驗證並粘貼正確的代碼 – AlokThakur

+0

,因爲您不會引發ValueError,但您不會訪問''except''。除了丟失的括號和循環開始時丟失的轉換爲整數。 – MSeifert

回答

0

我想你想要做的事,如:

>>> def f(): 
     while True: 
      try: 
       c = int(input('Classname = ')) 
       if c > 4: 
        raise ValueError 
       else: 
        print('Valid Classname') 
        break 
      except ValueError: 
       print('Invalid Classname') 


>>> f() 
Classname = 5 
Invalid Classname 
Classname = 6 
Invalid Classname 
Classname = 4 
Valid Classname 
-3

該代碼是邏輯上不正確。

應該明顯看至少有點像這樣:

def askclassname(): 
    global classname 
    classname = int(input("Classname = ")) 
    if classname > 3: 
     print("Invalid, classname must be 1,2,3") 
     askclassname 
askclassname 
+0

沒有必要用這些形容詞來處理OP,記住這個地方聚集世界各地的人們用不同的cutlures ...謝謝 –

+0

是,對不起,如此粗魯。並感謝您編輯我的評論。 –