如何制作简单单利贷款计算器,排查代码输入导致输出重复的问题
问题原因
input()函数的返回值默认是字符串类型,你没有对输入的贷款月数做整数转换就直接和月还款额做乘法,Python 中字符串和整数相乘的效果就是将字符串重复对应次数,这就是你输出输入内容重复多次的核心原因。- 现有代码的数值处理逻辑存在冗余:你已经将月还款额转为了整数,计算总还款额时再次转整数没有必要,且提前做整数转换会损失利息计算的精度,导致最终打印两位小数时精度丢失。
修正后可运行代码
# 每月还款本金200元,年利率1.7%,根据用户输入的贷款月数计算总还款额 # 将用户输入的月数直接转为整数类型 months_given = int(input("请输入贷款月数:")) monthly_principal = 200 # 计算月利率:年利率转月利率 monthly_rate = 1.7 / 100 / 12 # 计算月利息 monthly_interest = 200 * monthly_rate # 单利计算每月总还款额 monthly_total = monthly_principal + monthly_interest # 计算总还款额 total = months_given * monthly_total # 格式化输出保留两位小数 print(f"您总共需要还款:¥{total:.2f}")
注:上述代码是按单利计息的逻辑实现的,不需要用到循环。如果你需要按复利计算(每月产生的利息计入下一期本金生息),才需要用到for/while循环,入门阶段可以先把基础的类型转换逻辑搞清楚再学习循环写法。
额外优化提示:如果要避免用户输入非数字内容报错,可以加异常捕获逻辑,入门阶段可以先不用考虑,先保证核心逻辑正确即可。
内容的提问来源于stack exchange,提问作者jBoothy
相关产品推荐
相关产品推荐

