Python生成含7个0-9随机数的列表缺参数报错如何解决
问题原因
- 你在定义
RandomNumbers函数时指定了必填位置参数Number,但调用时没有传入参数,直接触发了对应的TypeError - 存在变量名冲突:你把全局列表命名为
Number,同时函数参数也用了Number,代码里还尝试用Number.randint()调用随机方法——正常应该调用random.randint(),变量名重复导致逻辑完全混乱 - 全局列表的使用方式不合理,每次调用函数如果复用全局列表会导致之前生成的结果累积,不符合「每次调用生成新的7位随机数列表」的需求
修正后可直接运行的代码
import random def RandomNumbers(): # 每次调用函数内部新建空列表,避免和外部变量冲突、避免结果累积 number_list = [] for _ in range(7): x = random.randint(0,9) number_list.append(x) print(number_list) # 如果需要后续使用这个列表可以保留return语句 return number_list RandomNumbers()
调整说明
- 去掉了函数的强制入参,满足你不需要传参调用的需求
- 修正变量名冲突:随机数生成调用标准库
random.randint(),内部存储结果的列表单独命名为number_list,不和其他变量重名 - 列表在函数内部初始化,每次调用都会生成全新的列表,不会出现多次调用结果叠加的问题
- 如果不需要打印只需要拿到结果,去掉print语句直接用返回值即可:
res = RandomNumbers()就能拿到生成的列表
内容的提问来源于stack exchange,提问作者Abisha Bindar
相关产品推荐
相关产品推荐

