我试图在下面运行我的程序,当函数getRandom()被调用时,它应该生成9个随机数并输出它们。但是,当我尝试运行时,我会收到一个在赋值之前引用的错误局部变量'num‘。
Import random as rd
myList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
def getRandom():
for x in range(9):
g = rd.choice(myList)
num = num + g
return num
print(getRandom())提前谢谢你
发布于 2022-08-12 03:57:28
您必须先声明变量。
import random as rd
myList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
def getRandom():
num = [] # Declare the num variable.
for x in range(9):
g = rd.choice(myList)
num.append(g)
return num
print(getRandom())发布于 2022-08-12 04:02:27
这是因为您正在对前面没有定义的变量进行操作。如果您希望将列表作为输出,请执行如下操作。
import random as rd
myList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
def getRandom():
num=[]
for x in range(9):
g = rd.choice(myList)
num.append(g)
return num
print(getRandom())发布于 2022-08-12 04:03:49
实际上,这里有一些错误(不要挑剔“导入”中的“I”被大写)
,
num = num + g显然是错的。您正在尝试将g添加到尚不存在的东西中。如果要使用这种声明num的方法,则必须先声明num变量(例如,num = 0),然后再添加.。
即使您没有此错误,
[1, 9, 2, 6, 7, 3, 4, 8, 0, 1]。但是,目前您正在该函数中生成9个num值,然后只返回最后一个值。例如,如果我的预期输出是我前面列出的列表,那么您将只输出1.下面是一个可以工作的程序的示例:
import random as rd
from typing import List
def getRandom() -> List[int]:
nums = []
for x in range(9):
num = rd.randint(0, 9)
nums.append(num)
return nums
print(getRandom())注意:我使用了上面的rd.randint(),而不是您的方法,这是在一定范围内生成随机整数的一种更简单的方法。
https://stackoverflow.com/questions/73329049
复制相似问题