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"