3

これらの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

ご協力ありがとうございました!

4

3 に答える 3

6

こんな感じです:

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
于 2013-09-19T16:52:53.753 に答える
2

それを単純化して、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)])
于 2013-09-19T17:10:30.950 に答える
1

*文字列乗算演算子 ( )を使用して内側のループを取り除くことができます。

def printTTriangle(height):
 j = 1
 while j <= height:
     print 'T' * j + '\n '
     j += 1
于 2013-09-19T17:07:50.737 に答える