Converting for loops to while loops in python

后端 未结 3 1506
既然无缘
既然无缘 2020-12-11 08:55

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 pr         


        
相关标签:
3条回答
  • 2020-12-11 09:39

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

    def printTTriangle(height):
     j = 1
     while j <= height:
         print 'T' * j + '\n '
         j += 1
    
    0 讨论(0)
  • 2020-12-11 09:40

    You can simplify it and just use one while loop:

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

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

    def printTTriangle(height):
        print "\n".join(['T '*row for row in range(1, height+1)])
    
    0 讨论(0)
  • 2020-12-11 09:41

    It's like this:

    def printTTriangle(height):
        row = 1
        while row < height+1:
            col = 1
            while col < row+1:
                print 'T', 
                col += 1
            print
            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
    
    0 讨论(0)
提交回复
热议问题