李承恩Python執行IRR

 


pmt = [0,0,0,0] #劉任昌程式設計586設定串列list
pmt[0]=float(input('躉繳金額: '))
for nper in range(1,4):
    pmt[nper] = float(input('第'+str(nper)+'期回收: '))
def npv(rate):
    y = - pmt[0]
    for j in range(1,4):
        y = y + pmt[j]/(1+rate)**j
    return y
a, b, gap, f = 0.0, 1.0, 9.0, 9.0
maxerror = 0.000001
loopNumber = 1
while (gap > maxerror and abs(f) > maxerror and loopNumber < 100):
    loopNumber+=1
    c = (a+b)/2;
    f = npv(c);
    if ( abs(f) > maxerror and gap > maxerror):
        if ( f>0 ):
            a = c
        else:
           b = c
        gap = b-a;
print('報酬率: ', c)
print('淨現值: ', f)
print('迴圈次數: ', loopNumber)
程式設計讓我學會了如何用邏輯解決問題,每一行代碼都是挑戰與學習的過程。雖然會遇到錯誤和挫折,但每次解決問題後的成就感是無比滿足的。這是一個需要耐心、思考和創造力的過程,不斷讓我成長。

留言

  1. 截圖範圍太大以致於看不到重點https://leelittle25147.blogspot.com/2025/06/pythonirr.html

    回覆刪除

張貼留言

這個網誌中的熱門文章

Word File Processing in Python(Python處理Word檔案) 李承恩

李承恩python視窗建構Tk輸入文字Entry視窗字串變數StringVar