在列表中创建随机数

Creating random numbers in a list

尊敬的编码员,

我对我的代码不工作有疑问。实际上,每当我调用该函数时,我都想生成随机数,这些随机数应该出现在列表中。有人可以帮我澄清这里出了什么问题以及如何继续吗?我现在有点迷茫。

这是我收到的错误信息:

TypeError: RandomNumbers() missing 1 required positional` argument: 'Number'

我明白了,但我不想输入数字,它应该输出一个随机列表,由 7 个元素组成,元素在 0 到 9 之间变化。例如: [2,3,5,0,2,0,9)

import random
Number = []

def RandomNumbers(Number):
    for i in range(0,7):
        x = Number.randint(0,9)
        Number.append(x)
        print(Number)

RandomNumbers()

考虑到您已经提到您不想输入任何数字,请将您的 Python 函数声明更改为不接受任何参数 - Number 在这种情况下 - 因为它目前需要一个.

您还需要将 x = Number.randint(0,9) 替换为 x = random.randint(0,9),因为 randint 是属于 random 的方法。

这应该可以满足您的要求:

import random
Number = []

def RandomNumbers():
    for i in range(0,7):
        x = random.randint(0,9)
        Number.append(x)
    print(Number)

RandomNumbers()

输出:

[1, 7, 6, 5, 5, 7, 5]


还有一个更小、更干净的解决方案,它使用 list comprehensions:

实现与上面相同的输出
import random
Number = [random.randint(0,9) for _ in range(7)]

print(Number)

只替换最后一行代码

RandomNumbers()

RandomNumbers(ANYNUMBER)

如果没有它,您将无法调用接收对象的函数。所以你可以这样做:

import random
Number = []

def RandomNumbers():
    for i in range(0,7):
        x = random.randint(0,9)
        Number.append(x)
    return Number

print(RandomNumbers())

您必须将 Number.randint 更改为 random.randint。更正后的代码如下所示:

import random
Number = []

def RandomNumbers(Number):
    for i in range(0,7):
        x = random.randint(0,9)
        Number.append(x)
        print(Number)

RandomNumbers(Number)

输出:

[9]
[9, 1]
[9, 1, 5]
[9, 1, 5, 8]
[9, 1, 5, 8, 3]
[9, 1, 5, 8, 3, 9]
[9, 1, 5, 8, 3, 9, 2]

但是这段代码根本没有清理干净。您可以改为了解模块 numpy,它具有强大的功能,包括使用随机整数创建数组!

import random
def RandomNumbers():
    arr = []
    for i in range(0,7):
        x = random.randint(0,9)
        arr.append(x)
    return(arr)

Number = RandomNumbers()
print(Number)

使用 random.randint(0,9) 而不是 Number.randint(0,9)
您可能想多次使用此函数,因此建议声明一个函数内的数组。