a = float(input("请输入本金:"))
B = float(input("请输入年利率(%):"))
b = B / 100 #利率实际值
y = int(input("请输入贷款期限(年):"))
z = 12 * y #总期数
print("1.等额本金","\n2.等额本息")
s = int(input("请选择还款方式:"))
T = 0 #还款总额
L = 0 #利息总额
if s == 1: #等额本金
J = [] #用于存储还款情况的列表
for i in range(1, z + 1):
j = [] #用于存储每期还款情况的列表
j.append(a / z) #每月偿还本金数
j.append(a * (z - i + 1) / z * b / 12) #每月偿还利息数
print("第{}月需偿还{}元,其中本金{}元,利息{}元".format(i, round(j[0] + j[1],2), round(j[0],2), round(j[1],2)))
J.append(j) #每月还款列表放入总还款列表
#print(J)
for k in J:
T += k[0] + k[1] #还款总额求和
L += k[1] #利息总额求和
print("累计还款总额为{}元,累计支付利息{}元".format(round(T,2), round(L,2)))
elif s == 2: #等额本息
X = []
n = a * (b / 12)/((b / 12 + 1) ** z - 1) + a * b / 12 #计算得出的每月还款公式
n0 = n - a * b / 12 #首月偿还本金数
for i in range(1, z + 1):
x = []
x.append(n0 * ((1 + b / 12) ** (i - 1))) #每月偿还本金数
x.append(n - n0 * ((1 + b / 12) ** (i - 1))) #每月偿还利息数
print("第{}月需偿还{}元,其中本金{}元,利息{}元".format(i, round(n,2), round(x[0],2), round(x[1],2)))
X.append(x) #每月还款列表放入总还款列表
#print(X)
for k in X:
T += k[0] + k[1] #还款总额求和
L += k[1] #利息总额求和
print("累计还款总额为{}元,累计支付利息{}元".format(round(T,2), round(L,2)))