我是Python编程新手。我今天早上开始做Project Euler,我想知道执行我的解决方案需要多长时间。我在网上搜索了一个解决我的
的方法。import time
class Solution(object):
def fibonacci(self,limit):
sum = 0
current = 1
next = 2
while(current <= limit):
if current % 2==0:
sum += current
current, next = next, current + next
return str(sum)
if __name__ == "__main__":
start = time.clock()
solution = Solution().fibonacci(4000000)
elapsed = time.clock()-start
print("Solution: %s"%(solution))
print("Time: %s seconds"%(elapsed))
输出:解决方案:4613732
时间:2.006085436846098e-05秒
import time
class Solution(object):
def fibonacci(self,limit):
sum = 0
current = 1
next = 2
while(current <= limit):
if current % 2==0:
sum += current
current, next = next, current + next
return str(sum)
if __name__ == "__main__":
start = time.time()
solution = Solution().fibonacci(4000000)
elapsed = time.time()-start
print("Solution: %s"%(solution))
print("Time: %s seconds"%(elapsed))
输出:解决方案:4613732
时间:0.0秒
我的问题是
- 以上计算的时间正确吗?
- time.time()和time.clock()有什么区别?如果我使用time.time(),我得到0.0作为时间。
在Python time
模块中,time.clock()
以秒为单位测量自函数第一次调用以来的时间,time.time()
以秒为单位测量自1970年1月1日以来的时间。
time.clock()
通常更精确,所以我推荐使用它。这就是为什么在第一个示例中结果很小,在第二个示例中四舍五入为零的原因。