如何在 for 循环中将每个新行增加 1 或更多?

How do I increase each new line by 1 or more in a for loop?

正在尝试打印执行以下操作的数字三角形: numTri(6)

1
23
456

编辑:(全部换行) 我目前拥有的:

def numTri(n): 
  a = 0
  for x in range(1,n+1):
    a = 10*a + x
    print a

有什么提示吗?我不想要答案。一些指导将不胜感激。

正如您所说的指导。

Python代码

def numTri(n):
    a=1
    col_per_row=1
    while a<=n:
        s=""
        for y in range(1,col_per_row+1):
            s+=str(a)
            a=a+1
        col_per_row=col_per_row+1
        if(a==n+1):
            print(s),
        else:
            print(s)
  • print语句后面的逗号是为了避免在Python-2
  • 中换行
  • Python-3中可以使用print(s,end="")

1.How to print in python without newline or space?

Woot 这是我的第一个 post! (编辑:我 post 编辑了 python 代码,因为其他人已经 post 编辑了完整的答案)。 下面从不同的角度解决这个问题,只需要一个循环。希望这有帮助。

def numTri(n):
    x = list(range(1,n+1)) #creates a list of numbers ([1],[2],...,[n])
    i = 0
    ln = 1
    while i < n+1:
        print(x[i:i+ln])   #prints a partition of the list of numbers
        i += ln
        ln += 1

注意:您可能需要调整打印功能,我使用的是 python 3.5