1

interactivepython.orgを使用してpythonを独学しようとしています。私は理解できない問題に遭遇しました。傾きと間隔が正しい。毎回1つ少ない数字を印刷する必要があります。誰でも初心者を助けることができますか? ...

私が書いたコード:

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, 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 を 1 減らす必要がありました。

于 2013-11-14T05:22:26.140 に答える