python输出斐波那契数列三角形
16lz
2021-01-22
一.
def feb(n): line=[1] list=[1,1] print '\t'*(n-1), print line[0] for i in range(n-1): new_list = list new_list.append(list[i]+list[i+1]) list = new_list line_new = [1] for j in range(i): line_new.append(line[j]+line[j+1]) line = line_new line.append(1) print '\t'*(n-i-2), for item in line: print item,'\t\t', print list[i]
二.
#!/usr/bin/python #encoding:utf-8 def feb(n): list = [1] a = lambda x, y: x + y print n*'\t',list[0] for i in range(n): list_a = [0] + list list_b = list + [0] list_new = map(a, list_a, list_b) print '\t'*(n-i-1), for each in list_new: print each,2*'\t', print '\n' list = list_new feb(8)
三.生成器
#! /usr/bin/python # encoding:utf-8 def feb(): list=[1] while True: yield list list_new=[] for i in range(len(list)-1): list_new.append(list[i]+list[i+1]) list_new.append(1) list_new.insert(0,1) list=list_new if len(list)>10: break f=feb() for each in f: print each #also can <pre name="code" class="python">def feb(): list=[1] while True: yield list list=[list[i]+list[i+1] for i in range(len(list)-1)] list.append(1) list.insert(0,1) if len(list)>10: break f=feb() for each in f: print each