如何创建ramdom数字生成器,在python中从11000生成100个数字

2024-04-20 07:15:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近刚开始编写代码,有点粗糙。我最近接到一个任务,要我创建一个数字生成器,从1到1000生成100个数字。在那之后,我需要找到列表中最小和最大数字的平均值。我一直很难找到平均值,所以如果你能帮我的话,那就太好了!你知道吗

我的代码:

import random
for i in range(100):
    y = random.randint(1, 1000)
    print(y)


def mean(values):

        length = len(values)

        total_sum = 0

        for i in range(length):
            total_sum += values[i]
        total_sum = sum(values)

        average = total_sum/length

        return average

x = [y]

n = mean(x)

print (n)

Tags: 代码in列表forrange数字randommean
3条回答

问题是生成一个随机值(y),然后将其丢弃。你知道吗

相反,您需要保留一个生成值的列表

values = []
for i in range(100):
    y = random.randint(1, 1000)
    values.append(y)

可以更简洁地写为

values = [random.randint(1, 1000) for i in range(100)]

接下来,您将复制工作:

    # this finds the sum
    total_sum = 0
    for i in range(length):
        total_sum += values[i]

    # this *also* finds the sum (and overwrites your previous result)
    total_sum = sum(values)

你可以用min()max()找到最小值和最大值,然后整个过程就变成了

values = [random.randint(1, 1000) for i in range(100)]
smallest = min(values)
largest = max(values)
average = (smallest + largest) / 2

也许你可以试试:

In [1]: import random
In [2]: random_nums = [random.randint(1,1000) for _ in xrange(100)]
In [3]: len(random_nums)
Out[3]: 100
In [4]: random_nums_mean = (max(random_nums) + min(random_nums)) / 2
In [5]: random_nums_mean
Out[5]: 500

希望有帮助。你知道吗

首先,得到你的100个数字:

nums = [random.randint(1, 1000) for _ in range(100)]

如果要包含1000,请使用1001作为range的第二个参数。你知道吗

其次,平均最小值和最大值:

avg = (max(nums) + min(nums)) / 2.

编辑:我在计算平均值时将2改为2.,这样Python将把表达式作为一个float而不是int来计算。否则Python将进行整数除法,它基本上将平均值向下舍入到最接近的int

相关问题 更多 >