Python带try-except的while循环优化:合并循环且保留正确输入值
优化Python整数输入求和代码
你可以通过提取重复的输入验证逻辑为可复用函数来解决这个问题,既避免了重复的while循环,又能保证第一个数输入正确后不会被重复要求输入。同时还能优化异常处理的精准性,避免捕获无关异常。
优化后的代码
def get_integer_input(prompt): while True: try: return int(input(prompt)) except ValueError: print("Only integers allowed for input!") # 直接用Python原生加法逻辑即可,无需自定义sum函数 num1 = get_integer_input('Enter 1st number: ') num2 = get_integer_input('Enter 2nd number: ') print(f'Sum of {num1} and {num2} is {num1 + num2}')
优化说明
- 复用输入逻辑:把输入验证的while循环封装成
get_integer_input函数,传入不同提示语就能获取对应整数,彻底消除重复代码 - 保留已输入的正确值:获取第一个数时,只有输入正确才会返回结果,之后直接执行第二个数的输入逻辑,不会重新要求输入第一个数
- 精准异常捕获:原来的
except:会捕获所有异常,这里改成except ValueError:,只处理输入无法转换为整数的情况,更安全合理 - 简化求和逻辑:Python本身支持直接整数加法,没必要自定义sum函数(如果坚持保留自定义函数也可以,但完全没必要)
内容的提问来源于stack exchange,提问作者Louw Pieters
相关产品推荐
相关产品推荐

