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

如何根据输入的尝试次数控制Python猜数字游戏的循环次数

猜数字游戏自定义尝试次数实现方案

核心实现思路

  • 在生成随机数后新增剩余次数变量,初始值等于玩家输入的自定义尝试次数
  • 玩家每完成1次有效猜测(输入合法且在规定范围内),剩余次数自动减1
  • 剩余次数为0时直接判定玩家本局失败,结束本轮游戏
  • 同步修复原代码的逻辑漏洞:非数字输入的异常捕获、调整判断顺序避免死循环、将重玩逻辑移到每轮胜负判定之后

修改后可直接运行的完整代码

from random import randint
from time import sleep as wait

while True:
    # 玩家设置游戏参数阶段
    while True:
        try:
            # 玩家选择随机数范围
            range_ = int(input("请输入随机数的最大值(比如输入50,随机数范围就是1-50):"))
            if range_ == 0:
                print("\n不能设置为0\n")
                continue
            if range_ == 1:
                print("\n范围不能设置为1,没有猜测意义\n")
                continue
            if range_ < 0:
                print("\n不能设置负数范围\n")
                continue

            # 玩家自定义尝试次数
            tries = int(input("请输入你想要的可尝试次数:"))
            if tries == 0:
                print("\n尝试次数不能设置为0\n")
                continue
            if tries < 0:
                print("\n尝试次数不能是负数\n")
                continue
            break
        except ValueError:
            print("\n请输入合法整数\n")
            continue

    # 生成随机答案
    ai = randint(1, range_)
    remaining_tries = tries
    win = False

    # 猜数字阶段
    while remaining_tries > 0:
        print(f"\n剩余可用次数:{remaining_tries}")
        try:
            player = int(input("请输入你猜的数字:"))
        except ValueError:
            print("请输入整数!")
            continue

        if player > range_ or player < 1:
            print(f"请输入1到{range_}范围内的数字")
            continue

        if player < ai:
            print("再大一点!")
            remaining_tries -= 1
        elif player > ai:
            print("再小一点!")
            remaining_tries -= 1
        else:
            print("恭喜你猜对了!你赢了!")
            win = True
            break

    # 次数耗尽判断
    if not win:
        print(f"\n你的次数已经用完啦!正确答案是{ai},本局你输了。")

    # 重玩询问
    again = input("\n是否要再玩一局?(yes/no):").lower()
    if again != "yes":
        print("再见!")
        wait(3)
        break

关键修改点说明

  • 新增了剩余次数计数逻辑,严格按照玩家输入的数值作为猜测次数上限,次数耗尽直接结束本局
  • 补充了猜数字输入的异常捕获,避免用户输入非数字内容时程序直接崩溃
  • 调整了判断顺序,猜对或次数耗尽后直接触发胜负判定,不会进入死循环
  • 把重玩询问统一放在每轮游戏结束后,逻辑更清晰不会被前面的跳转语句跳过

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:36:05