首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python中的全局和局部变量:创建9个随机数

python中的全局和局部变量:创建9个随机数
EN

Stack Overflow用户
提问于 2022-08-12 03:47:07
回答 3查看 51关注 0票数 -3

我试图在下面运行我的程序,当函数getRandom()被调用时,它应该生成9个随机数并输出它们。但是,当我尝试运行时,我会收到一个在赋值之前引用的错误局部变量'num‘。

代码语言:javascript
复制
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())

提前谢谢你

EN

回答 3

Stack Overflow用户

发布于 2022-08-12 03:57:28

您必须先声明变量。

代码语言:javascript
复制
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())
票数 0
EN

Stack Overflow用户

发布于 2022-08-12 04:02:27

这是因为您正在对前面没有定义的变量进行操作。如果您希望将列表作为输出,请执行如下操作。

代码语言:javascript
复制
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())
票数 0
EN

Stack Overflow用户

发布于 2022-08-12 04:03:49

实际上,这里有一些错误(不要挑剔“导入”中的“I”被大写)

  1. num = num + g显然是错的。您正在尝试将g添加到尚不存在的东西中。如果要使用这种声明num的方法,则必须先声明num变量(例如,num = 0),然后再添加.

即使您没有此错误,

  1. 也不会执行您希望它做的事情。正如您在问题中所说的,您希望生成9个随机数并输出所有随机数,例如,输出可以是列表:[1, 9, 2, 6, 7, 3, 4, 8, 0, 1]。但是,目前您正在该函数中生成9个num值,然后只返回最后一个值。例如,如果我的预期输出是我前面列出的列表,那么您将只输出1.

下面是一个可以工作的程序的示例:

代码语言:javascript
复制
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(),而不是您的方法,这是在一定范围内生成随机整数的一种更简单的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73329049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档