Python中如何使用函数返回列表?一维粒子运动绘图报错解决
一维随机粒子运动代码修正方案
你的代码存在两个问题,导致运行报错和功能异常:
- 变量未定义错误:函数
libreparcoursmoyen内部的列表L是局部变量,外部代码直接调用plt.plot(L)时无法识别它。必须先调用函数并将返回值赋值给外部变量L。 random.choice参数错误:rd.choice()需要传入一个可迭代对象(比如列表),不能直接传两个单独的数值1和-1。
修正后的完整代码如下:
import random as rd import matplotlib.pyplot as plt def libreparcoursmoyen(x_0, pas): L = [x_0] x = x_0 for k in range(pas): # 修正choice的参数为列表 x = x + rd.choice([1, -1]) L.append(x) return L # 调用函数,传入初始位置和步数,将返回值赋值给L L = libreparcoursmoyen(x_0=0, pas=1000) # 绘制运动轨迹 plt.plot(L) # 显示图像 plt.show()
修正说明:
- 调用
libreparcoursmoyen函数时,你可以根据需求调整x_0(初始位置)和pas(运动步数)的数值。 - 添加
plt.show()确保图像窗口正常弹出,否则可能无法看到绘制的轨迹。
内容的提问来源于stack exchange,提问作者Aiham El ofairi
相关产品推荐
相关产品推荐

