'''列表生成式[exp for val in collection if condition]生成器方法一:(exp for val in collection if condition)方法二:使用yield关键字'''a1 = (x for x in range(1, 10) if x % 2 == 0)print(a1) #是一个对象# python2 a1.next()print(next(a1)) # python3 是直接调用next方法,到下一个print("#"*20) # 打印20个#号for i in a1: print(i)a2 = [x for x in range(1, 10) if x % 2 == 0]print(a2) #是一个列表def test(): a = 1 for i in range(1, 10): yield i #返回之后会回到这里,执行下一行 a += 1 # return i# return 和 yield的区别# yield可以理解成return ,但是比return多一些角色# yield每次都返回,但是下一次取值,是从yield的下一行开始执行m = test()print(m)# 九宫格def jgg(): # number = list() count = 1 # for i in range(1, 10): # number.append(i) for A in [x for x in range(1, 10)]: for B in [x for x in range(1, 10) if x != A]: for C in [x for x in range(1, 10) if x != A and x != B]: for D in [x for x in range(1, 10) if x != A and x != B and x != C]: for E in [x for x in range(1, 10) if x != A and x != B and x != C and x != D]: for F in [x for x in range(1, 10) if x != A and x != B and x != C and x != D and x != E]: for G in [x for x in range(1, 10) if x != A and x != B and x != C and x != D and x != E and x != F]: for H in [x for x in range(1, 10) if x != A and x != B and x != C and x != D and x != E and x != F and x != G]: for I in [x for x in range(1, 10) if x != A and x != B and x != C and x != D and x != E and x != F and x != G and x != H]: if ( A + B + C == D + E + F == G + H + I == A + D + G == B + E + H == C + F + I == A + E + I == C + E + G == 15): print(''' ------------- 第 | {1} | {2} | {3} | {0}. | {4} | {5} | {6} | 个 | {7} | {8} | {9} | ------------- '''.format(count, A, B, C, D, E, F, G, H, I)) count += 1# 九宫格 end# jgg() 想要输出九宫格结果就去掉注释