如何在Python中度量时间?
我想启动我的程序,测量程序启动的时间,然后等待几秒钟,按下按钮(K_RIGHT),然后测量按下按钮的时间。我正在使用Pygame注册按键。但在我下面的代码中,它并没有注册我的Keydown。我做错了什么如何在Python中度量时间?,python,datetime,time,pygame,Python,Datetime,Time,Pygame,我想启动我的程序,测量程序启动的时间,然后等待几秒钟,按下按钮(K_RIGHT),然后测量按下按钮的时间。我正在使用Pygame注册按键。但在我下面的代码中,它并没有注册我的Keydown。我做错了什么 start = time.time() for e in pygame.event.get(): if e.type == pygame.KEYDOWN: if e.key == pygame.K_RIGHT: end= time.time()
start = time.time()
for e in pygame.event.get():
if e.type == pygame.KEYDOWN:
if e.key == pygame.K_RIGHT:
end= time.time()
diff = end-start
下面是一个最小、完整的示例,用于打印正确的时差。传递的时间只是
time.time()
(现在)和开始时间之间的差值
您也可以使用而不是time.time
(它以毫秒而不是秒为单位返回时间)
用户不应该在等待时间内按下按钮?用户应该可以,我只是不知道如何解决它。尝试了time.sleep(),但这是错误的。请尝试使用pygame内置的时间模块,而不是使用时间模块,即pygame.time.clock()等效于time.time()。尝试使用pygame内置函数。谢谢您的提示,但是如果该函数是等效的,那么它会有任何区别吗?@ddd功能级别不多,编码级别太高(更像pythonic的方式),但是您使用pygame作为核心组件,那么通常会尽可能多地使用该包内置函数。更干净的代码。哇,它工作!!我想问你:在这种情况下,你用time.clock()做什么?当使用“whilenotdone”循环时?在这种情况下需要它吗?pygame.time.Clock用于限制帧速率,否则程序将尽可能快地运行<代码>时钟。勾选(60)在这种情况下将其限制为每秒60帧。-是的,while循环是必要的。原因是什么?如果我理解正确的话,它只会显示Pygame是否打开?而且pg.display.flip()也不是真的需要,我是对的?如果没有循环,程序将立即完成,窗口将关闭。-是的,如果您不想绘制任何内容,可以删除
pg.display.flip()
和screen.fill(BG\U颜色)
。
import time
import pygame as pg
pg.init()
screen = pg.display.set_mode((640, 480))
clock = pg.time.Clock()
BG_COLOR = pg.Color('gray12')
start = time.time()
done = False
while not done:
for event in pg.event.get():
if event.type == pg.QUIT:
done = True
elif event.type == pg.KEYDOWN:
if event.key == pg.K_RIGHT:
diff = time.time() - start
print(diff)
screen.fill(BG_COLOR)
pg.display.flip()
clock.tick(60)
pg.quit()