2 回答
TA贡献1816条经验 获得超6个赞
我的新代码[...]继续将年份打印为1(意味着c.index(i)产生0 + 1 = 1),而我希望它从1到7。
list.index(i)返回出现的第一个索引,如果不在列表中,则返回 -1。ii
NumPy 解决方案:
import numpy as np
r = 0.071
arr_1 = np.full(shape=7, fill_value=7.5)
print(arr_1)
arr_2 = np.exp(-r * np.arange(1, arr_1.shape[0] + 1))
print(arr_2)
arr_3 = arr_1 * arr_2
print(arr_3)
print(arr_3.sum())
输出:
[7.5 7.5 7.5 7.5 7.5 7.5 7.5]
[0.93146189 0.86762126 0.80815614 0.75276664 0.70117344 0.65311634
0.60835298]
[6.98596419 6.50715942 6.06117103 5.64574984 5.25880082 4.89837257
4.56264738]
39.919865247574606
循环解决方案:
import math
from pprint import pprint
r = 0.071
vals = [7.5 * math.exp(-r * i) for i in range(1, 8)]
pprint(vals)
pprint(sum(vals))
输出:
[6.985964190956941,
6.507159423644355,
6.0611710291236625,
5.645749835296472,
5.258800824064293,
4.898372565905067,
4.562647378583822]
39.919865247574606
我不完全确定我是否理解你想做什么,所以如果我错过了什么,请告诉我。
TA贡献1851条经验 获得超4个赞
错误解释了这个问题:“”浮点是一个带有小数的数字,即不是整数。对于 exampe 7.5.那是你的问题。TypeError: list indices must be integers or slices, not float
- 2 回答
- 0 关注
- 68 浏览
添加回答
举报