2016-10-04 235 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" 

注意压痕,压痕定义范围。

相关问题