我说一下我的感想,希望对别人有所帮助。
生成器就像是定一个规律,这个规律告诉程序应该如何输出,运作。
比如杨辉三角,我认为它的规律是1 +(这个+表示字符串之间的+) 上层两数之和+相差距离为1的两数之和......(以此类推) + 1。
#但是从[1]-->[1,1]的过程中无法用上面的规律,呢么可以将[1]和[1,1]的输出单独运行,除此之外的可以用上面的规律生成 def yang(h = 1): j = 0 if h >= 2: hh = 2 else: hh = 1 while j != hh: j += 1 yield j * [1] if h > 2: up = [1,1] while len(up) != h: zhongjian = [] shang = 0 xia = 1 while len(zhongjian) < len(up) - 1: zhongjian.append(up[shang] + up[xia]) shang += 1 xia += 1 yield [1] + zhongjian + [1] up = [1] + zhongjian + [1] sanjiaoH = input('请输入杨辉三角的层数:') for i in yang(int(sanjiaoH)): print(i)
Sign in to make a reply
Jack
我说一下我的感想,希望对别人有所帮助。
生成器就像是定一个规律,这个规律告诉程序应该如何输出,运作。
比如杨辉三角,我认为它的规律是1 +(这个+表示字符串之间的+) 上层两数之和+相差距离为1的两数之和......(以此类推) + 1。