Python中Try-except异常处理实现纯数字输入校验求助
解决仅允许输入纯数字的Try-except实现问题
你的代码存在几个问题:
- 输入错误时直接终止循环,无法让用户重新输入
- 异常触发后变量
x未被定义,后续打印会抛出NameError - 未指定具体异常类型,会捕获所有意外异常
以下是修正后的实现,实现仅接受纯数字输入,错误时提示并让用户重新输入,输入正确后退出循环的逻辑:
while True: try: # 尝试将输入转为整数,非纯数字会触发ValueError x = int(input("请输入你的手机号以获取验证码: ")) # 输入正确则退出循环 break except ValueError: # 仅捕获输入无法转为整数的异常,避免捕获其他意外错误 print("注意!请输入纯数字,不允许字母或符号") # 循环退出后执行这里,说明输入正确 print(f"你输入的手机号是: {x}")
关键说明:
- 指定捕获
ValueError:只有当输入无法转换为整数时才触发,避免捕获其他无关异常(比如键盘中断KeyboardInterrupt) - 输入正确时执行
break退出循环,错误时不退出,继续让用户输入 - 确保
x只有在赋值成功后才会被打印,避免未定义错误
内容的提问来源于stack exchange,提问作者Elif
相关产品推荐
相关产品推荐

