Python中的timeit模块

博客介绍了Python2和Python3的区别,如Python2中range()返回列表,xrange()返回可迭代对象,而Python3中range()返回可迭代对象。还讲解了timeit模块,包括其三个函数及在脚本中的使用,此外也提及了time模块。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

1. Python2和Python3的区别

  • Python2:range()函数返回的是列表List对象,xrange()函数返回的可迭代的对象
  • Python3:range()函数返回的是可迭代的对象

2. timeit 模块:准确测量小段代码的执行时间

参考博文:https://blog.youkuaiyun.com/mzpmzk/article/details/75220819

  • timeit 模块中的三个函数 
    • timeit.timeit(stmt='pass', setup='pass', timer=<default timer>, number=1000000):创建一个Timer实例,参数分别是stmt(需要测量的语句或函数),setup(初始化代码或构建环境的导入语句),timer(计时函数),number(每一次测量中语句被执行的次数)
    • timeit.repeat(stmt='pass', setup='pass', timer=<default timer>, repeat=3, number=1000000):创建一个Timer实例,指定整个试验的重复次数,返回一个包含了每次试验的执行时间的列表,利用这一函数可以很方便得实现多次试验取平均的方法。
    • timeit.default_timer():默认的计时器,一般是time.perf_counter(),time.perf_counter()方法能够在任一平台提供最高精度的计时器(它也只是记录了自然时间,记录自然时间会被很多其他因素影响,例如计算机的负载)
  • 在脚本程序中的使用
import timeit

def test():
    L = []
    for i in range(100):
        L.append(i)
if __name__ == '__main__':
    print timeit.timeit("test()", setup="from __main__ import test")

    x = list(range(2000000))
    t0 = timeit.timeit("x.pop(0)", "from __main__ import x", number=1000)
    print("cost {} seconds ".format(t0))

3. time模块

# -*- coding: utf-8 -*-

# 如果 a+b+c=1000,且 a^2+b^2=c^2(a,b,c 为自然数),如何求出所有a、b、c可能的组合?

import time
# time.time() 获取当前时间戳
start_time = time.time()
for a in range(0,1001):
	for b in range(0,1001):
		c = 1000 - a - b
		if a**2 + b**2 == c**2:
			print "a, b, c: %d, %d, %d" % (a, b, c)
end_time = time.time()
print "Time: %d" % (end_time - start_time)
print "Finished!"

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值