Python中如何实现无效输入时重新获取输入的逻辑?
解决输入优化准则类型的循环验证问题
你需要把输入和验证逻辑放到循环结构里,直到用户输入有效数值(0或1)才退出循环。同时补充非数值输入的异常处理,避免程序崩溃,优化后的代码如下:
def get_tipo(value): if value == 0: print("minimization criterion") return True elif value == 1: print("maximization criterion") return True else: print("not valid value") return False while True: try: cType = input("criteria type (0 - minimization, 1 - maximization): ") tipo = float(cType) # 验证通过则退出循环 if get_tipo(tipo): break except ValueError: # 处理用户输入非数字的情况 print("请输入有效的数字(0或1)")
关键修改说明:
- 用
while True构建无限循环,直到输入有效才通过break终止循环 - 给
get_tipo函数添加布尔返回值,用于判断输入是否符合要求 - 加入
try-except块捕获非数值输入引发的异常,增强程序健壮性 - 将输入、类型转换、验证逻辑全部放入循环体内,实现重复输入的需求
内容的提问来源于stack exchange,提问作者bagelha
相关产品推荐
相关产品推荐

