循环回答Python

时间:2015-03-01 20:39:44

标签: python loops random

我有一个答案,我想循环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:大于人口的样本
我有什么需要填充?我需要另一个变量吗? 提前致谢。 关心托马斯

4 个答案:

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