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

数字猜谜游戏Python循环逻辑问题:正确猜测仍被要求重试

数字猜谜游戏循环逻辑问题分析

你的代码核心问题是判断时机与循环流程的顺序错误,导致用户输入的正确猜测无法被及时识别,同时计数逻辑和实际尝试次数不匹配:

  • 猜测验证滞后:程序会先判断当前传入的second_number是否错误,若错误则先增加计数、再让用户输入新猜测。但新输入的猜测值要等到下一次循环才会被验证。比如用户第二次输入正确值时,程序不会立即判定猜对,而是要进入下一次循环才触发正确分支,这会让用户误以为程序没识别到正确答案,仍需继续输入。
  • 第四次猜测完全被忽略:当counter=3时进入循环,若当前猜测错误,counter会被加至4,随后用户输入第四次猜测,但此时循环条件counter<4已不成立,程序直接执行else分支输出"Out of chances",完全跳过了对第四次猜测的验证。

修复后的代码示例

调整逻辑为输入后立即验证,确保每一次猜测都被及时处理,计数与实际尝试次数一致:

def do_action_to_guess(target_number: int):
    counter = 0
    while counter < 4:
        guess = int(input('Enter your guess: '))
        counter += 1
        if guess == target_number:
            print('That is correct number')
            return counter
        elif counter < 4:
            print('Try again')
    print('Out of chances')
    return counter

如果需要保留原函数参数(传入第一次猜测值),可以这样修改:

def do_action_to_guess(target_number: int, first_guess: int):
    counter = 1
    if first_guess == target_number:
        print('That is correct number')
        return counter
    while counter < 4:
        guess = int(input('Try again'))
        counter += 1
        if guess == target_number:
            print('That is correct number')
            return counter
    print('Out of chances')
    return counter

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 08:45:25