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 關注
- 86 瀏覽
添加回答
舉報