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

如何让猜数字游戏输入no时直接结束,避免回到顶部循环或报错?

猜数字游戏功能优化方案

我帮你调整了代码逻辑,完美实现你要的需求:输入no直接结束游戏,输入yes重新开始,不会出现错误也不会无效循环。下面是修改后的完整代码,还加了注释方便你理解:

import random

def main():
    while True:  # 用无限循环替代固定次数循环,灵活控制游戏流程
        play_guessingGame_()
        
        # 游戏结束后询问是否继续,同时处理无效输入
        while True:
            play_again = input("Do you want to play again? (yes/no): ").strip().lower()
            if play_again in ["yes", "no"]:
                break
            print("Please enter 'yes' or 'no' to continue.")
        
        if play_again == "no":
            print("Thanks for playing! Goodbye!")
            break  # 退出主循环,程序干净结束

def play_guessingGame_():
    guessesTaken = 0
    print('Hello Friend,')
    print('What is your name?')
    name = input().strip()
    print(f'{name}, It is good to meet you!')
    
    # 补全猜数字核心逻辑(你之前的代码没写完这部分)
    number = random.randint(1, 20)
    print(f'Well, {name}, I am thinking of a number between 1 and 20.')
    
    while guessesTaken < 6:
        print('Take a guess.')
        guess = input()
        try:
            guess = int(guess)
        except ValueError:
            print('Please enter a valid number!')
            continue
            
        guessesTaken += 1
        
        if guess < number:
            print('Your guess is too low.')
        elif guess > number:
            print('Your guess is too high.')
        else:
            break  # 猜对了,退出猜数字循环
    
    # 游戏结果反馈
    if guess == number:
        print(f'Good job, {name}! You guessed my number in {guessesTaken} guesses!')
    else:
        print(f'Nope. The number I was thinking of was {number}.')

if __name__ == "__main__":
    main()

关键修改点说明:

  • 把原来固定次数的for循环改成while True无限循环,让游戏可以重复进行直到用户主动退出
  • 增加了输入验证逻辑,确保用户只能输入yes或no,避免无效输入导致的程序异常
  • 当用户输入no时,通过break直接退出主循环,程序干净结束;输入yes则回到循环顶部,重新开始一轮游戏
  • 补全了猜数字游戏的核心逻辑,确保整个游戏可以正常运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:33:25