1

我正在尝试使用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

4 回答 4

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  

希望这可以帮助 :)

于 2013-11-14T05:53:18.580 回答
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
于 2013-11-14T05:43:43.323 回答
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
于 2013-11-14T05:24:14.417 回答
0

没关系,我想通了。我不得不在第一个 for 循环中将 numLines 减一。

于 2013-11-14T05:22:26.140 回答