除了ValueError之外,为什么不触发?

时间:2012-02-09 23:27:46

标签: python python-2.7

我无法弄清楚为什么我的except子句不会触发以下内容:

while True:
    userlow = int(raw_input('num please'))
    userhigh = int(raw_input('num please'))
    loopmult = int(raw_input('enter a num please'))
    except ValueError:
        print 'ERROR: Integer only'
    if userlow < userhigh: break

这是我的代码的摘录,我想知道为什么除了ValueError不起作用。我得到的错误是语法无效,只有在我将其添加到我的代码后才出现。它没有突出我的问题所在,但如果你能帮助那就太好了。我使用的是Python 2.7

3 个答案:

答案 0 :(得分:3)

while True:
    try:
        userlow = int(raw_input('num please'))
        userhigh = int(raw_input('num please'))
        loopmult = int(raw_input('enter a num please'))
        if userlow < userhigh: 
            break
    except ValueError:
        print 'ERROR: Integer only'

http://docs.python.org/tutorial/errors.html#handling-exceptions

答案 1 :(得分:3)

它用作try...except语句。您没有try:

while True:
    try:
        userlow = int(raw_input('num please'))
       userhigh = int(raw_input('num please'))
       loopmult = int(raw_input('enter a num please'))
    except ValueError:
        print 'ERROR: Integer only'
    if userlow < userhigh: break

详细了解from the documentation

答案 2 :(得分:-1)

There is no try”:-)字面意思在上面的代码中。只是修复它。