这是我目前的代码:
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
答案 0 :(得分: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
答案 1 :(得分:1)
print [random.randint(lower, upper) for n in range(num)]
显示最小下限和最大上限(包括)的num个随机整数列表。
答案 2 :(得分:0)
如果您想要一个较低和较高(含)之间的数字的随机子集,您可以使用:
random.sample(num, xrange(lower, upper + 1))
http://docs.python.org/2/library/random.html#random.sample
但我认为您希望重复是可能的,在这种情况下使用其他答案之一。
答案 3 :(得分:0)
您可以使用randint
生成给定范围内的数字。
返回一个随机整数 x ,以便 a&lt; = x&lt; = b。
import random
print random.randint(a, b)
因此,要生成 a 和 b
范围内的 N 数字numbers = [random.randint(a, b) for i in range(N)]
print numbers