最近在备考CFA,有时候经常忘记带金融计算器,而网上又没找到在线的金融计算器,因此自己用python写了一个,并且用tkinter做了个界面,主要实现的就根据4个数字,计算第五个,废话少说,上代码:

#金融计算器import pandas as pd
import numpy as np
from math import pow
import numpy_financial as npf
import tkinter as tk
import tkinter.messagebox#iy = float(input('please input I/Y')) / 100
#n = int(input('please input n:'))
#pmt = float(input('please input pmt:'))
#pv = float(input('please input pv:'))
#fv = float(input('please input fv:'))#iy收益率
#n期限
#pmt每期现金流
#pv现值
#fv终值def IY(n, pmt = 0, fv = 0, pv = 0):values = []values.append(-pv)for i in range(n):values.append(pmt)values[-1] += fviy = npf.irr(values)return round(iy, 6) * 100def calc():null_num = 0 n = E1.get()if n == '':null_num += 1elif n == '520':tk.messagebox.showinfo('熠仔', '我也爱你!')iy = E2.get()if iy == '':null_num += 1elif iy == '520':tk.messagebox.showinfo('熠仔', '我也爱你!')pmt = E3.get()if pmt == '':null_num += 1elif pmt == '520':tk.messagebox.showinfo('熠仔', '我也爱你!')pv = E4.get()if pv == '':null_num += 1elif pv == '520':tk.messagebox.showinfo('熠仔', '我也爱你!')fv = E5.get()if fv == '':null_num += 1elif fv == '520':tk.messagebox.showinfo('熠仔', '我也爱你!')if null_num > 1:tk.messagebox.showinfo('提示', '请输入其中四位')return 0if n == '': try:iy = float(iy)pmt = float(pmt)pv = float(pv)fv = float(fv)if (iy == 520 or pmt == 520 or pv == 520 or fv == 520):tk.messagebox.showinfo('熠仔', '我也爱你!')n = np.round(npf.nper(iy / 100, pmt, pv, fv), 6)E1.insert(0, n)return 1except ValueError:tk.messagebox.showinfo('提示', '请输入正确的数字')return 0if iy == '':try:n = int(n)pmt = float(pmt)pv = float(pv)fv = float(fv)iy = IY(n, pmt, fv, pv)if (n == 520 or pmt == 520 or pv == 520 or fv == 520):tk.messagebox.showinfo('熠仔', '我也爱你!')E2.insert(0, iy)return 1except ValueError:tk.messagebox.showinfo('提示', '请输入正确的数字')return 0if pmt == '':try:n = float(n)iy = float(iy)pv = float(pv)fv = float(fv)if (n == 520 or iy == 520 or pv == 520 or fv == 520):tk.messagebox.showinfo('熠仔', '我也爱你!')pmt = round(npf.pmt(iy / 100, n, pv, fv), 6)E3.insert(0, pmt)return 1except ValueError:tk.messagebox.showinfo('提示', '请输入正确的数字')return 0if pv == '':try:n = float(n)iy = float(iy)pmt = float(pmt)fv = float(fv)if (n == 520 or iy == 520 or pmt == 520 or fv == 520):tk.messagebox.showinfo('熠仔', '我也爱你!')pv = round(npf.pv(iy / 100, n, pmt, fv), 6)E4.insert(0, pv)return 1except ValueError:tk.messagebox.showinfo('提示', '请输入正确的数字')return 0if fv == '':try:n = float(n)iy = float(iy)pmt = float(pmt)pv = float(pv)fv = round(npf.fv(iy / 100, n, pmt, pv), 6)if (n == 520 or iy == 520 or pmt == 520 or pv == 520):tk.messagebox.showinfo('熠仔', '我也爱你!')E5.insert(0, fv)return 1except ValueError:tk.messagebox.showinfo('提示', '请输入正确的数字')return 0
top = tk.Tk()
top.title('熠仔计算器')
#top.geometry('280x200')
nScreenWid, nScreenHei = top.maxsize()
nCurWid = top.winfo_reqwidth()
nCurHeight = top.winfo_reqheight()
top.geometry("{}x{}{}{}".format(nCurWid, nCurHeight, nScreenWid/2 - nCurWid/2, nScreenHei/2 - nCurHeight/2))
L1 = tk.Label(top, text = 'n:').grid(row = 0)
E1 = tk.Entry(top)
E1.grid(row=0, column=1, padx=10, pady=5)L2 = tk.Label(top, text = 'I/Y:').grid(row = 1)
E2 = tk.Entry(top)
E2.grid(row=1, column=1, padx=10, pady=5)L3 = tk.Label(top, text = 'PMT:').grid(row = 2)
E3 = tk.Entry(top)
E3.grid(row=2, column=1, padx=10, pady=5)L4 = tk.Label(top, text = 'PV:').grid(row = 3)
E4 = tk.Entry(top)
E4.grid(row = 3, column = 1, padx = 10, pady = 5)L5 = tk.Label(top, text = 'FV:').grid(row = 4)
E5 = tk.Entry(top)
E5.grid(row = 4, column = 1, padx = 10, pady = 5)n = E1.get()
iy = E2.get()
pmt = E3.get()
pv = E4.get()
fv = E5.get()bt = tk.Button(top, text = '计算', width = 10, command = calc)
bt.grid(row = 5, column = 0, sticky = 'w', padx = 10, pady = 5)top.mainloop()

金融计算器,python实现相关推荐

  1. Pycharm 金融Python实战二:用Python编写一个金融计算器——编写函数 调用命令 实例年金现值 利率换算 净现值法 投资回报期 内部收益率及其法则(带程序和结果)

    用Python编写一个金融计算器 1.编写不需要保存的Python函数 编写简单的计算未来现金的现值的数学公式 def pv_f(fv,r,n):return fv/(1+r)**n print(pv ...

  2. python的金融计算器_【长期不定时更新】用Python实现金融计算器的部分功能

    课上第一次教金融计算器的使用,表示真的受不了.明明按照书上一步一步科学的按键,得出的答案永远是错的.虽然目前Python学的还是半吊子,不过还是决定写一点简单的代码来模拟金融计算器的功能.突然想到随着 ...

  3. python的金融计算器_货币的时间价值 —— 带着Python玩金融(1)

    借钱需要付利息,这似乎是常识,可你知道这是为什么吗?其实这里蕴含着一个基本的金融概念,即货币的时间价值.通俗来讲就是随着时间的流逝,钱是可以生钱的.本文将介绍与此相关的几个概念:投资的未来价值.现值和 ...

  4. python的金融计算器_基于python实现的计算器

    1.运用到的知识点 1.python正则表达式的应用,re.search('pattern',str).group() 2.函数中递归的使用 3.python函数.基本语法.控制语句if ...els ...

  5. python金融计算器

    前言:进行金融股票的量化分析必须要懂得更多的公式计算,特此立贴记录学到的公式知识. 1.计算未来现金的现值公式: PV代表现值,FV代表未来获取的现金值,R指折现率,n指周期 def pv_f(fv, ...

  6. python的金融计算器_python 计算器

    --coding:utf-8-- from Tkinter import * 创建横条型框架 def frame(root, side): w = Frame(root) w.pack(side = ...

  7. Github配置(git+vscode+python+jupyter)

    ①下载git 打开 git bash 工具的用户名和密码存储 $ git config --global user.name "Your Name" $ git config -- ...

  8. 【实验楼】python简明教程

    ①终端输入python进入 欣赏完自己的杰作后,按 Ctrl + D 输入一个 EOF 字符来退出解释器,你也可以键入 exit() 来退出解释器. ②vim键盘快捷功能分布 ③这里需要注意如果程序中 ...

  9. 【Kaggle Learn】Python 5-8

    五. Booleans and Conditionals Using booleans for branching logic x = True print(x) print(type(x))''' ...

最新文章

  1. WSS页面定制系列(2)---定制单个列表的表单页面
  2. leetcode115. 不同的子序列
  3. Web Worker 你知道吗?
  4. VS2008+Vassistx使用技巧
  5. ChineseBERT: Chinese Pretraining Enhanced by Glyph and Pinyin Information
  6. java 调用百度语音
  7. 计算机如何永久删除文件无法找回,怎么找回永久删除文件 找回永久删除文件方法【详细步骤】...
  8. 2019—2020学年第一学期高一数学教学工作计划
  9. 知乎:电脑长时间不关机会缩短电脑寿命吗?
  10. Swift游戏实战-跑酷熊猫 07 平台的移动
  11. ardupilot python之px_uploader.py学习
  12. C1认证学习一(进制学习)
  13. 应届生入职制造业感悟
  14. 【如何下载钉钉云课堂视频】
  15. Codeforces Round #702 (Div. 3)D. Permutation Transformation
  16. 第十一届蓝桥杯——JAVA组真题
  17. 用友NC资产管理解决方案助机场行业盘活增效
  18. 【常用form表单】
  19. 建网站需要学习的软件有哪些
  20. aws lambda入门之基础

热门文章

  1. FZU 1685 跑跑卡丁车
  2. 所有男生女生看了都会感动的分手理由(天堂杂志转贴)
  3. Go Ticker实现原理剖析(轻松掌握Ticker实现原理)
  4. 简单的集装箱号码识别
  5. 【中级计量经济学】Lecture 3 非球形扰动
  6. python基础-包文件批量导入导出
  7. 想知道照片一键换天空怎么弄?推荐两款图片编辑软件
  8. 多态的概念简单明了,易掌握,易理解!
  9. 直线和直线,直线和圆,直线和矩形的交点
  10. 射频工程师应该具备的知识技术体系和心态