2016-03-01 105 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

是,对不起,如此粗鲁。并感谢您编辑我的评论。 –