我有一个答案,我想循环10次。
代码现在看起来像这样:
top = int(input("Please tell us the highest number in the range: "))
bottom = int(input("Tell us the lowest number in the range: "))
print("Batman picks the number",random.randint(bottom,top),"from the range between",bottom,"and",top)
这给了我答案:
请告诉我们范围内的最高数字:100
告诉我们该范围内的最低数字:10
蝙蝠侠从10到100之间选择数字57
现在我想让蝙蝠侠从该范围中挑选10个随机数。我正在考虑这个问题:
print("Batman picks the number",random.sample((bottom,top), 10),"from the range between",bottom,"and",top)
问题是我收到一条错误消息:
ValueError:大于人口的样本
我有什么需要填充?我需要另一个变量吗?
提前致谢。
关心托马斯
答案 0 :(得分:1)
您收到有关人口的错误,因为您使用的不正确。它并不期望一个较低和较高范围的元组,而是一个随机选择的元素列表。它应该像这样使用:
>>> import random
>>> random.sample(range(0, 20), 10)
[7, 4, 8, 5, 19, 1, 0, 12, 17, 11]
>>>
或将任何项目列表作为第一个变量。
答案 1 :(得分:1)
我假设你想要的是:
print("Batman picks the number",random.sample(range(bottom,top), 10),"from the range between",bottom,"and",top)
也就是说,我假设你在没有替换的情况下寻找样本。如果您想为每个号码打印一行,您可以这样做:
for number in random.sample(range(bottom,top):
print("Batman picks the number", number, 10),"from the range between",bottom,"and",top)
答案 2 :(得分:0)
我认为您需要使用xrange(底部,顶部)而不仅仅是(底部,顶部)这将填充从底部到顶部的填充,然后random.sample(xrange(底部,顶部),10)将现在能够返回从填充的元素中选择的10个随机元素的列表,使原始种群保持不变。
答案 3 :(得分:-1)
只需使用while循环:
num = 10
while num>0:
print("Batman picks the number",random.randint(bottom,top),"from the range between",bottom,"and",top)
num -= 1