Skip to content Skip to sidebar Skip to footer

Converting For Loops To While Loops In Python

I am struggling to find an efficient way to convert these for loops to a working set of while loops. Any Suggestions? I am using 2.7 def printTTriangle(height): for row in range(1

Solution 1:

It's like this:

defprintTTriangle(height):
    row = 1while row < height+1:
        col = 1while col < row+1:
            print'T', 
            col += 1print
        row += 1

Here's how I did it. For example, let's convert this line:

for row in range(1, height+1):

First step: create an iteration variable and initialize it in the starting value of the range:

row = 1

Second step: transform the ending value of the range into the loop condition, and careful with the indexes:

while row < height+1:

Finally, don't forget to advance the loop incrementing the iteration variable:

row += 1

Putting it all together:

row=1
while row< height+1:
    row+=1

Solution 2:

You can simplify it and just use one while loop:

defprintTTriangle(height):
    row = 1while row <= height:
        print'T '*row
        row += 1

AND if you are not obsessed with while loops, here is a one liner:

defprintTTriangle(height):
    print"\n".join(['T '*row for row inrange(1, height+1)])

Solution 3:

You can get rid of the inner loop with string multiplication operator (*) :

defprintTTriangle(height):
 j = 1while j <= height:
     print'T' * j + '\n '
     j += 1

Post a Comment for "Converting For Loops To While Loops In Python"