You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Python中用函数实现多输入整数验证以减少代码重复?

当然可以!用函数封装验证逻辑完美解决重复代码问题

作为Python新手,你能意识到重复代码的问题并想办法优化,这点非常棒!把重复的输入验证逻辑封装成一个可复用的函数,不仅能让代码更简洁,以后如果要调整验证规则(比如增加输入范围检查),也只需要修改一处代码就行。

重构后的完整代码

def get_integer_input(prompt):
    while True:
        try:
            return int(input(prompt))
        except ValueError:
            print('The value you entered is not an integer')

# 调用函数获取三个变量
no_of_month = get_integer_input('Enter no of months you want for payment: ')
interest = get_integer_input('Enter interest you want for the loan: ')
principal_amt = get_integer_input('Enter principal amount you want as loan: ')

# 后续可以在这里编写房贷计算的逻辑

代码解释

  • 封装验证函数:我们定义了get_integer_input函数,它接收一个prompt参数(就是要显示给用户的输入提示文本)。函数内部把你原来重复的while+try-except逻辑整合在一起,当用户输入有效整数时,直接返回这个值;如果输入无效,就提示错误并继续循环等待正确输入。
  • 调用函数:现在只需要三次调用这个函数,分别传入对应的提示文本,就能得到经过验证的三个变量,代码一下子清爽了很多!

如果之后你想扩展验证规则(比如要求输入的月份不能小于12,利息不能是负数),只需要在函数里加几行判断逻辑就行,比如:

def get_integer_input(prompt, min_value=None):
    while True:
        try:
            value = int(input(prompt))
            if min_value is not None and value < min_value:
                print(f'Please enter a value greater than or equal to {min_value}')
                continue
            return value
        except ValueError:
            print('The value you entered is not an integer')

# 调用时指定最小值
no_of_month = get_integer_input('Enter no of months you want for payment: ', min_value=12)

这样你的代码会更健壮,也更易于维护~

内容的提问来源于stack exchange,提问作者topsy coder

火山引擎 最新活动