日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python实现杨辉三角

發(fā)布時間:2023/12/31 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python实现杨辉三角 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在楊輝三角形中,有一個很大的規(guī)律:
就是每一行的第一個和最后一個都是1,那中間的數(shù)據(jù)是怎么生成的呢?
中間的數(shù)據(jù)其實就是一個公式:(假設(shè)n表示行,m表示列)

ist1[n][m] = list1[n-1][m-1] + list1[n-1][m]

  • 楊輝三角會用到y(tǒng)ield

generator(生成器)和函數(shù)的執(zhí)行流程不一樣。函數(shù)是順序執(zhí)行,遇到return語句或者最后一行函數(shù)語句就返回。而變成generator的函數(shù),在每次調(diào)用next()的時候執(zhí)行,遇到y(tǒng)ield語句返回,再次執(zhí)行時從上次返回的yield語句處繼續(xù)執(zhí)行。 這里的楊輝三角代碼其實就是一個生成器,而yield的作用就是惰性生成一行楊輝三角并且輸出,對于生成器需要調(diào)用next()時,才會繼續(xù)執(zhí)行語句。但是實際操作過程中,我們通常用for循環(huán)來代替next(),讓生成器不斷生成下一行。

  • 楊輝三角居中顯示

先把數(shù)據(jù)類型轉(zhuǎn)化為字符串類型,然后利用 ''.join() 來讓一個列表的字符串連接在一起中間空格

下接下來代碼實現(xiàn)

def triangle(): # 楊輝三角的計算N = [1]while True:yield N # generator特點在于:在執(zhí)行過程中,遇到y(tǒng)ield就中斷,并且返回值,下次又繼續(xù)執(zhí)行N.append(0) # 每次都要在最后一位加個0,用于后續(xù)的疊加N = [N[i] + N[i - 1] for i in range(len(N))]def print_triangle(x): # 楊輝三角的居中對齊和輸出a = 0for t in triangle(): # 這里可以每次調(diào)用一個N(得力于Yield函數(shù))new_list = []for i in range(len(t)):new_list.append(str(t[i])) # 將數(shù)字列表轉(zhuǎn)化為字符串列表string = ' '.join(new_list) # 字符串相連接中間一個空格width = x * 10 # 設(shè)置字符寬度print(string.center(width)) # 居中對齊并輸出a += 1if a == x: # 判斷輸入幾行breakline_number = int(input("請輸入打印幾行: ")) print_triangle(line_number) # 打印行 復(fù)制代碼

?

總結(jié)

以上是生活随笔為你收集整理的python实现杨辉三角的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。