python个人所得税实验报告+操作界面

简介: python个人所得税实验报告+操作界面

实验语言:Python

实验界面搭建:利用tkinter搭建图形化界面

实验目的:搭建方便使用的计算个人所得税的计算器

参考:https://m.taxspirit.com(个税精灵:计算个人所得税在线计算器)

计算器应用到的计算公式如下:



搭建的计算器截图如下:

进入界面:

计算结果界面如下:

使用说明:用户选择当前月份,并输入本月税前工资、本月五险一金以及专项附加扣除费用。点击计算即可得到相应的结果。


代码如下:

from tkinter import *
from tkinter import ttk
import tkinter.messagebox
def click():      
    if not salary.get():
        tkinter.messagebox.showwarning('警告','请输入本月税前工资!')
    elif not safe.get():
        tkinter.messagebox.showwarning('警告','请输入五险一金!')
    elif not cost.get():
        tkinter.messagebox.showwarning('警告','请输入专项附加扣除!')
    else:
        la.destroy()
        tree.destroy()
        reason = Label(root, text="计算结果",width=20, height=2)
        reason.grid(row=5, columnspan=4)
        month_get = float(fruit.get())
        salary_get = float(salary.get())
        safe_get = float(safe.get())
        cost_get = float(cost.get())
        salary_sum = month_get * salary_get
        Label(root, text="累计收入:",width=20, height=2).grid(row=7, column=0)
        Label(root, text="{}".format(salary_sum),width=20, height=2).grid(row=7, column=1)
        safe_sum = month_get * safe_get
        Label(root, text="累计五险一金:",width=20, height=2).grid(row=7, column=2)
        Label(root, text="{}".format(safe_sum),width=20, height=2).grid(row=7, column=3)
        cost_sum = month_get * cost_get
        Label(root, text="累计专项附加扣除:",width=20, height=2).grid(row=8, column=0)
        Label(root, text="{}".format(cost_sum),width=20, height=2).grid(row=8, column=1)
        sum_fee = 5000
        Label(root, text="累计减除费用:",width=20, height=2).grid(row=8, column=2)
        Label(root, text="{}".format(sum_fee),width=20, height=2).grid(row=8, column=3)
        tax_should_pay = salary_sum - safe_sum - cost_sum - 5000
        if tax_should_pay < 0:
            tax_should_pay = 0
        Label(root, text="应纳税所得额:",width=20, height=2).grid(row=9, column=0)
        Label(root, text="{}".format(tax_should_pay),width=20, height=2).grid(row=9, column=1)
        if tax_should_pay <= 36000:
            tax_rate = 0.03
            quicknum = 0
        elif 36000 < tax_should_pay <= 144000:
            tax_rate = 0.1
            quicknum = 2520
        elif 144000 < tax_should_pay <= 300000:
            tax_rate = 0.2
            quicknum = 16920
        elif 300000 < tax_should_pay <= 420000:
            tax_rate = 0.25
            quicknum = 31920
        elif 420000 < tax_should_pay <= 660000:
            tax_rate = 0.3
            quicknum = 52920
        elif 660000 < tax_should_pay <= 960000:
            tax_rate = 0.35
            quicknum = 85920
        else:
            tax_rate = 0.45
            quicknum = 181920
        Label(root, text="税率:",width=20, height=2).grid(row=9, column=2)
        Label(root, text="{}".format(tax_rate),width=20, height=2).grid(row=9, column=3)
        Label(root, text="速算扣除数:",width=20, height=2).grid(row=10, column=0)
        Label(root, text="{}".format(quicknum),width=20, height=2).grid(row=10, column=1) 
        last_month_salary_sum = salary_sum - salary_get
        last_month_safe_sum = safe_sum - safe_get
        last_month_cost_sum = cost_sum - cost_get
        last_month_tax_should_pay = last_month_salary_sum - last_month_safe_sum - last_month_cost_sum
        if last_month_tax_should_pay <= 36000:
            last_tax_rate = 0.03
            last_quicknum = 0
        elif 36000 < last_month_tax_should_pay <= 144000:
            last_tax_rate = 0.1
            last_quicknum = 2520
        elif 144000 < last_month_tax_should_pay <= 300000:
            last_tax_rate = 0.2
            last_quicknum = 16920
        elif 300000 < last_month_tax_should_pay <= 420000:
            last_tax_rate = 0.25
            last_quicknum = 31920
        elif 420000 < last_month_tax_should_pay <= 660000:
            last_tax_rate = 0.3
            last_quicknum = 52920
        elif 660000 < last_month_tax_should_pay <= 960000:
            last_tax_rate = 0.35
            last_quicknum = 85920
        else:
            last_tax_rate = 0.45
            last_quicknum = 181920
        sum_tax_should_pay = tax_should_pay * tax_rate - quicknum
        Label(root, text="累计应纳税额:",width=20, height=2).grid(row=10, column=2)
        Label(root, text="{}".format(sum_tax_should_pay),width=20, height=2).grid(row=10, column=3)
        sum_tax_payed = last_month_tax_should_pay * last_tax_rate - last_quicknum
        Label(root, text="累计已缴税额:",width=20, height=2).grid(row=11, column=0)
        Label(root, text="{}".format(sum_tax_payed),width=20, height=2).grid(row=11, column=1)
        this_month_pay = sum_tax_should_pay - sum_tax_payed
        Label(root, text="当月应纳税额:",width=20, height=2).grid(row=11, column=2)
        Label(root, text="{}".format(this_month_pay),width=20, height=2).grid(row=11, column=3)
        really_salary = salary_get - safe_get - this_month_pay
        Label(root, text="本月税后工资:",width=20, height=2).grid(row=12, column=0)
        Label(root, text="{}".format(really_salary),width=20, height=2).grid(row=12, column=1)
root = Tk()
root.title('个人所得税计算器')
root.geometry('%dx%d' % (600, 600))
Label(root, text="工资累计预缴个税计算器",width=20, height=2).grid(row=0, columnspan=4)
items = [1,2,3,4,5,6,7,8,10,11,12]
Label(root, text="当前月份:",width=20, height=2).grid(row=1, column=0)
fruit = StringVar()
fruit.set(items[6]) 
menu = OptionMenu(root, fruit, *items) 
menu.grid(row=1, column=1)
Label(root, text="本月税前工资:",width=20, height=2).grid(row=1, column=2)
salary = Entry(root)
salary.grid(row=1, column=3)
Label(root, text="五险一金:",width=20, height=2).grid(row=2, column=0)
safe = Entry(root)
safe.grid(row=2, column=1)
Label(root, text="专项附加扣除:",width=20, height=2).grid(row=2, column=2)
cost = Entry(root)
cost.grid(row=2, column=3)
Label(root, text="五险一金由个人缴纳部分与公司缴纳部分组成,具体数值请移至五险一金计算窗口计算").grid(row=3, columnspan=4)
Label(root, text="减除费用(起征点):",width=20, height=2).grid(row=4, column=0)
Label(root, text="5000元",width=20, height=2).grid(row=4, column=1)
Button(root, text="计算",command=click ,width=50, height=2).grid(row=5, columnspan=4)
la = Label(root, text="工收入个税资薪金",width=20, height=2)
la.grid(row=6, columnspan=4)
tree = ttk.Treeview(root)
tree["columns"] = ('累计预扣预缴应纳税所得额','预扣税率','速算扣除数')       
tree.column("累计预扣预缴应纳税所得额", width=250)
tree.column("预扣税率", width=60)
tree.column("速算扣除数", width=60)     
tree.heading("累计预扣预缴应纳税所得额", text="累计预扣预缴应纳税所得额")
tree.heading("预扣税率", text="预扣税率")
tree.heading("速算扣除数", text="速算扣除数")
tree.insert("", 0, text="line1", values=("不超过36000元部分", "3%", "0"))   
tree.insert("", 1, text="line2", values=( "超过36000元至144000元的部分", "10%", "2520"))
tree.insert("", 2, text="line3", values=( "超过144000元至300000元的部分", "20%", "16920"))
tree.insert("", 3, text="line4", values=( "超过300000元至420000元的部分", "25%", "31920"))
tree.insert("", 4, text="line5", values=( "超过420000元至660000元的部分", "30%", "52920"))
tree.insert("", 5, text="line6", values=( "超过660000元至960000元的部分", "35%", "85920"))
tree.insert("", 6, text="line6", values=( "超过960000元的部分", "45%", "181920"))
tree.grid(row=7,columnspan=4 )
#root.mainloop()

相关文章
|
3月前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
123 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
2月前
|
算法 数据可视化 Python
使用 Python 模拟蒙特卡洛实验
使用 Python 模拟蒙特卡洛实验
48 1
|
3月前
|
前端开发 搜索推荐 算法
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
中草药管理与推荐系统。本系统使用Python作为主要开发语言,前端使用HTML,CSS,BootStrap等技术和框架搭建前端界面,后端使用Django框架处理应用请求,使用Ajax等技术实现前后端的数据通信。实现了一个综合性的中草药管理与推荐平台。具体功能如下: - 系统分为普通用户和管理员两个角色 - 普通用户可以登录,注册、查看物品信息、收藏物品、发布评论、编辑个人信息、柱状图饼状图可视化物品信息、并依据用户注册时选择的标签进行推荐 和 根据用户对物品的评分 使用协同过滤推荐算法进行推荐 - 管理员可以在后台对用户和物品信息进行管理编辑
93 12
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
|
2月前
|
数据可视化 测试技术 Linux
基于Python后端构建多种不同的系统终端界面研究
【10月更文挑战第10天】本研究探讨了利用 Python 后端技术构建多样化系统终端界面的方法,涵盖命令行界面(CLI)、图形用户界面(GUI)及 Web 界面。通过分析各种界面的特点、适用场景及关键技术,展示了如何使用 Python 标准库和第三方库(如 `argparse`、`click`、`Tkinter` 和 `PyQt`)实现高效、灵活的界面设计。旨在提升用户体验并满足不同应用场景的需求。
|
3月前
|
机器学习/深度学习 测试技术 数据处理
KAN专家混合模型在高性能时间序列预测中的应用:RMoK模型架构探析与Python代码实验
Kolmogorov-Arnold网络(KAN)作为一种多层感知器(MLP)的替代方案,为深度学习领域带来新可能。尽管初期测试显示KAN在时间序列预测中的表现不佳,近期提出的可逆KAN混合模型(RMoK)显著提升了其性能。RMoK结合了Wav-KAN、JacobiKAN和TaylorKAN等多种专家层,通过门控网络动态选择最适合的专家层,从而灵活应对各种时间序列模式。实验结果显示,RMoK在多个数据集上表现出色,尤其是在长期预测任务中。未来研究将进一步探索RMoK在不同领域的应用潜力及其与其他先进技术的结合。
110 4
|
4月前
|
存储 前端开发 数据库
基于python flask 的图书管理系统,有登录界面,实现简单增删改查,可以做课程设计使用
本文介绍了一个基于Python Flask框架的图书管理系统,该系统具备登录界面,并实现了基本的增删改查功能,适合作为课程设计使用。
103 3
基于python flask 的图书管理系统,有登录界面,实现简单增删改查,可以做课程设计使用
|
4月前
|
存储 数据库连接 数据库
【Python】python员工信息管理系统(数据库版本)(GUI界面+数据库文件+源码)【独一无二】
【Python】python员工信息管理系统(数据库版本)(GUI界面+数据库文件+源码)【独一无二】
384 1
|
4月前
|
机器学习/深度学习 数据采集 自然语言处理
基于Python thinker GUI界面的股票评论数据及投资者情绪分析设计与实现
本文介绍了一个基于Python Tkinter库开发的GUI股票评论数据及投资者情绪分析系统,该系统提供股票数据展示、情绪与股价分析、模型指标分析、评论数据展示、词云分析和情感分析结果展示等功能,帮助投资者通过情感分析了解市场舆论对股票价格的影响,以辅助投资决策。
111 0
基于Python thinker GUI界面的股票评论数据及投资者情绪分析设计与实现
|
6月前
|
机器学习/深度学习 传感器 算法
基于Mediapipe深度学习算法的手势识别系统【含python源码+PyqtUI界面+原理详解】-python手势识别 深度学习实战项目
基于Mediapipe深度学习算法的手势识别系统【含python源码+PyqtUI界面+原理详解】-python手势识别 深度学习实战项目
|
6月前
|
机器学习/深度学习 算法 安全
基于YOLOv8深度学习的危险区域人员闯入检测与报警系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、区域闯入
基于YOLOv8深度学习的危险区域人员闯入检测与报警系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、区域闯入