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

Python数字猜谜游戏如何过滤输入中的字母、符号等非法内容

猜数字游戏非法输入问题修复方案

你当前的代码崩溃根因是直接对用户输入做int()类型转换,当输入为空、包含字母、特殊符号时会触发ValueError异常导致程序直接退出,我们可以通过异常捕获逻辑处理这类场景,同时你原代码存在缩进语法错误,修复后的完整可运行代码如下:

from random import randint

# 生成1-1000的随机目标数字
comp_num = randint(1, 1000)

while True:
    input_str = input("请输入1-1000之间的整数进行猜测:\n")
    try:
        # 尝试把用户输入转为整数
        user_num = int(input_str)
    except ValueError:
        # 捕获非数字输入的异常,给出提示后重新进入输入流程
        print("输入不合法,请输入纯数字!")
        continue

    # 可选优化:限制输入数字在1-1000范围内
    if user_num < 1 or user_num > 1000:
        print("请输入1到1000范围内的数字!")
        continue
    
    # 大小判断逻辑
    if user_num > comp_num:
        print("太大了!再猜一次")
    elif user_num < comp_num:
        print("太小了!再猜一次")
    else:
        print("恭喜你猜对了!")
        break

如果需要保留原代码的英文提示,把对应print语句里的中文替换成原英文内容即可。

核心修改点说明

  • 新增try...except捕获ValueError异常,所有非数字格式的输入都会被拦截,不会触发程序崩溃
  • 修正了原代码中混乱的缩进层级,符合Python语法规范
  • 把多层嵌套的if判断优化为elif分支,逻辑更清晰,可读性更高
  • 新增可选的输入范围校验,避免用户输入超出1-1000范围的无效数字

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 10:48:04