我正在制作一个类组计算器并且一直在尝试生成random.sample(range(1,16), classNumber)
但是当我运行代码时,它似乎仍然包含样本中的数字0。
这是我的代码:
import random
classNumber = int(input('Please enter the number of people in your class:'))
groupNumber = int(input('Please enter the number of groups:'))
sum1 = classNumber // groupNumber
if (sum1 * groupNumber) == classNumber:
for i in range(1,sum1+1):
print (groupNumber)
random.seed(1)
sample = random.sample(range(classNumber+1), classNumber+1)
print (sample)
count = 0
for i in range(1,classNumber+1):
count += 1
print(i,'- ',sample[count])
else:
numbersInGroup = classNumber - (groupNumber * sum1)
for i in range(1,sum1+1):
print(groupNumber)
print(numbersInGroup)
即使这样也会返回错误。
import random
s = random.sample(range(1,16),16)
print (s)
答案 0 :(得分:0)
sample = random.sample(range(classNumber+1), classNumber+1)
这是你的问题。这个样本毫无意义。首先,你没有在范围上设置下限,所以它默认为0而不是1.其次,如果你只是增加下限,你将尝试从范围中绘制的数字超过实际范围内的数字。 。您的代码中没有任何部分显示random.sample(range(1,16), classNumber)
。是这条线应该说的吗?
答案 1 :(得分:0)
范围函数至少需要两个参数,即起始值(第一个值)和停止值(第二个值)。停止值不是最后一个输出值,而是值是函数停止返回值。 范围(1,3)将给你1,2,所以你的函数必须是范围(第一个值,最后一个值+ 1) http://docs.python.org/2/library/functions.html#range
答案 2 :(得分:0)
您可以使用numpy模块:
import numpy as np
np.random.randint(1,16,6)
这里,关于包容性和独占随机数组: http://docs.scipy.org/doc/numpy/reference/routines.random.html