最近要买车,写了一个车贷计算器Python程序

程序的基本规则:

落地价 = 裸车金额 + 保险金额 + 购置税(裸车金额/11.3)+其他费用

首付为落地价与贷款金额的差额(当贷款金额低于落地价时)。

  • 银行贷款(等本等息)默认4.8%的年化率

    • 每月月供计算为:贷款金额/60 + 贷款金额×(4.8/100)/12
    • 输出全期还款、满1年提前还款(违约金5%)及满2年提前还款(无违约金)时的贷款还款总费用与实际付款(首付+贷款费用),同时输出每月月供。
  • 厂商金融(等额本息)默认5年一共10.47%的年化率

    • 每月月供计算为:贷款金额×(1+0.1047)/60
    • 分别输出全期、半年提前还款(违约金3%)和2年提前还款的贷款还款总费用与实际付款,同时输出每月月供。

鉴于新手可能不会用程序,简单写一个Windows上使用的教程。

1,Windows下搜索框输入cmd,打开命令提示符

2,把程序拷到指定的目录,假设拷到D盘根目录

然后窗口直接输入

d:

启动程序

python xxx.py

实际运行结果:

import tkinter as tk

def calculate():
    try:
        car_price = float(entry_car.get())
        insurance = float(entry_insurance.get())
        other_fee = float(entry_other.get())
        loan_amount = float(entry_loan.get())
    except Exception as e:
        text_result.delete("1.0", tk.END)
        text_result.insert(tk.END, "请输入所有金额的有效数字!")
        return

    # 落地价计算
    purchase_tax = car_price / 11.3
    landed_price = car_price + insurance + purchase_tax + other_fee
    # 首付(实际需要支付的差额)
    down_payment = landed_price - loan_amount
    if down_payment < 0:
        down_payment = 0

    # ------------------------------
    # 银行贷款(等本等息,平息计算)
    # ------------------------------
    # 固定贷款期限为5年(60个月)
    # 每月还款 = 贷款金额/60 + 贷款金额 * (4.8%/12)
    bank_monthly = (loan_amount / 60) + (loan_amount * (4.8 / 100) / 12)
    bank_full = 60 * bank_monthly

    # 1年提前还款(12个月)
    bank_months_1 = 12
    bank_paid_1 = bank_months_1 * bank_monthly
    bank_remaining_1 = loan_amount * (60 - bank_months_1) / 60
    # 1年内提前还款需收剩余本金5%的违约金
    bank_penalty_1 = bank_remaining_1 * 0.05
    bank_total_1 = bank_paid_1 + bank_remaining_1 + bank_penalty_1

    # 2年提前还款(24个月)
    bank_months_2 = 24
    bank_paid_2 = bank_months_2 * bank_monthly
    bank_remaining_2 = loan_amount * (60 - bank_months_2) / 60
    # 2年提前还款无违约金
    bank_penalty_2 = 0
    bank_total_2 = bank_paid_2 + bank_remaining_2 + bank_penalty_2

    # ------------------------------
    # 厂商金融(等额本息,简化处理)
    # ------------------------------
    # 5年总利息为贷款金额的10.47%
    manuf_monthly = (loan_amount * (1 + 0.1047)) / 60
    manuf_full = 60 * manuf_monthly

    # 半年提前还款(6个月)
    manuf_months_early = 6
    manuf_paid_6 = manuf_months_early * manuf_monthly
    manuf_remaining_6 = loan_amount * (60 - manuf_months_early) / 60
    manuf_penalty_6 = manuf_remaining_6 * 0.03
    manuf_total_6 = manuf_paid_6 + manuf_remaining_6 + manuf_penalty_6

    # 2年提前还款(24个月)
    manuf_months_2 = 24
    manuf_paid_2 = manuf_months_2 * manuf_monthly
    manuf_remaining_2 = loan_amount * (60 - manuf_months_2) / 60
    manuf_penalty_2 = manuf_remaining_2 * 0.03
    manuf_total_2 = manuf_paid_2 + manuf_remaining_2 + manuf_penalty_2

    # ------------------------------
    # 输出结果
    # ------------------------------
    result_text = "【落地价计算】\n"
    result_text += f"购置税:{purchase_tax:.2f} 元\n"
    result_text += f"落地价:{landed_price:.2f} 元\n"
    result_text += f"首付(落地价-贷款金额):{down_payment:.2f} 元\n\n"

    result_text += "【银行贷款(等本等息)】\n"
    result_text += f"每月月供:{bank_monthly:.2f} 元\n"
    result_text += f"全期还款(5年):贷款还款总费用 = {bank_full:.2f} 元\n"
    result_text += f"实际付款(首付+全期贷款):{down_payment + bank_full:.2f} 元\n\n"
    result_text += f"1年提前还款(12个月):\n"
    result_text += f"  每月月供:{bank_monthly:.2f} 元\n"
    result_text += f"  贷款还款总费用 = {bank_total_1:.2f} 元\n"
    result_text += f"  实际付款(首付+1年贷款) = {down_payment + bank_total_1:.2f} 元\n\n"
    result_text += f"2年提前还款(24个月):\n"
    result_text += f"  每月月供:{bank_monthly:.2f} 元\n"
    result_text += f"  贷款还款总费用 = {bank_total_2:.2f} 元\n"
    result_text += f"  实际付款(首付+2年贷款) = {down_payment + bank_total_2:.2f} 元\n\n"

    result_text += "【厂商金融(等额本息)】\n"
    result_text += f"每月月供:{manuf_monthly:.2f} 元\n"
    result_text += f"全期还款(5年):贷款还款总费用 = {manuf_full:.2f} 元\n"
    result_text += f"实际付款(首付+全期贷款) = {down_payment + manuf_full:.2f} 元\n\n"
    result_text += f"半年提前还款(6个月):\n"
    result_text += f"  每月月供:{manuf_monthly:.2f} 元\n"
    result_text += f"  贷款还款总费用 = {manuf_total_6:.2f} 元\n"
    result_text += f"  实际付款(首付+半年贷款) = {down_payment + manuf_total_6:.2f} 元\n\n"
    result_text += f"2年提前还款(24个月):\n"
    result_text += f"  每月月供:{manuf_monthly:.2f} 元\n"
    result_text += f"  贷款还款总费用 = {manuf_total_2:.2f} 元\n"
    result_text += f"  实际付款(首付+2年贷款) = {down_payment + manuf_total_2:.2f} 元\n"

    text_result.delete("1.0", tk.END)
    text_result.insert(tk.END, result_text)

# ------------------------------
# 创建界面
# ------------------------------
root = tk.Tk()
root.title("车贷计算器")

# 裸车金额输入
label_car = tk.Label(root, text="汽车裸车金额(元):")
label_car.grid(row=0, column=0, padx=5, pady=5, sticky="e")
entry_car = tk.Entry(root)
entry_car.grid(row=0, column=1, padx=5, pady=5)

# 保险金额输入
label_insurance = tk.Label(root, text="保险金额(元):")
label_insurance.grid(row=1, column=0, padx=5, pady=5, sticky="e")
entry_insurance = tk.Entry(root)
entry_insurance.grid(row=1, column=1, padx=5, pady=5)

# 其他费用输入
label_other = tk.Label(root, text="其他费用(元):")
label_other.grid(row=2, column=0, padx=5, pady=5, sticky="e")
entry_other = tk.Entry(root)
entry_other.grid(row=2, column=1, padx=5, pady=5)

# 贷款金额输入(可低于落地价)
label_loan = tk.Label(root, text="贷款金额(元):")
label_loan.grid(row=3, column=0, padx=5, pady=5, sticky="e")
entry_loan = tk.Entry(root)
entry_loan.grid(row=3, column=1, padx=5, pady=5)

# 计算按钮
button_calc = tk.Button(root, text="计算", command=calculate)
button_calc.grid(row=4, column=1, padx=5, pady=10)

# 结果显示文本框
text_result = tk.Text(root, width=80, height=35)
text_result.grid(row=5, column=0, columnspan=2, padx=5, pady=5)

root.mainloop()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值