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("按任意键退出 ")