生成器 经典笔试题目

2023-03-05  本文已影响0人  晨颜
def add(n,i):
    print("看看add执行了多少次n+i=%s+%s=%s"%(n,i,n+i))
    return n+i
def test():
    for i in range(4):
        print("i",i)
        yield i
g=test()
for n in  [1,10]:
    g = (add(n, i) for i in g)
print(list(g))

A. res=[10,11,12,13]
B. res=[11,12,13,14]
C. res=[20,21,22,23]
D. res=[21,22,23,24]

通过分析

def add1(n,i):
    print("看看add1执行情况n+i=%s+%s=%s"%(n,i,n+i))
    return n+i
def add2(n,i):
    print("看看add2执行情况n+i=%s+%s=%s"%(n,i,n+i))
    return n+i
def test():
    for i in range(4):
        print("i=",i)
        yield i
g=test()

for n in  [1,10]:
    if n==1:
        f=q=k=g = (add1(n, i) for i in g)
        print("记录n=1,n=%s,g=%s" % (n, g))
    else:
        m=q=g = (add2(n, i) for i in g)
        print("记录n=10,n=%s,g=%s"%(n,g))
    # g.__iter__()
print("总的g",list(g),list(f),list(m))
image.png image.png
上一篇 下一篇

猜你喜欢

热点阅读