Python房贷计算器等额本息

import numpy as np
print("东南大学成贤学院概率队")
print("20224/4刘新宇大帅哥制")
flag=0
while flag==0:
    r1=input("请输入公积金贷款年利率r1(0-1): ")
    r2=input("请输入商业贷款年利率r2(0-1): ")
    r1=float(r1)
    r2=float(r2)
    if (r1<0)|(r2<0):
        print("利率不能为负数哦,但是利率可以大于1")
    else :
        flag=1
flag=0
x1=r1/12
x2=r2/12
print("公积金贷款月利率r1: ",x1)
print("公积金贷款月利率r1: ",x2)


while flag==0:
    S=input("请输入面积:")
    S=float(S) 
    if S<0:
        print("面积要大于0")
    else :
        flag=1
flag=0


while flag==0:
    R=input("请输入每平米的单价: ")
    R=float(R)
    if R<0:
        print("每平米价格应该大于0")
    else :
        flag=1
flag=0


while flag==0:
    p=input("请输入首付比例: ")
    p=float(p)
    if (p<0)|(p>1):
        print("首付比例应该在0-1")
    else :
        flag=1
flag=0

while flag==0:
    print("组合贷款中商业贷款和公积金贷款的期限需要一致")
    N=input("货款期限月份(单位/月): ")
    N=float(N)          
    if N<=0:
        print("月份必须大于0")
    else :
        flag=1
flag=0


while flag==0:
    q=input("请输入商业贷款占比为多少(0-1):")
    q=float(q)        
    if (q<0)|(q>1):
        print("商业贷款占比的范围为0-1")
    else :
        flag=1
flag=0

print("")
print("")
print("")
print("")
print("")
print("")

A=S*R*(1-p)*q         #商业贷款金额
B=S*R*(1-p)*(1-q)     #公积金贷款金额


Return_A = A*x1*np.power(1+x1,N)/(np.power(1+x1,N)-1) #商业贷款每月偿还金额
Return_B = B*x2*np.power(1+x2,N)/(np.power(1+x2,N)-1) #公积金贷款每月偿还金额
Return_Sum=Return_A+Return_B                          #贷款每月偿还的总金额
K_1="{:<18.2f}".format(S*R*(p))#首付款额为
K_2="{:<18.2f}".format(S*R*(1-p))  #贷款总额为
K_3="{:<18.2f}".format(A)  #商业贷款为
K_4="{:<18.2f}".format(B)  #公积金贷款为
K_5="{:<18.2f}".format(Return_Sum)#每个月总共还
K_6="{:<18.2f}".format(Return_A)#商业贷款每个月还
K_7="{:<18.2f}".format(Return_B)#公积金贷款每个月还

print("还款方式为等额本息  ")
print("首付款额为           :",K_1,"元")
print("贷款总额为           :",K_2,"元")
print("商业贷款为           :",K_3,"元")
print("公积金贷款为         :",K_4,"元")
print("每个月总共偿还       :",K_5,"元")
print("商业贷款每个月偿还   :",K_6,"元")
print("公积金贷款每个月偿还 :",K_7,"元")

S_0="{:<4}".format("期数")
S_1="{:<10}".format("商贷偿还利息/元")
S_2="{:<10}".format("商贷偿还本金/元")
S_3="{:<10}".format("商贷剩余本金/元")
S_4="{:<10}".format("公积金贷偿还利息/元")
S_5="{:<10}".format("公积金贷偿还本金/元")
S_6="{:<10}".format("公积金贷剩余本金/元")
S_7="{:<11}".format("该月总偿还利息/元")
S_8="{:<11}".format("该月总偿还本金/元")
S_9="{:<10}".format("总剩偿还本金/元")
print(S_0,S_1,S_2,S_3,S_4,S_5,S_6,S_7,S_8,S_9)
SY_LX=0.0     #商业贷款应还利息
SY_BJ=0       #商业贷款应还本金
SY_SY_BJ=A    #商业贷款剩余本金 
SY_Return=0   
GJJ_LX=0.0    #公积金贷款利息
GJJ_BJ=0      #公积金贷款本金
GJJ_SY_BJ=B   #公积金贷款剩余本金 
GJJ_Return=0 
for i in range(1, int(N) + 1):
    SY_LX=SY_SY_BJ*x1                 #商业贷款每个月应还的利息   = 每个月剩余的本金*月利息
    SY_BJ=Return_A-SY_LX              #商业贷款每个月应还的本金   = 商业贷款每月偿还金额 - 商业贷款每个月应还的利息
    SY_SY_BJ=SY_SY_BJ-SY_BJ           #商业贷款每个月剩余的本金   = 上个月剩余的本金 - 商业贷款每个月应还的本金
    GJJ_LX=GJJ_SY_BJ*x2               #公积金贷款每个月应还的利息= 每个月剩余的本金*月利息
    GJJ_BJ=Return_B-GJJ_LX            #公积金贷款每个月应还的本金   = 公积金贷款每月偿还金额 - 公积金贷款每个月应还的利息
    GJJ_SY_BJ=GJJ_SY_BJ-GJJ_BJ        #公积金贷款每个月剩余的本金 = 上个月剩余的本金 - 公积金贷款每个月应还的本金
    BJ_Sum=SY_BJ+GJJ_BJ               #每个月总共应还的本金
    LX_Sum=SY_LX+GJJ_LX               #每个月总共应还的利息
    BJ=GJJ_SY_BJ+SY_SY_BJ             #每个月总共剩余的应还本金
    A_0="{:<6}".format(i)
    A_1="{:<21.2f}".format(SY_LX)
    A_2="{:<18.2f}".format(SY_BJ)
    A_3="{:<18.2f}".format(SY_SY_BJ)
    A_4="{:<18.2f}".format(GJJ_LX)
    A_5="{:<18.2f}".format(GJJ_BJ)
    A_6="{:<18.2f}".format(GJJ_SY_BJ)
    A_7="{:<18.2f}".format(LX_Sum)
    A_8="{:<18.2f}".format(BJ_Sum)
    A_9="{:<18.2f}".format(BJ)
    print(A_0,A_1,A_2,A_3,A_4,A_5,A_6,A_7,A_8,A_9)    
exit=input("按任意键退出 ")

你可能感兴趣的:(python基础,python)