Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中度量时间?_Python_Datetime_Time_Pygame - Fatal编程技术网

如何在Python中度量时间?

如何在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()

我想启动我的程序,测量程序启动的时间,然后等待几秒钟,按下按钮(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()
           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()