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 に答える