0

我正在学习初学者 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

结果与上述相同。

任何帮助将不胜感激。谢谢!

4

2 回答 2

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
于 2013-07-23T01:30:31.933 回答
1

raw_input返回一个字符串。您无法有意义地将字符串与数字进行比较;Python 2 会给你一个毫无意义的结果,而 Python 3 会TypeError. int在进行比较之前将其转换为:

user_input = int(raw_input('> '))
于 2013-07-23T01:30:34.453 回答