#Python中,这种一边循环一边计算的机制,称为生成器:generator
L=[x*x for x inrange(10)]print(L)#[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
g=(x*x for x inrange(10))#<generator object <genexpr> at 0x1022ef630>generator保存的是算法#generator也是可迭代对象
g=(x*x for x inrange(10))for n in g:print(n)#杨辉三角defyanghui(max):
L =[1]
n =0while n <max:yield L
# 不会占用太大内存,yield就是 return 返回一个值# 并且记住这个返回的位置# 下次迭代就从这个位置后(下一行)开始。
L.append(0)
L =[L[i -1]+ L[i]for i inrange(len(L))]
n = n +1for li in yanghui(7):print(li)#调用函数的时候需要用一个for循环把生成器中的内容依次提取出来#高阶函数# 编写高阶函数,就是让函数的参数能够接收别的函数。defadd(x, y, f):return f(x)+ f(y)print(add(-5,6,abs))# 示例加减乘除defjia(x, y):return x + y
defjian(x, y):return x - y
defcheng(x, y):return x * y
defchu(x, y):if y !=0:return x / y
else:return x *float("inf")deffull(x, y, f):return f(x, y)# 计算 1-(2*3)+5/6print(full((full(1, full(2,3, cheng), jian)), full(5,6, chu), jia))
1.29python#Python中,这种一边循环一边计算的机制,称为生成器:generatorL=[x*x for x in range(10)]print(L)#[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]g=(x*x for x in range(10))#<generator object <genexpr> at 0x1022ef630>generator保存的是算法#generator也是可迭代对象g=(x*x for x i