题目内容
已知不同贷款类型的利率是不同的:
商业贷款:五年及以下的贷款利率是4.75%,五年以上是4.90%
公积金贷款:五年及以下的贷款利率是2.75%,五年以上是3.25%
要求按用户选择的贷款类型(商业贷款、公积金贷款、组合贷款),通过贷款金额(万)、期限(年)、利率(%)计算得出每月月供参考(元)、支付利息(元)、还款总额(元)。
个人解法
'''
每月还款额 = 贷款本金 * [月利率 * (1 + 月利率) ** 还款月数] / {[(1 + 月利率) ** 还款月数] - 1}
还款总额 = 每月应还金额 * 还款月数
支付利息 = 还款总额 - 贷款金额
'''
loan_type = input("请选择贷款类型:1.商贷 2.公贷 3.组合贷\n")
loan_amount = float(input("请输入贷款金额(万)\n"))
term = int(input("请选择期限(年):5、10、15、20、25\n"))
def judge(term):
if term in {5, 10, 15, 20, 25}:
return True
else:
print("警告:您未按照标准期限进行输入!")
def calc(term_rate):
month_rate = term_rate / 12
month_pay = (loan_amount * 10000) * (month_rate * ((1 + month_rate) ** (term * 12))) / (((1 + month_rate) ** (term * 12)) - 1)
total_pay = month_pay * (term * 12)
interest = total_pay - (loan_amount * 10000)
print("每月月供参考(元):{:.2f}元".format(month_pay))
print("支付利息(元):{:.2f}元".format(interest))
print("还款总额(元):{:.2f}元".format(total_pay))
if loan_type in ('1', '2', '3'):
if loan_type == '1':
judge(term)
if term <= 5:
calc(4.75 / 100)
else:
calc(2.75 / 100)
elif loan_type == '2':
judge(term)
if term <= 5:
calc(2.75 / 100)
else:
calc(3.25 / 100)
else:
print("暂未开放!")
else:
print("重新输入!")
运行结果
本人拙作,请大佬们点评。