def pv(r,n,m,f):#劉任昌函數參數r,n,m,f
p = m/r*(1 - 1/(1+r)**n)+f/(1+r)**n
return p#執行函數的結果傳回去
n=float(input('期數: '))#要計算轉為實數real nubers
m=float(input('收付: '))#浮點點float
f=float(input('終值: '))
for i in range(1,10):#迴圈
r = i*0.01
x=pv(r,n,m,f)
print('利率 ', r ,'價格 ', x)
import tkinter as tk#輸入tkinter繪圖
root = tk.Tk()
root.title('劉任昌python tkinter')
root.geometry('600x300')#寬度width改成600
canvas = tk.Canvas(root, width=600, height=300) # 加入 Canvas 畫布
canvas.pack()
x, y = 0, 0
canvas.create_line(0, 200, 500, 200, width=3,fill='black')
for x in range(1, 200):
x1 = x+1
y1 = 200 - pv(x1,n,m,f)*200
canvas.create_line(x, y, x1, y1, width=5,fill='blue')
canvas.pack()
x = x1
y = y1
root.mainloop()
蔡欣辰SPYDER PYTHON二分法
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 maxerror and gap > maxerror): if ( f>0 ): a = c else: b = c gap = b-a; print('報酬率: ', c) print('淨現值: ', f) print('迴圈次數: ', loopNumber)
https://takming123.blogspot.com/2025/06/h1-margin-0-padding-20px-0-color-000000.html
回覆刪除https://takming123.blogspot.com/2025/06/def-pvrnmfrnmf-p-mr1-11rnf1rn-return-p_9.html