2016-10-04 183 views
0

我試圖做一個打印以下順序如何在一個循環中創建一個新的變量

1 
2 3 
4 5 6 
7 8 9 10 
11 12 13 14 15 
... 

此行的n個功能是我到目前爲止有:

def numTriangle(n): 
    #n = number of rows 
    integers = range(0,n-1) 
    val = 1 
    places = 1 
    for num in integers: 
     print val 
     val = val + 1 

我已經意識到,我需要做一個循環,它打印的價值,然後添加一個,但也創建一個新的變量比以前大一個打印原始值+ 1和新變量,所以上。我如何爲每一行創建一個新變量,或者是否有任何其他替代方法可用於此功能,如爲每一行打印索引的額外部分?

+1

將問題分解爲基本組件並開始編程。你知道你需要一個循環,'範圍(1,N)'會對此有效。你知道你需要在一個連續的行上打印數字,直到達到一定數量,然後打印一個新行。跟蹤您當前的計數,每行的預期計數和每行增量計數,重新計數。開始一些事情並編輯你的問題,以顯示你的嘗試。 – sberry

回答

1

沒有試圖爲你做功課,但你至少有你的計劃的基本描述。這是一個非常簡單的版本。

def pyramid(n): 
    k = 1 
    for i in range(n): 
     print ' '.join(map(str, range(k, k+i+1))) 
     k += i + 1 

這是一個更詳細的版本。

def pyramid(n): 
    k = 1 
    for i in range(1, n +1): 
     first_number = k 
     next_row_first_number = k + i 
     numbers = range(first_number, next_row_first_number) 
     numbers_as_strings = map(str, numbers) 
     line = ' '.join(numbers_as_strings) 
     print line 
     k = next_row_first_number 

和多個循環!

def pyramid(n): 
    k = 1 
    for i in range(1, n +1): 
     first_number = k 
     next_row_first_number = k + i 
     numbers = range(first_number, next_row_first_number) 
     line = "" 
     for num in numbers: 
      line = line + str(num) + ' ' 
     print line 
     k = next_row_first_number 
0

這將產生你的輸出:

n = 6; y= 1; 

for i in range(0,n): 
    for j in range (0,i): 
     print y, 
     y = y+1; 
    print "\n" 

注意壓痕,壓痕定義範圍。

相關問題