Python:每日一题 157:2的n次方3的n次方序列合并

2的n次方是2, 4, 8, 16, 32, 64, 128, 256, 512, 1024,  2048......
3的n次方是3, 9, 27, 81, 243, 729,  2187......
如果两个序列合并,并按由小到大排列则是
2, 3, 4, 8, 9, 16, 27, 32, 64, 81, 128, 243, 256, 512, 729, 1024, 2048, 2187......
现在要求编写一个函数fun(),以yield返回值,成为一个生成器,可以以下面的方式调用函数,
for i in fun():
    print(i)

    input() #这里加入一个输入等待,按一次回车显示一个


Python源码:

def fun():
    a = 2
    b = 3
    while True:
        if a < b:
            yield a
            a *= 2
        else:
            yield b
            b *= 3
for i in fun():
    print(i)
    input()

猜你喜欢

转载自blog.csdn.net/hcmdghv587/article/details/79933360