1樓:
********s裡用到了yield,yield 的作用就是把一個函式變成一個 generator,帶有 yield 的函式不再是一個普通函式,python 直譯器會將其視為一個 generator,呼叫 ********s(5) 不會執行 ********s函式,而是返回一個 iterable 物件!在 for 迴圈執行時,每次迴圈都會執行 fab 函式內部的**,執行到 yield l 時,********s函式就返回一個迭代值,下次迭代時,**從 yield l 的下一條語句繼續執行,而函式的本地變數看起來和上次中斷執行前是完全一樣的,於是函式繼續執行,直到再次遇到 yield。
1 那個2去哪了
你看else語句 l1 = [1,1]每次l都是基於這個l1生成的 比如l=[1,2,1] 那麼下一個l1就是[1,3,3,1],下一句l = l1 所以每次都是新的l1生成
2 畫紅圈的地方應該是和l1.insert(i,l[i-1+i])意思一樣
不一樣,插入的值是兩個數的和
def ********s(max):
l = [1]
n = 0
while(n
2樓:匿名使用者
當然不一樣,i 只是 list 的下標而已,具體的數是 l[i],楊輝三角的計算方式是當前數字頭頂的兩個數字之和。
怎麼用python實現這樣的楊輝三角啊
3樓:紫薇參星
按照你的bai
要求用字串型別編du寫的楊輝三zhi角的python程式dao如下def printyanghui(n):
for i in range(1,n+1):
if i==1:
s="1"
if i==2:
s="1,1"
if i>2:
s1=""
begin=0;
for j in range(0,(i-3)+1):
begin1=s.find(",",begin)begin2=s.find(",",begin1+1)if begin2==-1:
begin2=begin1+2
s1=s1+str(int(s[begin:begin1])+int(s[begin1+1:begin2]))+","
begin=begin2-(begin2-begin1-1)s="1,"+s1+"1"
print(s)
n=int(input())
printyanghui(n)
源**版如下(注意源**的縮排權)
python楊輝三角函式問題
4樓:
[1][1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
[1, 5, 10, 10, 5, 1]
執行你那個生成器,並生成6行楊輝三角的資料經過觀察你就會發現這個列表推導式[l[i-1] + l[i] for i in range(len(l))]是產生每一行的楊輝三角資料的。
l[i-1]+l[i]是根據前一行指定索引位置的楊輝三角資料,產生新的一行的資料
如何用python輸出楊輝三角
5樓:從頭開始自學
程式輸出需要實現如下效果:
[1][1,1]
[1,2,1]
[1,3,3,1]
......
方法:迭代,生成器
123456789101112131415161718192021
def ********s() l = [1] while true: yiled l l =[1] + [l[i] + l[i+1] for i in range(len(l)-1)] + [1] n = 0 for t in ********s(): print(t) n += 1 if n == 10:
break
實現邏輯:
1.由於yield為生成器中斷輸出,所以有了第一個次輸出為[1]
2.繼續while下面的yield後的迴圈,此時list長度為1,將其代入l中的len(l),得出[l[i]+l[i+1] for i in range(1-1)]得出為空值,所以yield l輸出為[1,1]
3.此時len(l)值為2,代入得出[l[i]+l[i+1] for i in range(2-1)]為[l[i]+l[i+1] for i in range(1)],i能取值為0,代入後為[l[0]+l[1]],而l[0]和l[1]的值均為1(有上面結果可知),所以輸出結果為[1,2,1]
4.由第三條可知此時len(l)值為3,代入得出[l[i]+l[i+1] for i in range(2)],i取值為0和1,通過迴圈輸出有兩個值,均為3,分別由[l[0]+l[1]],[l[1]+l[2]]
以此類推即可
如何用python輸出一個楊輝三角
6樓:大話殘劍
num = 5
def printline(linelist):
linelist = [str(tmpnum) for tmpnum in linelist]
print("%s%s" % (" " * (num - len(linelist)), " ".join(linelist)))
for i in range(num):
if i < 2:
yhlist = [1] * (i + 1)else:
yhlist[1:-1] = [(tmpnum + yhlist[j]) for j, tmpnum in enumerate(yhlist[1:])]
printline(yhlist)
7樓:匿名使用者
以下**運
行通過:專
def yanghui():
b = [1]
while true:
yield b
b = [1] + [b[i] + b[i + 1] for i in range(len(b) - 1)] + [1]
n = 0
for t in yanghui():
print(t)
n += 1
if n == 10:
break
執行效屬果:
如何用python實現楊輝三角和心
8樓:牛桖容
方法ef printlove(start,length,midnumber=0,flag=31):
for i in range(31):
if istart+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)
楊輝三角的規律,楊輝三角形有什麼規律
楊輝三角形,也叫做賈憲三角形,帕斯卡三角形,是二項式係數在三角形中的一種幾何排列。楊輝三角形有許多有趣的規律,我搜集了其中一些比較重要的規律 1 每行數字左右對稱,由1開始逐漸變大,然後變小,回到1。2 第n行的數字個數為n個。3 第n行數字和為2 n 1 2的 n 1 次方 4 每個數字等於上一行...
關於楊輝三角形的故事
應該補充一下現在說的楊輝三角形在古代就是幻方 樓下的知道了嗎?幻方,在我國也稱縱橫圖,它的神奇特點吸引了無數人對它的痴迷。從我國古代的 河出圖,洛出書,聖人則之 的傳說起,系統研究幻方的第一人,當數我國古代數學家 楊輝。楊輝,字謙光,錢塘 今杭州 人,我國南宋時期傑出的數學家,與秦九韶 李冶 朱世傑...
楊輝三角有什麼規律,楊輝三角形有什麼規律
1 每個數 復等於它上方兩數之和制。楊輝三角 形,又稱賈憲三角形 帕斯卡三角形,是二項式係數在三角形中的一種幾何回排列。楊輝三角形同時對應答於二項式定理的係數。n次的二項式係數對應楊輝三角形的n 1行。例如在中,2次的二項式正好對應楊輝三角形第3行係數1 2 1。楊輝三角以正整數構成,數字左右對稱,...