最近在看廖雪峰的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行的三個數恰好對應著兩數和的...