如果声明数字在一个范围内

时间:2013-01-09 21:52:37

标签: python if-statement

我无法调整它,因为它只响应1到100之间的值。我知道它的简单,但通过搜索找不到任何东西。

while True:
    Mynumber = raw_input('Enter number of random points')
    if Mynumber == '0 < 100':
            print 'number choosen'
            Mynumber = int(Mynumber)
            break

2 个答案:

答案 0 :(得分:12)

if 1 <= my_number <= 100:

或者,因为您从raw_input获取并且必须首先从未知字符串转换为int

try:
    my_number = int(raw_number)
except ValueError:
    print "%s not an integer value." % raw_number
else:
    if 1 <= raw_number <= 100:

虽然进一步分析,看起来你正试图这样做:

base_prompt = 'Enter number of random points'
user_input = raw_input(base_prompt)
while True:
    try:
        input_number = int(user_input)
    except ValueError:
        user_input = raw_input('%s not an interger\n%s' % (user_input, base_prompt))
    else:
        if 1 <= input_number <= 100:
            break
        else:
            user_input = raw_input('%d out of range (1 to 100)\n%s' % (input_number, base_prompt))

答案 1 :(得分:0)

如果您使用的是Python 3.x,则以下内容也适用:

if int(my_number) in range(1, 101):
    # ...

需要注意的是,范围的终点是独占的,因此它可能比链式运算符的读取更不直观。