1.while循环和for循环相同条件下的运行效率比较:
如下代码:
1 import time as tm
2 import timeit as tt
3 import random as rm
5 def while_time():
6 i = 0
7 while i < 100000001:
8 i += 1
9 if i > 100000:
10 break
11 return i
14 def for_time():
15 j = 0
16 for i in range(100000001):
17 j += 1
18 if j > 100000:
19 break
20 return j
22 if __name__ == "__main__":
23 t1 = tt.Timer("for_time()", "from __main__ import for_time")
24 print(t1.timeit(number=10))
25 t2 = tt.Timer("while_time()", "from __main__ import while_time")
26 print(t2.timeit(number=10))
结果:
说明:如上结果,for循环和while循环的时间复杂度都是T(n)=5*n+1,但是for循环的效率比while循环稍高。
2.遍历列表、元组、集合的效率比较:
如下代码:
1 def list_time():
2 for i in list1:
3 i += 1
6 def tuple_time():
7 for i in tp1:
8 i += 1
11 def set_time():
12 for i in set1:
13 i += 1
15 def main():
16 list1 = list(range(30000000))
17 tp1 = tuple(list1)
18 set1 = set(list1)
19 t1 = tt.Timer("list_time()", "from __main__ import list_time")
20 print(t1.timeit(number=10))
21 t2 = tt.Timer("tuple_time()", "from __main__ import tuple_time")
22 print(t2.timeit(number=10))
23 t3 = tt.Timer("set_time()", "from __main__ import set_time")
24 print(t3.timeit(number=10))
25 if __name__ == "__main__":
26 main()
结果:
说明:三个函数的查找的时间复杂度都为O(n),列表和元组的遍历效率差不多,集合遍历的效率稍低。
随机数、概率密度
1. 随机数:主要由 numpy.random 模块完成numpy.random.rand(3,2,3) #使用 [0,1) 区间随机数均匀分布填充一个(3,2,3)(自定义尺寸)数组
numpy.random.randn(3,2,3) // 使用标准正态分布而已
np.random.randint(low, high, size
在做项目中,常常使用到数据库连接串,大家都多少的用到过,但你对其中的各参数熟悉吗?深入的使用你了解多少,Max Pool Size什么意思,有何影响?commandtimeout你设置了吗?这些东西也许你并不太注意,下文就结合个人的应用,对这些连接串相关的内容进行说明。在SQLServer数据库中,常用的数据库连接串一般都是这样书写的:
在做项目中,常常