Python条件if语句失败

时间:2013-07-23 01:27:30

标签: python if-statement

我正在通过一个初学者python教程,我正在尝试做一些比教程要求更多条件的选项

elif option == "2":
    print "Choose a number for opt 2"
    var_in = raw_input("> ")

    if  0 < var_in < 5 or 1 <= var_in < 5:
        print "between 1-5"
    elif var_in == "0": #works
        print "Zero"
    else:
        print "Greater than 5!" #works

如果我为var_in输入0以外的任何内容,我会收到消息“大于5!”。

我也尝试过使用:

elif option == "2":
    print "Choose a number for opt 2"
    var_in = raw_input("> ")

    if  var_in in range(1, 5):
        print "between 1-5"
    elif var_in == "0": #works
        print "Zero"
    else:
        print "Greater than 5!" #works

与上述结果相同。

非常感谢任何帮助。谢谢!

2 个答案:

答案 0 :(得分:1)

var_in是一个字符串,而不是整数。你应该这样做:

try:
    var_in = int(raw_input("> "))
except:
    print "Incorrect input."
else:
    if  0 < var_in <= 5 :
        print "between 1-5"
    elif var_in == 0: #works
        print "Zero"
    else:
        print "Greater than 5!" #works

答案 1 :(得分:1)

raw_input返回一个字符串。你不能有意义地将字符串与数字进行比较; Python 2将给你一个毫无意义的结果,Python 3将TypeError。在进行比较之前将其变为int

user_input = int(raw_input('> '))