2015-04-16 97 views
3

我寫了這個程序來打印其三角形形狀的畢達哥拉斯金字塔。它可以打印到某個點(直到出現2位數字)。之後,形狀扭曲。我該如何解決這個問題?如何在python中打印畢達哥拉斯金字塔?

l=[[1],[1,1]] 
n=int(raw_input("Number:")) 
for x in range(2,n): 
    l2=[1,] 
    for y in range(x-1): 
     l2.append(l[x-1][y]+l[x-1][y+1]) 
    l2.append(1) 
    l.append(l2) 
for x in range(n): 
    print " "*(n-x-1), 
    for y in l[x]: 
     print y, 
    print 
+0

使用控制檯時無法在分數位置打印字母。你可以考慮使用像pygame這樣的圖形工具。 – Selcuk

+1

(1)我認爲它叫做[Pascal三角形](http://en.wikipedia.org/wiki/Pascal%27s_triangle)。不是畢達哥拉斯金字塔? (2)由於您存儲整個三角形,爲什麼不從底層確定上層的位置? – Billiska

回答

0

您需要用空格填充輸出。請注意,空格的數量是您打印的最長長度的函數;如果您填充一個空格,則一旦開始打印三位數字,您的輸出將再次出錯。