【问题标题】:Triangle of numbers on PythonPython上的数字三角形
【发布时间】:2015-01-01 22:03:32
【问题描述】:

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

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,

【问题讨论】:

    标签: python loops


    【解决方案1】:

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

    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)]))
    

    【讨论】:

    • 很好,很高兴它有帮助。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2010-10-08
      • 2013-05-20
      • 2013-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多