数字猜谜游戏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
相关产品推荐
相关产品推荐

