为了账号安全,请及时绑定邮箱和手机立即绑定

运行效率问题

import time


def performance(unit):

    def performance_decortor(f):

        def wrapper(*args, **kw):

            t1 = time.time()

            r = f(*args, **kw)

            t2 = time.time()

            print 'call %s() in %f%s'%(f.__name__,(t2 - t1)*1000,unit)

            return r

        return wrapper

    return performance_decortor


@performance('ms')

def factorial(n):

    return reduce(lambda x,y: x*y, range(1, n+1))


print factorial(10)


我这样写的代码,然后跟标准的都运行了,时间差距极大,运行了很多遍都是这样,试过换顺序,结果一直是上面运行时间比下面时间长,大概500倍左右,想知道为什么

https://img1.sycdn.imooc.com//5b65923300011d0614240711.jpg

正在回答

3 回答

不是执行效率的问题。你这代码里少了if语句,自然执行要快啊。看我的测试:注掉if语句后运行时间缩短到原来的千分之一

https://img1.sycdn.imooc.com//5b7624d60001f3ba09030436.jpg

0 回复 有任何疑惑可以回复我~

我的也是这样,我在电脑上写的,执行时间是0

0 回复 有任何疑惑可以回复我~

我只能说是正常的,OS的调度因素吧

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

运行效率问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信