2012-04-11 77 views
0

我正嘗試使用用戶輸入的Python創建一個數字三角形。我寫了一段代碼,但不知道如何在Python中做一件事。我想將打印(「下一行」)相應地更改爲相應的行。我怎麼做?從用戶輸入創建一個數字三角形

代碼:

numstr= raw_input("please enter the height:") 
rows = int() 
def triangle(rows): 
    for rownum in range (rows) 
     PrintingList = list() 
     print("Next row") 
     for iteration in range (rownum): 
      newValue = raw_input("Please enter the next number:") 
      PrintingList.append(int(newValue)) 
      print() 

有沒有在我的代碼的任何錯誤?還是有任何改進建議?請你告訴我..謝謝...

+1

顯示你所擁有的輸出,並解釋它有什麼問題,最好以所需輸出爲例。 – Marcin 2012-04-11 12:41:46

+0

你的代碼有幾個語法問題 – luke14free 2012-04-11 12:42:21

+0

@ luke14free可以解釋它們是什麼......它將會非常有用...... – lakesh 2012-04-11 14:46:50

回答

1

我不完全知道什麼是期望行爲的程序,但這裏是我的猜測:

numstr= raw_input("please enter the height:") 

rows = int(numstr) # --> convert user input to an integer 
def triangle(rows): 
    PrintingList = list() 
    for rownum in range (1, rows + 1): # use colon after control structure to denote the beginning of block of code   
     PrintingList.append([]) # append a row 
     for iteration in range (rownum): 
      newValue = raw_input("Please enter the next number:") 
      PrintingList[rownum - 1].append(int(newValue)) 
      print() 

    for item in PrintingList: 
     print item 
triangle(rows) 

這裏是輸出:

please enter the height:3 
Please enter the next number:1 
() 
Please enter the next number:2 
() 
Please enter the next number:3 
() 
Please enter the next number:4 
() 
Please enter the next number:5 
() 
Please enter the next number:4 
() 
[1] 
[2, 3] 
[4, 5, 4] 
1

你可以改變你的代碼,這一個:

numstr= raw_input("please enter the height:") 
rows = int(numstr) 
def triangle(rows): 
    for rownum in range (rows): 
     PrintingList = list() 
     print "row #%d" % rownum 
     for iteration in range (rownum): 
      newValue = raw_input("Please enter the number for row #%d:" % rownum) 
      PrintingList.append(int(newValue)) 
      print() 

通過使用print "%d" % myint可以打印一個整數。

+0

這不適用於python3,我認爲* OP正在使用(因爲他正在調用'print'作爲一個函數)。 – Marcin 2012-04-11 12:54:52

1

如果我理解你的問題,請將print("Next row")更改爲print("Row no. %i" % rownum)

閱讀字符串文檔,其中說明了%格式代碼的工作原理。

0
n = int(input()) 

for i in range(n): 
    out='' 
    for j in range(i+1): 
     out+=str(n) 
    print(out) 

這將打印以下:

>2 

2 
22 

>5 

5 
55 
555 
5555 
55555 

這是你在找什麼?