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

Python入门:如何为简易猜数字游戏添加循环功能

解决猜数字游戏的循环与退出问题

你的代码基础没问题,但缺少循环逻辑和输入处理,直接给你修改后的可运行版本,再拆解关键部分:

import random

player_name = input("What is your name?\n")
print(f"Hello {player_name}!\n")
random_num = random.randint(1, 9)  # 这里改成1-9,和你要求的范围一致

while True:
    guess_input = input("Guess a number between 1-9, or enter 'q' to quit:\n")
    
    # 处理退出请求
    if guess_input.lower() == 'q':
        print(f"Thanks for playing! The correct number was {random_num}.")
        break
    
    # 确保输入是有效数字,避免程序报错
    try:
        guess = int(guess_input)
        # 检查数字是否在1-9范围内
        if not (1 <= guess <= 9):
            print("Hey, stick to numbers 1-9!\n")
            continue
    except ValueError:
        print("C'mon, enter a number or 'q' to quit.\n")
        continue
    
    # 判断猜测结果
    if guess == random_num:
        print(f"You nailed it! The number was {random_num}.")
        break
    else:
        # 给个小提示,让游戏更有意思
        hint = "too high" if guess > random_num else "too low"
        print(f"Nope, that's {hint}. Try again.\n")

关键改动说明:

  • 无限循环控制流程:用while True创建持续运行的循环,直到用户猜对或者输入q退出,遇到break就终止循环。
  • 退出逻辑:每次输入时先检查是不是q,是的话直接结束游戏并告知正确答案。
  • 输入验证:用try-except处理非数字输入,避免程序崩溃;同时检查数字是否在1-9范围内,不符合就提示用户重新输入。
  • 循环内获取猜测:把输入猜测的代码放到循环里,这样每次猜错后用户能重新输入,而不是只猜一次。
  • 增加提示信息:告诉用户猜大了还是猜小了,提升游戏体验。

原代码的核心问题:

  1. guess只在程序启动时输入一次,猜错后没有机会重新输入
  2. 函数number_game只执行一次,没有循环调用的逻辑
  3. 没有处理用户中途退出的需求

这样修改后,游戏就能持续运行直到猜对,也支持用户随时退出了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 00:50:50