2016-04-19 14 views
1

私はpythonでパターンをやっていますが、このパターンを変更することはできません。Pythonの三角形のパターン

print("\nPattern C") 

for c in range(1, 7 + 1): 
    for cc in reversed(range(1, c)): 
     print(cc, end = '') 
    print('') 

この出力:

Pattern C 

1 
21 
321 
4321 
54321 
654321 

しかし、私は出力にそれをしたい:

 1 
    21 
    321 
    4321 
54321 
654321 

は誰でも助けてくださいことはできますか?

答えて

1

何らかの方法でスペースを追加する必要があります。 1つの方法は、現在のカウンタを固定値から減算し、その多くのスペースを印刷することです。

for c in range(1, 7 + 1): 
    print(' '*(7-c), end='') 
    for cc in reversed(range(1, c)): 
     print(cc, end = '') 
    print('') 

コメントにAaron Hallが言及しているので、この出力を生成する他の方法があります。例えば、(上記7+1値、および異なるrange()オブジェクトに置き換えreversed()を表すとnum)単一print()と:

for c in range(1, num): 
    print(' '*(num-1-c), *range(c-1, 0, -1), sep='') 
0

もできるだけあなたのコードを変更しながら、これは(私は何をするのかであります)

print("\nPattern C") 
maxLength = 7 
for c in range(1, maxLength + 1): 
    s = '' 
    for cc in reversed(range(1, c + 1)): 
     s += str(cc) 
    print(("%" + str(maxLength) + "s")%s)` 

私はあまり変更されませんでした。文字列の書式を追加しました。「+ 1」を追加しました。

これは文字列の書式設定を使用して各文字列を右揃えにします。 %10sは、10文字のスペースの末尾に単語を揃えます。

0

スペースパディングを追加するために、各行の後に書式文字列メソッドを使用します。

print("\nPattern C") 

for c in range(1, 7+ 1): 
    line="" 
    for cc in reversed(range(1, c)): 
     line+=str(cc) 
    print('{:>6}'.format(line))