Python如何实现输入数值范围校验、超范围重输及三数总和校验功能
调整后可实现需求的代码
while True: # 输入第1个数值,校验范围 while True: a = int(input("Enter number 1: ")) if 0 <= a <= 120: break print("Out of Range, please re-enter number 1") # 输入第2个数值,校验范围 while True: b = int(input("Enter number 2: ")) if 0 <= b <= 120: break print("Out of Range, please re-enter number 2") # 输入第3个数值,校验范围 while True: c = int(input("Enter number 3: ")) if 0 <= c <= 120: break print("Out of Range, please re-enter number 3") # 校验三者之和 if a + b + c == 120: print("All inputs are valid!") break print("Incorrect Total, please re-enter all 3 numbers")
调整逻辑说明
- 原代码仅对输入超限做了提示,没有给单个输入增加重试逻辑,超限后仍会继续执行后续输入步骤,因此无法实现单个数值错误重输对应项的效果。调整后为每个数值的输入单独嵌套了一层循环,只有当前输入符合0~120的范围要求时,才会跳出当前输入循环进入下一个数值的输入环节,否则始终要求用户重新输入当前序号的数值
- 保留了最外层的全局循环,当三个合法数值的总和不等于120时,会提示用户重新输入全部三个数值
- 用
0 <= x <= 120的判断替代原有的range(121)判断,逻辑可读性更强,也兼容后续如果需要调整为浮点数值输入的场景
内容的提问来源于stack exchange,提问作者Himasha
相关产品推荐
相关产品推荐

