2016-09-27 10 views
0

動作していない私は、この出力を持っているしたいと思います:ネステッド・ループは

* * * 
2 2 2 
4 4 4 
6 6 6 
8 8 8 

私はそれを得ることができないと私は多くの方法を試してみたが、私のコードが動作するようには思えません。以下は現在のコードです:

for row in range(3): 
    print ("*", end = " ") 
    print() 
    for col in range(2,9,2): 
     print (row, end = " ") 
     print() 
print() 

私は何をしますか?

答えて

0
print('* * *') 
for col in range(2,9,2): 
    print (*[col]*3, sep=' ') 

もっと明確にする。

>>> a = 2 
>>> [a] 
[2] 
>>> [a]*3 
[2, 2, 2] 
>>> print(*[a]*3, sep=' ') # equal to print(a, a, a, sep=' ') 
2 2 2 
2

印刷文にendを使用している理由はわかりません。行ごとに印刷する必要があることに注意してください。列単位で印刷する方法はありません。 {0} Sについてさらに説明するために

print('* * *') 
for i in range(2, 9, 2): 
    print('{0} {0} {0}'.format(i)) 

、文字列のformat方法見上げる:開始についてhttps://docs.python.org/2/library/string.html#format-string-syntax

0

を、あなただけの外で、一番上に印刷することができ* * *が含まれている1行を持っています任意のループで:

print('* * *')

次は、値2(包括的)とからあなたのループを開始する必要があります2の段階で(排他)は:

for col in range(2,9,2):

あなたはこれだけの行を複数回印刷し、ここで任意のendキーワードを使用する必要はありません十分です:だから

print('{0} {0} {0}'.format(i))

コードの最終ブロックは次のようになります。

print('* * *') 
for row in range(2,9,2): 
    print('{0} {0} {0}'.format(row)) 

すでにprint()printを改行で終わらせて追加する必要はありません。