问题描述
我想产生一个n个正负两个随机整数的数组。例如,如果我输入4,它将产生[1,-2,-4,3]
import stdio
import sys
import random
n = int(input(sys.argv[0]))
y = n * -1
randomlist = []
for i in range(0,n):
arr = random.randint(n,y)
randomlist.append(arr)
print(randomlist)
sum = 0
for i in randomlist:
sum += i
avg = sum/x
print("Average is",avg)
print("Max value is",max(randomlist))
print("Min value is",min(randomlist))
解决方法
改为使用randrange函数
import random
random.randrange(y,n) # line 11
它应该满足您的需要,并将您的代码行19编辑为avg = sum/len(randomlist)
请参阅有关randint函数的Python文档。
https://docs.python.org/3/library/random.html#functions-for-integers
random.randint(a,b)
返回一个随机整数N,使得a
首先,您有 a 和 b 参数,然后是 a b 。在您的情况下, a 大于 b 。
在您的代码中,一旦 y n :
arr = random.randint(y,n)
第二位,x未定义。但是,正如您想要的平均值一样,请除以 n ,例如avg = sum/n
这将为您提供所需的信息:
import random
import sys
n = int(input(sys.argv[0]))
y = n * -1
rand_list = random.sample(range(y,n),n)
您可以继续使用平均值,最大值和最小值
print('Mean of list: ',sum(rand_list)/len(rand_list))
print('Max value: ',max(rand_list))
print('Min value: ',min(rand_list))