苏州网站开发公司_企业网页制作_广州设计网站_凡科网登陆
def calculate_monthly_payment(principal, annual_rate, months):"""计算每月还款金额:param principal: 贷款总额:param annual_rate: 年利率(以小数表示,例如5%为0.05):param months: 贷款总期数(月数):return: 每月还款金额"""monthly_rate = annual_rate / 12if monthly_rate == 0:return principal / monthsmonthly_payment = (principal * monthly_rate) / (1 - (1 + monthly_rate) ** -months)return monthly_paymentdef calculate_remaining_balance(principal, annual_rate, months, months_paid):"""计算还款若干月后的剩余贷款余额:param principal: 贷款总额:param annual_rate: 年利率(以小数表示,例如5%为0.05):param months: 贷款总期数(月数):param months_paid: 已还款的月数:return: 剩余贷款余额"""monthly_payment = calculate_monthly_payment(principal, annual_rate, months)remaining_balance = principalfor _ in range(months_paid):interest = remaining_balance * (annual_rate / 12)principal_payment = monthly_payment - interestremaining_balance -= principal_paymentreturn remaining_balancedef main():print("车贷计算器(支持提前还款和变动利率)")try:principal = float(input("请输入贷款总额(例如50000):"))annual_rate = float(input("请输入初始年利率(例如0.05代表5%):"))total_months = int(input("请输入贷款总期数(月数,例如36):"))if principal <= 0 or annual_rate < 0 or total_months <= 0:print("输入值无效,请确保贷款总额和贷款期数为正数,年利率为非负数。")returncurrent_balance = principalmonths_paid = 0while months_paid < total_months:monthly_payment = calculate_monthly_payment(current_balance, annual_rate, total_months - months_paid)print(f"当前剩余贷款余额:{current_balance:.2f}")print(f"当前每月还款金额:{monthly_payment:.2f}")early_repayment = input("是否进行提前还款?(输入金额或'no'跳过):")if early_repayment.lower() != 'no':early_repayment_amount = float(early_repayment)if early_repayment_amount >= current_balance:print("提前还款金额大于或等于剩余贷款余额,贷款已还清。")breakelse:current_balance -= early_repayment_amountprint(f"提前还款后剩余贷款余额:{current_balance:.2f}")rate_change = input("是否有利率变动?(输入新的年利率或'no'跳过):")if rate_change.lower() != 'no':annual_rate = float(rate_change)print(f"新的年利率为:{annual_rate:.2f}")months_paid += 1current_balance = calculate_remaining_balance(principal, annual_rate, total_months, months_paid)print("车贷计算完成。")except ValueError:print("输入无效,请输入正确的数字。")if __name__ == "__main__":main()">