响应时间测试游戏代码优化:实现指定轮次循环运行需求
响应时间测试器代码优化(实现指定轮次循环)
用户需要让这段响应时间测试Python代码按照输入的指定轮次循环执行,每轮流程为:
- 提示用户在随机生成的目标秒数后按Enter
- 进行3秒倒计时
- 记录用户按Enter的响应时间
- 计算响应时间与目标时间的差值并给出对应评级
原代码存在结构错误、变量冲突等问题,无法实现预期的循环逻辑,以下是修复后的完整代码及说明:
import random import time from typing import List def calculate_rating(diff: float) -> str: if diff <= 0.25: return "优秀!" elif diff <= 0.5: return "很棒" elif diff <= 1: return "良好!" elif diff <= 2: return "尚可!" else: return "失误" print("欢迎来到响应时间测试器!") print("你需要在随机时长后按下Enter键。") print("你能有多精准?") while True: try: total_rounds = int(input("输入想要的轮次数:")) if total_rounds <= 0: print("轮次数必须大于0,请重新输入。") else: break except ValueError: print("输入无效,请输入数字。") for current_round in range(1, total_rounds + 1): print(f"\n第{current_round}轮,共{total_rounds}轮") # 随机生成2-8秒的目标时长 target_seconds = random.randint(2, 8) print(f"请在{target_seconds}秒后按下Enter") # 3秒倒计时 for i in range(3, 0, -1): print(i) time.sleep(1) print("开始!") # 记录开始时间 start_time = time.time() # 等待用户按Enter input() # 计算响应时间和差值 response_time = round(time.time() - start_time, 2) diff = abs(target_seconds - response_time) # 获取评级并输出结果 rating = calculate_rating(diff) print(f"响应时间:{response_time}秒。") print(f"目标时长为{target_seconds}秒,你的差值为{diff}秒") print(f"你的评级为:{rating}")
修复关键点
- 修复变量名冲突:将循环变量从
rounds改为current_round,避免覆盖用户输入的总轮次变量 - 调整代码结构:将每轮测试的核心逻辑放入
for循环内部,确保每轮都重新生成目标时长、执行倒计时和响应时间记录 - 合并重复导入:将
import time等导入语句移到代码顶部,避免重复导入 - 翻译提示文本为中文:匹配预期运行效果中的中文提示
- 修正字符串换行问题:解决原代码中多行字符串换行导致的语法错误
- 调整评级文本为中文:将原英文评级对应翻译成符合中文习惯的表述
内容的提问来源于stack exchange,提问作者user21330504
相关产品推荐
相关产品推荐

