Быстрый вопрос о том, как написать for-l oop, чтобы дать мне текущую стоимость (то есть дисконтированную стоимость) всех купонов. Мой код выглядит следующим образом:
я хочу, чтобы for-l oop выполнял операцию
c[0]*np.exp(-r*1)
c[1]*np.exp(-r*2)
c[2]*np.exp(-r*3)
и т. Д. (Число раз -r всегда является индексом +1) , я хочу, чтобы сумма всех значений, например, используя x + = итерацию for-l oop
c=[7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5]
r=0.071
PVx=0
for i in c:
print(i)
year = c.index(i)+1
print(year)
PV=c[i]*np.exp(-r*year)
PVx += PV
print(PVx)
Каким-то образом я получаю код ошибки «TypeError: индексы списка должны быть целыми числами или ломтиками, а не float» для моей PV переменной. По сути, я хочу, чтобы каждое значение в моем списке было умножено на np.exp (-r * индексная позиция +1), а затем получить сумму: S
РЕДАКТИРОВАТЬ:
My новый код
import numpy as np
c=[7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5]
r=0.071
PVx=0
for i in c:
year = c.index(i)+1
print(year)
PV=i*np.exp(-r*year)
PVx += PV
print(PVx)
продолжает печатать год как 1 (то есть c .index (i) дает 0 +1 = 1), в то время как я ожидаю, что go с 1 до 7. I угадай, что моя проблема прямо сейчас.