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

Python:如何避免time.time()计时结果重复打印

问题:单次计时结果重复输出的解决方法

当前代码在检测到1个圆时会重复打印计时结果,需求是仅输出最终的一次计时结果(从检测到5个圆开始,到检测到1个圆结束的时长)。

原代码

if (len(circles[0, :])) == 5:
    start = time.time()

if (len(circles[0, :])) == 1:
    end = time.time()

    t = timedelta(seconds=end-start)

    print(t)

当前输出

0:00:01.615148
0:00:01.633098
0:00:01.673181
0:00:01.698559
0:00:01.754114
0:00:01.769037
0:00:01.816332
0:00:01.833286
0:00:01.864809
0:00:01.900769
0:00:01.932686
0:00:01.966634
0:00:01.998760
0:00:02.032730
0:00:02.088114
0:00:02.108045

需求输出

0:00:02.108045

解决方案

核心问题是代码每次检测到1个圆就执行打印,没有判断是否为首次完成计时。通过添加状态变量控制仅打印一次即可解决:

修改后的代码

# 初始化状态变量,标记计时是否已完成
timing_completed = False

if (len(circles[0, :])) == 5:
    start = time.time()
    # 检测到5个圆时重置状态,允许重新计时
    timing_completed = False

if (len(circles[0, :])) == 1 and not timing_completed:
    end = time.time()
    t = timedelta(seconds=end-start)
    print(t)
    # 标记计时完成,避免重复打印
    timing_completed = True

逻辑说明

  • timing_completed变量默认False,表示未完成计时;
  • 检测到5个圆时,除启动计时器外,重置timing_completed为False,确保后续若再次检测到5个圆能重新触发计时;
  • 仅当检测到1个圆且timing_completed为False时,才计算并打印时长,随后将变量设为True,阻止后续重复输出。

如果你的场景只需要一次完整计时(从第一次5个圆到第一次1个圆),也可以在打印后直接调用exit()退出程序,但状态变量的方式更适配循环检测的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 22:39:25