python 生成器生成楊輝三角的方法 必看

2022-10-03 09:00:13 字數 1047 閱讀 4241

用python寫趣味程式感覺屌屌的,停不下來

#生成器生成展示楊輝三角

#原理是在乙個2維陣列裡展示楊輝三角,空的地方用0,輸出時,轉化為' '

def yang(line):

n,leng=0,2*line - 1

f_list = list(range(leng+2)) #預先分配,insert初始胡會拖慢速度,最底下一行,左右也有1個空格

#全部初始化為0

for i,v i程式設計客棧n enumerate(f_list):

f_list[v] = 0

zerolist = f_ #預留乙個全零的陣列

f_list[leng//2] = 1 #初始的第一行

re_list =f_list[:]

n=0while n < line:

n = n+1

yield re_list

f_list,re_list = re_list[:],zerolist[:]

start = leng//2-n #計算一行中第乙個1的位置

end = start + 2*n #計算一行中最後乙個1的位置

while start <= end:

re_list[start] = f_list[start - 1] +www.cppcns.com f_list[star程式設計客棧t+1] #不管是不是1,該位置的數字,都是上一行該位置的左右兩個數的和

start = start + 1

return 'done'

def printlist(l):

n = 0

p_str = ''

for value in l:

ch = str(value)

if value == 0:

ch = ' '

p_str = p_str + ch

print(p_str)

for value in yang(8):

printlist(value)

本文標題: python 生成器生成楊輝三角的方法(必看)

本文位址:

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 期待輸出 1 1,1 1,2,1 1,3,3,1 1,4,6,4,1 1,5,10,10,5,1 1,6,15,2...

Python生成器實現楊輝三角

很容易就得出規律 除根以外,每個數都由它上層的左右兩數之和,乙個數不存在即視為0。根為1 由此規律,易得每層邊界數值為1 下面用python的生成器來實現這個著名的三角 coding utf 8 defyanghui level for i in range level 由於根不符合抽象出的規律,單...

generator 生成楊輝三角

摘錄自廖雪峰 python3 生成器 generator和函式的執行流程不一樣。函式是順序執行,遇到return語句或者最後一行函式語句就返回。而變成generator的函式,在每次呼叫next 的時候執行,遇到yield語句返回,再次執行時從上次返回的yield語句處繼續執行。看到乙個比較巧妙的辦...