Python如何实现1-10整数输入校验 非法输入自动重试循环
实现方案
原代码存在的问题
- 没有做输入异常捕获:直接执行
int(input()),当输入为字母、汉字、特殊符号等非数字内容时,int()会直接抛出ValueError异常,程序直接报错退出,无法触发重输逻辑 - 条件判断语法完全错误:
else分支后不能附加判断条件,如需附加条件要使用elif,且number != (> 0 and < 10)不符合Python语法规则,运行会直接报错 - 范围判断不符合需求:要求的是1到10之间的整数,原有判断
number > 0 and number < 10会把10排除在合法值之外
正确实现代码
while True: print("请输入1到10之间的整数:") input_content = input().strip() # 捕获非整数输入的异常 try: target_num = int(input_content) except ValueError: print("输入不符合要求,必须是1到10之间的整数,请重试。") continue # 判断数值范围 if 1 <= target_num <= 10: print("输入正确,程序结束。") break else: print("输入不符合要求,必须是1到10之间的整数,请重试。")
逻辑说明
所有非1-10整数的输入都会触发重输:
- 输入非数字内容时,
int()转换抛出异常,被except捕获后直接进入下一轮循环请求重输 - 输入是整数但不在1-10区间内时,走else分支触发重输
- 只有输入为1到10的整数时,才会跳出循环结束程序
内容的提问来源于stack exchange,提问作者Peter
相关产品推荐
相关产品推荐

