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

Python猜数字小游戏存在错误无法调试,寻求解决方案

猜数字游戏代码修复方案

问题分析

你的代码存在三处核心问题:

  • 循环逻辑错误:使用or运算符会导致即使猜满6次仍继续循环,正确逻辑应为「还有剩余猜测次数 且 未猜对数字」时才继续。
  • 次数计数偏差:noOfGuess <= guessLimit允许7次猜测(从0到6),不符合最多6次的要求。
  • 初始值类型问题:guess初始化为空字符串,首次与整数randomNum比较逻辑不合理。

修复后的代码

import random

guess = 0  # 初始化为非目标范围整数,避免类型不匹配
noOfGuess = 0
guessLimit = 6
randomNum = random.randint(1, 10)
print("I am thinking of a random number between 1 and 10.")

# 修正循环条件:剩余次数未用完 且 未猜对
while noOfGuess < guessLimit and guess != randomNum:
    guess = int(input("Take a guess: "))
    noOfGuess += 1
    
    if guess < randomNum:
        print("Too low. Try again.")
    elif guess > randomNum:
        print("Too high. Try again.")
    else:
        break

if guess == randomNum:
    print(f"Good job! You guessed my number in {noOfGuess} guesses.")
else:
    print(f"Nope. I am thinking of {randomNum}.")

修改说明

  1. 调整guess初始值为0,避免字符串与整数的无效比较。
  2. 将循环条件的or改为and,并把<=改为<,确保最多进行6次猜测,仅在未猜对且还有次数时继续循环。
  3. 保留原有猜对提示、高低反馈逻辑,确保功能符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 16:57:48