Python3.9实现三项规则输入验证器 现有代码问题排查
Python 3.9 输入校验修复方案
原有代码核心问题
except ValueError or int(n) > 100语法错误:Python的except子句仅支持接收异常类型,不能直接追加数值判断逻辑,原有写法会导致大于100的判断完全不生效- 数值校验位置错误:大于100的判断需要在输入成功转换为整数之后执行,不能和异常捕获逻辑混写
- 浮点数校验逻辑未生效:输入浮点数格式内容时
int()转换会抛出ValueError,但因except写法错误无法正常捕获
修复后完整代码
import random name = input("先生,请输入您的姓名:\n") print(f"你好,{name}!") print("\n\n\n## 这是一个猜数字游戏,你需要猜测一个介于0到你选择的上限数字之间的数。##") print("\n\n请输入上限数字,不要选太大的数哦:") n = input() verifier = 5 while True: try: verifier = int(n) # 数值大小校验 if verifier > 100: print("不行哦,不允许输入大于100的数字,也不能输入浮点数或字符串,请重新输入:") n = input() continue # 校验通过跳出循环 break except ValueError: print("不行哦,不允许输入大于100的数字,也不能输入浮点数或字符串,请重新输入:") n = input() continue # 后续猜数字逻辑可在此处继续编写
校验规则覆盖说明
- 字符串输入校验:输入非数字格式的字符串时,
int(n)转换抛出ValueError,触发错误提示 - 浮点数输入校验:输入带小数点的浮点数(如12.3、99.0)时,
int(n)无法直接转换,同样抛出ValueError触发提示 - 数值大小校验:转换为整数成功后立即判断是否超过100,不符合要求直接提示重新输入
内容的提问来源于stack exchange,提问作者Ahmad
相关产品推荐
相关产品推荐

