Python列印楊輝三角

2021-07-23 19:49:38 字數 1334 閱讀 7976

最近在看廖雪峰的python教程,學到生成器時用生成器輸出楊輝三角

def ********s():

l1=l2=

m=0while true:

if m==0:

elif m==1:

else:

for k in range(len(l1)):

#print(k)

if k!=0:

l1[k]=l2[k]+l2[k-1]

l2=l1

m=m+1

yield l1

n = 0

for t in ********s():

print(t)

n = n + 1

if n == 10:

break

輸出的結果如下:

[1][1, 1]

[1, 2, 1]

[1, 3, 4, 1]

[1, 4, 8, 9, 1]

[1, 5, 13, 22, 23, 1]

[1, 6, 19, 41, 64, 65, 1]

[1, 7, 26, 67, 131, 196, 197, 1]

[1, 8, 34, 101, 232, 428, 625, 626, 1]

[1, 9, 43, 144, 376, 804, 1429, 2055, 2056, 1]

因為在l2=l1進行賦值值時,l2是對l1的引用,這2個list指向了同一片記憶體,所以l1[k]=l2[k]+l2[k-1]這個語句其實就一直改掉了l2的資料。只要將l2=l1改為l2=l1[:]就可以啦,正確結果如下:

[1][1, 1]

[1, 2, 1]

[1, 3, 3, 1]

[1, 4, 6, 4, 1]

[1, 5, 10, 10, 5, 1]

[1, 6, 15, 20, 15, 6, 1]

[1, 7, 21, 35, 35, 21, 7, 1]

[1, 8, 28, 56, 70, 56, 28, 8, 1]

[1, 9, 36, 84, 126, 126, 84, 36, 9, 1]

網上找到的比較簡潔的方式:

def ********s():

l = [1]

while true:

yield l

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

python 列印楊輝三角

楊輝三角最本質的特徵是,它的兩條斜邊都是由數字1組成的,而其餘的數則是等於它肩上的兩個數之和。def yanghui n result 1 1,1 初始化楊輝三角 line 1,1 楊輝三角的特徵,斜邊都是數字1 for i in range 2,n r for j in range len lin...

列印楊輝三角python

特點 楊輝三角的每行行首與每行結尾的數都為1.而且,每個數等於其左上及其右上二數的和 def yanghui num 列印楊輝三角 param num 列印的行數 return yh num for row in range len yh yh row none row 1 for col in r...

列印楊輝三角

楊輝 三角形,又稱賈憲三角形,帕斯卡三角形,是二項式係數在三角形中的一種幾何排列。在我國南宋數學家楊輝所著的 詳解 九章算術 1261年 一書中用如圖的三角形解釋二項和的乘方規律。與楊輝三角聯絡最緊密的是二項式乘方展開式的係數規律,即 二項式定理。例如,在楊輝三角中,第3行的三個數恰好對應著兩數和的...