如何在用户输入无效时终止程序?多输入场景需逐个判断吗
解决输入无效时终止程序的问题
嘿,这个问题很好解决!完全不用给每个输入都单独写if判断,咱们可以把输入验证的逻辑封装成一个可复用的函数,既简洁又好维护,所有变量都能共用同一套验证规则。
第一步:封装输入验证函数
先写一个通用的输入验证函数,负责处理输入读取、格式校验,一旦输入无效就直接终止程序。这里假设你的输入需要是整数(如果你的验证规则不同,比如需要是特定范围的数字,直接修改函数里的校验逻辑就行):
def get_valid_input(prompt): while True: user_input = input(prompt) try: # 尝试将输入转为整数,根据你的需求调整类型(比如float) num = int(user_input) return num except ValueError: print("输入无效,请输入合法的整数!程序即将终止。") exit() # 若用sys.exit()需先导入sys模块:import sys
第二步:用函数批量处理输入
接下来,所有变量(包括level)都可以调用这个函数来获取输入,不用再逐个写if判断:
# 处理6个结构相同的变量 var1 = get_valid_input("请输入变量1的值:") var2 = get_valid_input("请输入变量2的值:") var3 = get_valid_input("请输入变量3的值:") var4 = get_valid_input("请输入变量4的值:") var5 = get_valid_input("请输入变量5的值:") var6 = get_valid_input("请输入变量6的值:") # 处理level变量(如果验证规则和其他变量一致,直接复用函数) level = get_valid_input("请输入level的值:")
第三步:回显输入并计算奖金
输入读取完成后,先回显所有内容,再按照规则计算奖金:
# 回显所有输入内容 print("\n你输入的内容如下:") print(f"变量1:{var1}, 变量2:{var2}, 变量3:{var3}, 变量4:{var4}, 变量5:{var5}, 变量6:{var6}, level:{level}") # 计算总奖金 total_bonus = 0 # 把所有需要计算的变量放到列表里,循环处理更高效 all_calc_vars = [var1, var2, var3, var4, var5, var6, level] for num in all_calc_vars: if num == 10: continue # 数值为10时奖金为0,跳过 elif num > 10 and num % 2 == 0: total_bonus += 1 elif num < 10 and num % 2 != 0: total_bonus -= 1 print(f"\n计算得出的总奖金为:{total_bonus}")
补充说明
如果你的输入验证规则有特殊要求(比如必须是0-20之间的整数),只需要在验证函数里添加额外判断即可,比如:
def get_valid_input(prompt): while True: user_input = input(prompt) try: num = int(user_input) # 添加范围校验 if 0 <= num <= 20: return num else: print("输入无效,请输入0-20之间的整数!程序即将终止。") exit() except ValueError: print("输入无效,请输入合法的整数!程序即将终止。") exit()
这样不管有多少个变量,都只需要维护这一个函数的验证逻辑,不用重复写if,代码更整洁也更易维护。
内容的提问来源于stack exchange,提问作者DDSasikala
相关产品推荐
相关产品推荐

