You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 03:15:07