2015-11-17 5 views
-4
def testNUM(a): 
    isNum == False 
    while (isNum == False): 
     try: 
      int(a) 
     except ValueError: 
      a = raw_input("try again>>") 
      isNum = False 
     except not ValueError: 
      isNum = True 

Я знаю, что except not ValuError: является неправильным. Мой вопрос заключается в том, как сделать оператор «if no value error».
Другими словами, сделайте цикл до тех пор, пока raw_input не станет равным числу.Как петля до тех пор, пока вход не будет равен числу?

+3

Что означает название имеет отношение к этому вопросу? –

+2

Просто удалите второй оператор 'except' и замените его на инструкцию' else': см., Например, https://docs.python.org/2/tutorial/errors.html – DilithiumMatrix

ответ

0

Очевидно, что у нас есть только часть вашего кода.

Что вы действительно хотите использовать, это синтаксис try:except:else:.

isNum = False # I'm assuming you have isNum for a reason that I can't see in your code 
while not isNum: # tests isNum; this loop won't run if isNum... isInt might be more accurate 
    a = raw_input("whatever") 
    try: # try something 
     int(a) 
    except: # if an exception is raised in "try" 
     pass 
    else: # if no exception is raised in "try" 
     isNum = True 
+0

Пожалуйста, подумайте над редактированием сообщения, чтобы добавить больше объяснений о том, что делает ваш код, и почему он решит проблему. Ответ, который в основном содержит только код (даже если он работает), обычно не помогает OP понять их проблему. Обратите внимание, что это также слишком многословное решение, вы должны взглянуть на дубликат, связанный выше. – SuperBiasedMan

0

try...except не нравится if...then. Напишите код, если не будет никаких ошибок и добавить except блоков для решения каких-либо ошибок, которые возникают:

def testNUM(a): 
     isNum == False 
     while (isNum == False): 
      try: 
       int(a) 
       isNum = True 
      except ValueError: 
       a = raw_input("try again>>")