【问题标题】:Time between consecutive executions of a single function in PythonPython中单个函数连续执行之间的时间
【发布时间】:2023-04-04 10:01:01
【问题描述】:

抱歉,如果问题有点含糊,我会在必要时对其进行编辑。

我正在使用 Tkinter 在 Python 中创建一个国际象棋游戏,并想添加一个国际象棋计时器。 当玩家移动棋子时,将调用 move() 函数,从而将棋子移动到正确的方格,并且轮流切换(从黑色到白色,反之亦然) - turn 是一个列表 ["W", "B "] 跟踪轮到谁了。

当玩家选择要移动到的方格时调用:

def move():
    #code here
    turn.reverse()

要为每次移动计时,我想测量连续执行 move() 函数之间的时间(即转向开关之间的时间)。

总结:

如何测量同一函数连续执行之间的时间?

编辑

从答案中我可以看出我的问题被误解了,很抱歉没有澄清: 我希望测量执行函数(move() 函数)所需的时间。 我希望测量一个函数连续执行之间之间的时间。这里给出的答案假设我只想测量函数从开始到结束的执行时间。您不能假设 move() 函数在完成后立即再次执行;它是通过单击按钮调用的,因此在再次调用 move() 函数之前可能会有延迟(考虑移动)。

任何帮助将不胜感激。

【问题讨论】:

标签: python python-3.x tkinter time chess


【解决方案1】:

你可以使用python的time模块。如果我正确理解了您的问题,可以这样做:

import time
initial_time = time.monotonic()
def move():
    #code here
    time_gap = time.monotonic() - initial_time
    print(time_gap)
    initial_time = time.monotonic()
    turn.reverse()

【讨论】:

  • 谢谢!这正是我想要的;)
  • 无论何时调整系统时钟,这都会返回一个不正确的值。使用单调时钟,这就是它的用途。
  • @spectras 感谢老兄纠正我,我不知道单调时钟:D
猜你喜欢
  • 2016-03-18
  • 2017-02-14
  • 2017-02-07
  • 1970-01-01
  • 1970-01-01
  • 2020-10-21
  • 2019-05-29
  • 1970-01-01
  • 2020-10-23
相关资源
最近更新 更多