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

Python如何检查输入为1-9的整数,不符合则将其存储为0?

解决方案

你可以在将输入转换为整数后添加范围检查逻辑,同时建议捕获特定的ValueError异常(而非所有异常),让代码更健壮。这里提供几种实现方式:

方式一:区分无效输入和范围错误

如果需要明确告诉用户是输入了非数字,还是数字不在指定范围内,可以用这种写法:

try:
    x = input("Enter the first number:")
    x = int(x)
    # 检查输入是否在1-9区间内(包含1和9)
    if not (1 <= x <= 9):
        raise ValueError("out_of_range")
except ValueError as e:
    if str(e) == "out_of_range":
        print("You have not entered a number between 1 and 9 - 0 has been stored instead")
    else:
        print("You have not entered a valid number - 0 has been stored instead")
    x = 0

方式二:简化逻辑(不区分错误类型)

如果不需要细分错误类型,只需要最终保证x为0或符合范围的整数,可简化为:

try:
    x = int(input("Enter the first number:"))
    # 范围不满足则重置为0并提示
    if not 1 <= x <= 9:
        print("You have not entered a number between 1 and 9 - 0 has been stored instead")
        x = 0
except ValueError:
    print("You have not entered a valid number - 0 has been stored instead")
    x = 0

扩展:让用户重新输入直到符合要求

如果希望用户输入错误时重复输入,直到给出合法值,可以在外层套循环:

while True:
    try:
        x = int(input("Enter the first number:"))
        if 1 <= x <= 9:
            break
        print("Please enter a number between 1 and 9!")
    except ValueError:
        print("Please enter a valid number!")
# 执行到这里时,x一定是1-9之间的整数

补充说明

  • 捕获ValueError而非所有异常:避免意外捕获其他不可预见的错误(如内存错误),提升代码安全性。
  • 1 <= x <= 9是Python特有的简洁范围判断写法,等价于x >= 1 and x <= 9。

内容的提问来源于stack exchange,提问作者Rendevouz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 17:00:08