要为猜数字游戏添加计时器功能,我们可以使用Python的time模块来实现。以下是修改后的代码示例,其中包含了计时器的实现:
import random
import time
def guess_number_game():
# 随机生成一个1到100之间的数字
secret_number = random.randint(1, 100)
attempts = 0
total_time = 60 # 总时间限制为60秒
start_time = time.time() # 记录游戏开始时间
print("欢迎来到猜数字游戏!")
print("我已经想好了一个1到100之间的数字。")
print("看看你是否能在10次之内猜中它!")
print(f"你有{total_time}秒的时间来完成游戏。")
while attempts < 10:
attempts += 1
remaining_time = total_time - (time.time() - start_time)
print(f"剩余时间:{int(remaining_time)}秒")
try:
guess = int(input("猜一个数字:"))
except ValueError:
print("请输入一个有效的整数!")
continue
# 检查玩家的猜测
if guess < secret_number:
print("太低了!")
elif guess > secret_number:
print("太高了!")
else:
print(f"恭喜你!你猜对了,数字是{secret_number}。")
print(f"你总共猜了{attempts}次。")
print(f"你用时{int(time.time() - start_time)}秒。")
return
time.sleep(1) # 等待1秒,确保计时器准确
if time.time() - start_time >= total_time:
print("时间到!")
print(f"很遗憾,你没有猜中。")
print(f"正确答案是{secret_number}。")
else:
print("很遗憾,你没有猜中。")
print(f"正确答案是{secret_number}。")
print(f"你总共猜了{attempts}次。")
print(f"你用时{int(time.time() - start_time)}秒。")
if __name__ == "__main__":
guess_number_game()
代码说明
导入模块:
import random import time导入
random模块用于生成随机数,导入time模块用于计时。定义游戏函数:
def guess_number_game():生成随机数:
secret_number = random.randint(1, 100)初始化尝试次数和总时间:
attempts = 0 total_time = 60 # 总时间限制为60秒记录游戏开始时间:
start_time = time.time()打印游戏说明和时间限制:
print("欢迎来到猜数字游戏!") print("我已经想好了一个1到100之间的数字。") print("看看你是否能在10次之内猜中它!") print(f"你有{total_time}秒的时间来完成游戏。")进入猜数字循环:
while attempts < 10:显示剩余时间:
remaining_time = total_time - (time.time() - start_time) print(f"剩余时间:{int(remaining_time)}秒")获取玩家输入并处理异常:
try: guess = int(input("猜一个数字:")) except ValueError: print("请输入一个有效的整数!") continue检查玩家猜测:
if guess < secret_number: print("太低了!") elif guess > secret_number: print("太高了!") else: print(f"恭喜你!你猜对了,数字是{secret_number}。") print(f"你总共猜了{attempts}次。") print(f"你用时{int(time.time() - start_time)}秒。") return等待1秒以确保计时器准确:
time.sleep(1)检查是否达到时间限制:
if time.time() - start_time >= total_time: print("时间到!") print(f"很遗憾,你没有猜中。") print(f"正确答案是{secret_number}。") else: print("很遗憾,你没有猜中。") print(f"正确答案是{secret_number}。") print(f"你总共猜了{attempts}次。") print(f"你用时{int(time.time() - start_time)}秒。")调用游戏函数:
if __name__ == "__main__": guess_number_game()
通过这个修改,游戏会在每次玩家猜测后显示剩余时间,并且会在时间用尽时结束游戏。
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。
「python」更多文章
Python 部署与分发:Docker、PyPI 发布与可复现环境
Python 项目从开发到生产的完整部署路径:Docker 多阶段构建与镜像优化、uvicorn/gunicorn 服务器配置、pyinstaller/uv 打包独立可执行文件、PyPI 包发布流程、Nix 可复现环境。附带 Dockerfile 模板和 GitHub Actions 发布流水线。
Python 测试与质量工程:pytest、mock 与覆盖率实战
Python 测试金字塔完整实践:pytest 核心(fixture/parametrize/monkeypatch)、unittest.mock/patch、Monkeypatch、覆盖率 pytest-cov、类型测试、CI 集成策略与 doctest。覆盖从单元测试到集成测试的完整工程方案。
Python 现代工具链:uv + ruff + mypy 全链路工程实践
Python 工具链现代化完整指南:uv(极速包管理+虚拟环境+Python 安装)、ruff(lint+format 一体化)、mypy/pyright 类型检查、pipx 工具安装、 hatch/poetry/pdm 项目管理、从 pip 到 uv 的迁移路径。附带 pyproject.toml 完整配置模板。