You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python 多输入Try Except校验优化 贷款还款计算代码精简方案

代码优化方案

你可以将重复的输入校验逻辑封装为通用函数,一次编写多次调用,既能避免每个输入单独写try except的冗余,也能保证输入错误时停留在当前步骤重试。

优化后代码如下:

def get_valid_num(prompt, convert_type, post_handler=None):
    err_tip = "Please enter a number only!!"
    while True:
        try:
            val = convert_type(input(prompt))
            return post_handler(val) if post_handler else val
        except ValueError:
            print(err_tip)

# 依次获取三个校验后的输入
A = get_valid_num("How much were you loaned? ", int)
R = get_valid_num("At what monthly rate interest? ", float, post_handler=lambda x: x/100)
N = get_valid_num("And how many years is the loan for? ", int)

# 计算还款额
RA = R * A
RN = 1 - (1 + R) ** -N
yearly_pay = RA / RN
print(f"You will pay £{yearly_pay:.2f} yearly, or £{yearly_pay/12:.2f} monthly")

优化效果说明

  • 所有输入校验逻辑集中在一处,后续修改错误提示、新增校验规则只需修改通用函数即可,维护成本极低
  • 单个输入出错时只会停在当前输入步骤循环提示,不会回到第一个输入重新填写,完全符合需求
  • 相比原重复编写三套循环的代码,整体代码量减少近40%,结构清晰易读

内容的提问来源于stack exchange,提问作者Mr Noodles

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 10:45:02