Python如何让函数重复执行m次?实现生成随机数算均值并多次重复的需求
代码修改方案
问题核心原因
- 随机数组仅在函数外生成了1次,函数运行时没有每次生成新的随机样本
- 函数内的循环逻辑错误,且首次循环就执行
return直接终止函数,无法完成m次重复 - 没有设置容器存储每次的均值结果,只能得到单个返回值
修改后的代码
import numpy as np import matplotlib.pyplot as plt # 如果你后续不需要用到Python标准库的random功能,可以删掉上面的import random语句 def myFunction(n,m): mean_list = [] # 存储每次计算的均值 for _ in range(m): # 重复执行m次 x = np.random.random(n) # 每次都生成新的n个0-1随机浮点数 current_mean = np.mean(x) mean_list.append(current_mean) return mean_list # 测试:生成5个随机数算均值,重复10次 all_means = myFunction(5,10) print(all_means) # 后续绘制直方图直接用生成的均值列表即可 plt.hist(all_means, bins=5, edgecolor='black') plt.show()
修改说明
- 新增
mean_list列表,用来存储每一轮计算得到的均值,最终返回整个列表,方便后续绘制直方图 - 循环改为遍历
range(m),保证执行次数正好是传入的m次 - 随机数组的生成移到了循环内部,每次循环都会生成新的n个随机数,保证每一轮的样本都是独立的
- 移除了函数外无意义的随机数组生成和均值打印代码,所有逻辑收敛到函数内部
内容的提问来源于stack exchange,提问作者Leonie Mai
相关产品推荐
相关产品推荐

