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

响应时间测试游戏代码优化:实现指定轮次循环运行需求

响应时间测试器代码优化(实现指定轮次循环)

用户需要让这段响应时间测试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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 09:07:17