我怎么打印这个?

时间:2013-11-14 05:19:29

标签: python

我正在尝试使用interactivepython.org自学python。我遇到了一个我无法弄清楚的问题。我有斜率和间距正确。我需要它每次打印少一个数字。有人可以帮助新手吗?...

我写的代码:

numLines = 10

for i in range(numLines):

    for k in range(i):
        print(' ', end = ' ')

    for j in range(1, numLines):
        print(j, end = ' ')

    print()

    print(" ")

打印:

1 2 3 4 5 6 7 8 9 

  1 2 3 4 5 6 7 8 9 

    1 2 3 4 5 6 7 8 9 

      1 2 3 4 5 6 7 8 9 

        1 2 3 4 5 6 7 8 9 

          1 2 3 4 5 6 7 8 9 

            1 2 3 4 5 6 7 8 9 

              1 2 3 4 5 6 7 8 9 

                1 2 3 4 5 6 7 8 9 

                  1 2 3 4 5 6 7 8 9

想要打印:

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

4 个答案:

答案 0 :(得分:2)

嗯,上面的答案非常好。但这是我做事的方式...... :)

代码:

l = map(str,range(0,10))
for i in range(10):
    print ' '.join(l[:len(l)-i]).rjust(20)  

输出:

 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  

希望这会有所帮助:)

答案 1 :(得分:1)

试试这个:

numLines = 10

for i in range(numLines, 0, -1):
    for j in range(0, numLines - i):
        print " ",
    for k in range(0, i):
        print k,
    print

答案 2 :(得分:1)

这个怎么样

numLines = 10
for i in range(numLines):
    print "".join ("  " for j in range(i)) + " ".join (str(j) for j in range(numLines - i))

<强>输出

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

答案 3 :(得分:0)

没关系我弄清楚了。我不得不在第一个for循环中将numLines减少一个。