在列表中创建随机数
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)
您可能想多次使用此函数,因此建议声明一个函数内的数组。
尊敬的编码员,
我对我的代码不工作有疑问。实际上,每当我调用该函数时,我都想生成随机数,这些随机数应该出现在列表中。有人可以帮我澄清这里出了什么问题以及如何继续吗?我现在有点迷茫。
这是我收到的错误信息:
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)
您可能想多次使用此函数,因此建议声明一个函数内的数组。