第四章的习题

#计时工具
import time, sys, math

def funcSqrt(x): return math.sqrt(x)
def funcStars(x): return x ** 0.5
def funcPow(x): return pow(x, 0.5)

#重复100000次的总时间
def mytime(func, num=10000, re=100000):
    if sys.platform =='win32':
        start = time.clock()
    else:
        start = time.time()
    for i in range(re):
        res = func(num)
    thetime = time.clock() - start
    return thetime, res

#重复50次,取每1000次用时最小的值
def mybest(func, times=50):
    best = 2 * 32
    for i in range(times):
        time, res = mytime(func,re=1000)
        if best > time:
            best = time
    return best, res

print(sys.version)
for fun in (mytime, mybest):

    print('=' * 40)
    print('<%s>' % fun.__name__)
    for func in (funcSqrt, funcStars, funcPow):
        print('-' * 40)
        print('%-10s>>>  %.5f  >>>  %f' % (func.__name__, fun(func)[0], fun(func)[-1]))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值