Python上的数字三角形

时间:2015-01-01 22:03:32

标签: python loops

我要求编写一个打印以下内容的循环系统:

0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6
0 1 2 3 4 5
0 1 2 3 4
0 1 2 3
0 1 2
0 1
0

但是,我的脚本会打印出来:

0 1 2 3 4 5 6 7 8 9 
0 1 2 3 4 5 6 7 8 

0 1 2 3 4 5 6 7 


0 1 2 3 4 5 6 
# ... and so on

要修复的代码是:

for row in range(10):
    for column in range(row):
        print ''
    for column in range(10-row):
        print column,

2 个答案:

答案 0 :(得分:5)

你有太多的循环,你只需要两个:

for row in range(10):
    for column in range(10-row):
        print column,
    print("")

0 1 2 3 4 5 6 7 8 9 
0 1 2 3 4 5 6 7 8 
0 1 2 3 4 5 6 7 
0 1 2 3 4 5 6 
0 1 2 3 4 5 
0 1 2 3 4 
0 1 2 3 
0 1 2 
0 1 
0 

或者从将来导入适用于python2.7和3的打印:

from __future__  import print_function

for row in range(10):
    for column in range(10-row):
        print(column,end=" ")
    print()

如果你想要一个班轮,你可以使用join:

print("\n".join([" ".join(map(str,range(10-row))) for row in range(10)]))

答案 1 :(得分:0)

你也可以在python 3.x中尝试这个:

num = 9 
for a in range(num, -1, -1): 
    for b in range(0, a + 1):
        print(b, end=' ')
    print()