for-loop - 模拟 for 循环
问题描述
我正在尝试模拟以下随机游走方程:
但是,当我运行我的代码时,我无法附加结果。我收到以下错误:
first_term = results[i] TypeError: 'NoneType' 对象不可下标
有替代方法吗?
import numpy as np
import pandas as pd
def simulation(x0, T, sigma, p):
results = [x0]
prob_e = [p, (1-p)]
values_e = [1, -1]
for i in range(T):
first_term = results[i]
error = np.random.choice(values_e, 1, prob_e)
second_term = sigma * error
result = first_term + second_term
results = results.append(result)
return results
print(simulation(10, 120, 0.6, 0.5))
解决方案
在循环的最后一行,它应该是 justresults.append(result)
而不是results = results.append(result)
。results
是一个列表对象,append
函数修改该对象,返回None
推荐阅读
- c++ - 从 throw 表达式中抛出异常
- django - 配置文件模型的 Django UpdateView,还包括一个用户表单
- .net - 当我在外部单击时闪烁的对话框
- angular - 为什么我不能在反应式表单中使用带有基于对象的选项的选择元素?我究竟做错了什么?
- swift - 当数据从 API 更改时如何发送推送通知
- python - Python - 无法使用 selenium chromewebdriver 下载文件 - “失败 - 下载错误”
- unity3d - 如何验证触发器没有接触任何东西(Unity 2D)
- python - 使用池附加到数组
- macos - 如何绕过索引错误或让脚本再次运行?
- flutter - 如何将变量传递给 StatefulWidget:此类被标记为“@immutable”