最近在学python,做个笔记,如果有错误,感谢大家帮指正。
先弄了个计算程序执行时间的代码:
import time
def calc_time(func):
def swrapper(*args, **kwargs):
ti1 = time.time()
x = func(*args, **kwargs)
ti2 = time.time()
print(func.__name__,"time cost",":",ti2-ti1)
return x
return swrapper
1.测for 跑range迭代器 和 while 跑变量自减
代码如下:
@calc_time
def whiletime(n):
while n >= 0:
n = n - 1
@calc_time
def fortime(n):
for i in range(n+1):
pass
num = 1000000
whiletime(num)
fortime(num)
显示结果:
whiletime time cost : 0.07555246353149414
fortime time cost : 0.02752089500427246
for跑出来的时间大概是while的一半,跑了好多次,差不多大概都是这个情况
2.在C/C++里调换两个值,通常定义中间变量,但python中可以通过a,b=b,a直接操作,时间分析如下:
@calc_time
def tmpchange(n):
a = [1, 2]
for i in range(n):
tmp = a[1]
a[1] = a[0]
a[0] = tmp
@calc_time
def exchange(n):
a = [1, 2]
for i in range(n):
a[0], a[1] = a[1], a[0]
显示结果:
exchange time cost : 0.13666939735412598
tmpchange time cost : 0.14264225959777832
大部分时间都是exchange 大于 tmpchange,有时候也会出现小于的情况,具体原因还不清楚。
###最后自己建了个交流群,请感兴趣的加入学习交流>