使用python生成杨辉三角形的示例代码

杨辉三角杨辉 定义如下:

1

/ \

1 1

/ \ / \

1 2 1

/ \ / \ / \

1 3 3 1

/ \ / \ / \ / \

1 4 6 4 1

/ \ / \ / \ / \ / \

1 5 10 10 5 1

把每一行看做一个list,试写一个generator,不断输出下一行的list:

def triangles():

L = [1]

while True:

yield L

M=L[:]#复制一个list,这样才不会影响到原有的list。不然results里的每个列表的末尾会为0.

M.append(0)

L = [M[i-1]+M[i] for i in range(len(M))]

n =0

results = []

for t in triangles():

print(t)

results.append(t)

print(results)

n = n +1

if n == 10:

break

ps:如何实现心

def printlove(start,length,midnumber=0,flag=31):

for i in range(31):

if i<start or i>start+length-1 and i<15-(midnumber-1)/2 or i>15+(midnumber-1)/2 and i<31-start-length or i> 30-start or i==flag:

print " ",

else:

print "*",

print ""

for i in range(16):

if i ==0:

printlove(4,3)

elif i==1:

printlove(1,9)

elif i>=2 and i<=5:

printlove(0,i+10)

elif i==6:

printlove(1,7,7,15)

elif i>=7 and i<=8:

printlove(i-5,6,5-(i-7)*2)

elif i==9:

printlove(5,6,1)

elif i==10:

printlove(8,6,1)

elif i==15:

printlove(15,1,1)

else:

printlove(i-1,16-i,1)

实现的效果如下:

以上是 使用python生成杨辉三角形的示例代码 的全部内容, 来源链接: utcz.com/z/355392.html

回到顶部