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)
液壓原理圖中兩個三角形三角形的角和另三角形角對住
查下機械設計手冊吧 第四卷第二十章,你說的那個可能是過濾器吧 液壓裡面好像就這個和你說的比較像。球閥不是這樣的,管道裡面的是截止閥 應該bai 是截止du 閥吧zhi 這裡有dao的,回去查下答吧 三角形按邊分類可分為什麼三角形和什麼三角形和什麼三角形 三角形按邊分類可分為 1 等邊三角形 等邊三角...
三角形按邊分類可以分為三角形,三角形按邊分類可以分為????三角形?????三角形???三角形
三角形按邊分類可以分為 等邊 三角形 等腰 三角形 不等邊 三角形 等邊三角形,等腰三角形,不等邊三角形 其中,按有沒有相等的邊分為不等邊三角形和等腰三角形.等腰三角形又可以分為底邊和腰不相等的等腰三角形 等邊三角形.等腰三角形,等邊三角形 等腰三角形,直角三角形 銳角三角形,直角三角形,鈍角三角形...
三角形等於正方形,三角形等於圓,請問三角形加正方形加
解 設三角形是x,正方形是y,圓是z 那麼2x 4y,2x 3z,x y z z 500所以y x 2,z 2x 3 所以x y 2z x x 2 4x 3 17x 6 500所以x 3000 17 所以y x 2 1500 17,z 2x 3 2000 17即三角形等於3000 17,正方形等於1...