日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

python实现杨辉三角

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

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

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

  • 楊輝三角會用到yield

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

  • 楊輝三角居中顯示

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

下接下來代碼實現

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

?

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。