python基础
1 from multiprocessing import Process, current_process 2 import os 3 from os import name 4 5 # **kwargs接收字典参数, *args接收元组参数 6 def test(a, b, c=0, **kw): 7 print(a) 8 print('a: {0}, b: {1}, c: {2}, kw: {3}'.format(a, b ,c , kw) ) 9 # test(1, 2,name='wang', age=18) 10 11 # 递归 12 def test1(a, b): 13 if a == 1: 14 return b 15 print(a, b) 16 return test1(a-1, a*b) 17 # c = test1(6, 1) 18 # print(c) 19 20 # 迭代(遍历) 21 # d = {'a': 1, 'b': 2, 'c': 3} 22 # for k, v in d.items(): 23 # print(k, v) 24 25 # for v in d.values(): 26 # print(v) 27 28 # for k in d.keys(): 29 # print(k) 30 31 # 多进程:Process, 多线程:threading 32 # def test2(number): 33 # pid = os.getpid() 34 # name = current_process().name 35 # print('我是{0}, name={1}, pid={2}'.format(number, name, pid)) 36 37 # if __name__ == '__main__': 38 # a = [5, 10, 15, 20, 25, 4, 5, 6, 6, 7, 8, 23, 134, 4, 5, 245, 4, 3, 543, 5, 43543] 39 # b = [] 40 # for i in a: 41 # b.append(Process(target=test2, args=(i,))) 42 43 # for i in b: 44 # i.start() 45 46 # for i in b: 47 # i.join() 48 49 50 # 线程之间的通信,使用condition ontify唤醒处于wait状态的线程, wait使线程处于阻塞状态 51 # type()不考虑继承, isinstance(object, 类型)考虑继承
1 # yield g本质是return g下一次迭代从yield g下一行开始直到出现异常或break 2 def triangles(): 3 g = [1] 4 while True: 5 yield g 6 g.append(0) 7 g = [g[i] + g[i - 1] for i in range(len(g))] 8 9 10 n = 0 11 for t in triangles(): 12 print(t) 13 n = n + 1 14 if n == 15: 15 break
结果
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
[1, 5, 10, 10, 5, 1]
[1, 6, 15, 20, 15, 6, 1]
[1, 7, 21, 35, 35, 21, 7, 1]
[1, 8, 28, 56, 70, 56, 28, 8, 1]
[1, 9, 36, 84, 126, 126, 84, 36, 9, 1]
[1, 10, 45, 120, 210, 252, 210, 120, 45, 10, 1]
[1, 11, 55, 165, 330, 462, 462, 330, 165, 55, 11, 1]
[1, 12, 66, 220, 495, 792, 924, 792, 495, 220, 66, 12, 1]
[1, 13, 78, 286, 715, 1287, 1716, 1716, 1287, 715, 286, 78, 13, 1]
[1, 14, 91, 364, 1001, 2002, 3003, 3432, 3003, 2002, 1001, 364, 91, 14, 1]