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

高低猜数字游戏无输出问题咨询:Python代码逻辑排查

高低猜数字游戏代码问题排查

核心问题分析

你的代码在输入合法上下限后无输出,后续游戏逻辑完全失效,根源是以下几个关键错误:

  • 条件分支逻辑完全颠倒:
    你把合法上下限的处理代码(if lowr < upr)嵌套在了lowr >= upr的判断块里,这意味着只有当上下限不合法时,才会去检查是否合法——正常输入合法的lowr < upr时,根本不会进入任何分支,自然没有后续输出。

  • input()参数使用错误:
    input()函数仅接受单个字符串参数,你用逗号分隔多个值(input('Great now guess...', lowr, 'and', upr, ':'))会直接触发报错,必须用字符串格式化拼接内容,比如f-string。

  • 嵌套while循环逻辑混乱且未更新变量:
    内层while循环错误嵌套在外层循环中,导致逻辑层级混乱;而且每次新输入的猜测值没有赋值给g,即使输入新数字,判断还是基于旧值(甚至g都没被初始化)。

修正后的代码

print('Welcome to the Higher or Lower game!')
import random

# 获取并验证上下限
lowr = int(input('What would you like for your lower bound to be?: '))
upr = int(input('And your highest?: '))

# 先判断上下限是否合法
if lowr >= upr:
    print('The lowest bound must not be higher than highest bound. Try again.')
else:
    # 生成目标随机数
    x = random.randint(lowr, upr)
    # 获取第一次猜测值
    g = int(input(f'Great now guess a number between {lowr} and {upr}: '))
    
    # 循环判断猜测结果
    while g != x:
        if g > x:
            g = int(input('Nope. Too high, Guess another number: '))
        else:
            g = int(input('Nope. Too low, Guess another number: '))
    # 猜对后输出结果
    print('You got it!')

修正说明

  1. 调整条件分支结构:先处理不合法情况,合法情况进入else块执行游戏逻辑
  2. 用f-string修复input()的参数问题,正确拼接提示文本
  3. 重构while循环:外层循环判断是否猜对,内层用if-else区分过高/过低,每次输入都更新g的值
  4. 修正提示文本错误:把过低的错误提示从"Too high"改为"Too low"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 15:47:12