2016-01-24 30 views
0

想要计算KeyCount1 = 1和= 27之间的经过时间,使用时间模块我可以找到开始时间和停止时间'this bit works'。然而,当我尝试通过简单地减去(Start1 - Stop1)来找到逝去的时间时,我得到一个错误,说我在分配之前引用了Start1,尽管事实上我只是分配了它......所以我想。计算python中的事件之间的时间差异时出错

if KeyCount1 == 1: 
     Start1 = int(round(time.time())) 
     print(Start1) 
    if KeyCount1 == 27: 
     Stop1 = int(round(time.time())) 
     print(Stop1) 
     TotalT1 = Stop1 - Start1 
     print(TotalT1) 
+1

你怎么用这个代码?我认为27应该是1 –

回答

0

我设法让它通过使用全局变量来工作,问题是每次函数迭代它都会忘记Start1是什么。无论如何,谢谢你的帮助。

+0

如果你有一个使用全局的解决方案 - 你几乎肯定会有错误的解决方案:特别是如果你的代码变得更复杂,那么考虑使用带有方法的类。一旦你有一个类和类的实例 - 你可以在'函数'调用之间保留信息(因为方法只是一个附加到类的函数)。正常的功能永远不会保留呼叫之间的信息(正如你现在发现的那样)。 –

+0

感谢您的建议,但在我的程序的上下文中,该函数中的其他变量需要在函数执行时重置。 –

+0

没有理由不能在班上完成所有这些。类中的方法具有与函数相同的功能,并具有持久数据的优点。 –

0

使用日期时间模块,而不是

from datetime import datetime 
import time 

start = datetime.now() 
time.sleep(5) 
end = datetime.now() 

total = end-start 

print total.total_seconds()