0

我无法将其调整为仅响应 1 到 100 之间的值。我知道它很简单,但无法通过搜索找到任何有效的东西。

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

2 回答 2

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))
于 2013-01-09T21:53:21.190 回答
0

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

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

需要注意的是,范围的终点是排他性的,因此它可能比链式运算符更不直观。

于 2013-01-09T21:56:13.873 回答