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生成给定范围内的数字。

返回一个随机整数x,使得a <= x <= b。

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 回答