如何在python中打印出一个数字三角形?

时间:2014-11-09 23:09:46

标签: python

如何使用基于循环的程序在python中打印出一个数字三角形?这不是一个家庭作业或任何东西它只是我试图做的书但没有真正接近的一个练习。三角形应打印出来,如下所示:

1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
6 6 6 6 6 6

7 个答案:

答案 0 :(得分:11)

以为我会把它放在这里,即使它实际上避免使用嵌套循环。但是使用了一些优雅的代数。

INDEX

本质上它仅仅是因为10 ^ n-1是n个连续的9s。我会把剩下的留给你;-)

答案 1 :(得分:4)

使用for循环非常简单。

def printTri(n):
    for i in range(1,n+1):
        print(str(i)*i)

>>> printTri(6)
1
22
333
4444
55555
666666

或者,如果您希望数字之间有空格

def printTri(n):
    for i in range(1,n+1):
        print(' '.join(str(i)*i))

>>> printTri(6)
1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
6 6 6 6 6 6

答案 2 :(得分:2)

for i in range(7):
    print (str(i) + " ")*i

<强> 输出:

1  
2 2  
3 3 3  
4 4 4 4  
5 5 5 5 5  
6 6 6 6 6 6  

答案 3 :(得分:2)

def printTri(n):
    for i in range(1,n+1):
        print("{:^30}".format(' '.join(str(i)*i)))
printTri(6)

输出:

          1               
         2 2              
        3 3 3             
       4 4 4 4            
      5 5 5 5 5           
     6 6 6 6 6 6    

答案 4 :(得分:1)

使用lambdamap函数:

>>> def triangle(n):
...     print "\n".join(map(lambda x:str(x)*x,range(1,n+1)))
... 
>>> triangle(6)
1
22
333
4444
55555
666666

如果你想要空格:

>>> def triangle(n):
...     print "\n".join(map(lambda x:(str(x)+' ')*x,range(1,n+1)))
... 
>>> triangle(6)
1 
2 2 
3 3 3 
4 4 4 4 
5 5 5 5 5 
6 6 6 6 6 6 

答案 5 :(得分:1)

使用字符串操作我们可以使用:

$("#example").DataTable();
equals
$("#example").dataTable().api();
or 
tableRef.api();

答案 6 :(得分:1)

s = "1"
for i in range(1,6):
  print(i * s)
  s = int(s) + 1
  s = str(s)