これらのforループをwhileループの作業セットに変換する効率的な方法を見つけるのに苦労しています。助言がありますか?私は2.7を使用しています
def printTTriangle(height):
for row in range(1,height+1):
# print row T's
for col in range(1,row+1):
print 'T',
print
ご協力ありがとうございました!
これらのforループをwhileループの作業セットに変換する効率的な方法を見つけるのに苦労しています。助言がありますか?私は2.7を使用しています
def printTTriangle(height):
for row in range(1,height+1):
# print row T's
for col in range(1,row+1):
print 'T',
print
ご協力ありがとうございました!
こんな感じです:
def printTTriangle(height):
row = 1
while row < height+1:
col = 1
while col < row+1:
print 'T',
col += 1
print
row += 1
これが私がやった方法です。たとえば、次の行を変換してみましょう。
for row in range(1, height+1):
最初のステップ: 反復変数を作成し、範囲の開始値で初期化します。
row = 1
2 番目のステップ: 範囲の終了値をループ条件に変換し、インデックスに注意します。
while row < height+1:
最後に、反復変数をインクリメントしてループを進めることを忘れないでください。
row += 1
すべてを一緒に入れて:
row = 1
while row < height+1:
row += 1
それを単純化して、while ループを 1 つだけ使用することができます。
def printTTriangle(height):
row = 1
while row <= height:
print 'T '*row
row += 1
そして、while ループに取りつかれていなければ、ここに 1 つのライナーがあります。
def printTTriangle(height):
print "\n".join(['T '*row for row in range(1, height+1)])
*
文字列乗算演算子 ( )を使用して内側のループを取り除くことができます。
def printTTriangle(height):
j = 1
while j <= height:
print 'T' * j + '\n '
j += 1