首页 > 解决方案 > Python 返回时间性能 time.clock()

问题描述

我有以下代码,我想在其中测量时间性能。

import time

def fibonacci(n):
    t0 = time.clock()
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        a = fibonacci(n-1)
        b = fibonacci(n-2)
    return a + b, time.clock()  

当我运行它时,我Type error: can only concatenate tuple (not "int") to tuple
怎样才能返回函数的结果和时间性能呢?我在这里想念什么?

标签: pythonperformancetimereturn

解决方案


a并且b是你的函数的结果,你正在返回一个元组......只需从函数外部调用主斐波那契调用,例如在函数包装器中:

def time_fibonacci(n):
    start = time.clock()
    result = fibonacci(n)
    # return a tuple: result + cpu time
    return result, time.clock() - start  

并修复了斐波那契本身(没有时钟):

def fibonacci(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        a = fibonacci(n-1)
        b = fibonacci(n-2)
    return a + b

推荐阅读