0

これは私の現在のコードです:

import random

while True:
    try:
        num   = int(input("Enter the total number of digits you want to generate:"))
        upper = int(input("Enter your highest number:"))
        lower = int(input("Enter your lowest number:"))

        if upper < 1 or lower < 1 or upper <= lower:
            print ("Sorry, invalid. Make sure your upper bound is higher than lower bound, make sure all numbers are integers greater than 0.")
            continue

        if num < 1:
            print ("Sorry, invalid. Try again.")
            continue

        **mylist = [0] * num
        for x in range (lower, upper):**

このすぐ上の部分は、先に進む方法がよくわからない部分です。ユーザーが入力した数値に応じて、ユーザーがここに表示されるリストに入力した上限と下限の範囲内で乱数を生成したいと考えています。誰かがこれを案内してくれますか? ありがとう!

except:
    print ("Sorry, invalid. Try again.")

else:
    print ("Thank you.")
    break
4

4 に答える 4

2

**を使用して行を次のように置き換えるとrandom.randint(lower, upper)、必要なリストが表示されます。

mylist = []
for _ in range(num):
    mylist.append(random.randint(lower, upper))

print mylist

リスト内包表記を使用してこれを行うこともできます。

mylist = [random.randint(lower, upper) for _ in range(num)]
print mylist
于 2012-12-11T00:43:39.353 に答える
1

おそらく必要です:

print [random.randint(lower, upper) for n in range(num)] 

これは、最小の下限と最大の上限 (包括的) を含む num ランダム整数のリストを表示します。

于 2012-12-11T00:48:57.897 に答える
0

上限と下限の間の数値のランダムなサブセットが必要な場合は、次を使用できます。

random.sample(num, xrange(lower, upper + 1))

http://docs.python.org/2/library/random.html#random.sample

しかし、重複を可能にしたかったと思います。その場合は、他の回答のいずれかを使用してください。

于 2012-12-11T00:36:53.630 に答える
0

を使用しrandintて、指定された範囲の数値を生成できます。

a <= x <= bとなるランダムな整数xを返します。

import random
print random.randint(a, b)

したがって、 abの範囲でN 個の数値を生成するには

numbers = [random.randint(a, b) for i in range(N)]
print numbers
于 2012-12-11T00:38:49.497 に答える