#1
  1. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Sep 2012
    Posts
    10
    Rep Power
    0

    What happends here?- function


    Hello, I just have a quick question regarding a very simple function, what happends?

    Code:
    def function():     
    z=0     
    for i in range(0,5):
             for j in range(1,4):
                 z+=j
         print(z) 
    function()
  2. #2
  3. Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    May 2012
    Location
    39N 104.28W
    Posts
    158
    Rep Power
    3
    Originally Posted by klskl
    Hello, I just have a quick question regarding a very simple function, what happends?

    Code:
    def function():     
    z=0     
    for i in range(0,5):
             for j in range(1,4):
                 z+=j
         print(z) 
    function()
    Well, the way you posted it, nothing would happen because the indentation is screwed up. What it appears to be doing is adding 1+2+3 5 times, that is at the end, z=30.
  4. #3
  5. Contributing User
    Devshed Demi-God (4500 - 4999 posts)

    Join Date
    Aug 2011
    Posts
    4,995
    Rep Power
    481

    fix post


    You get an IndentationError . Please read the information at my signature to post code.
    (use code tags instead of [indent].)

    Rashkin was already here!

    You can help yourself with print statements:
    Code:
    def function():     
        z=0     
        for i in range(0,5):
            print('i has value %d'%i)
            for j in range(1,4):
                print('\tj has value %d'%j)
                z+=j
                print('\tz gruesome, %d'%z)
        print(z) 
    
    function()
    [code]Code tags[/code] are essential for python code and Makefiles!
  6. #4
  7. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Sep 2012
    Posts
    10
    Rep Power
    0
    Originally Posted by rrashkin
    Well, the way you posted it, nothing would happen because the indentation is screwed up. What it appears to be doing is adding 1+2+3 5 times, that is at the end, z=30.
    yes, but why does it do that? How can you see that, if you care to explain I would be grateful
  8. #5
  9. Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    May 2012
    Location
    39N 104.28W
    Posts
    158
    Rep Power
    3
    First you set z=0.
    The inner-most loop, for j in range(1,4):, makes j=1,2,3 in succession. At each iteration j is added to z and the sum is the new z, z+=j.
    You do that 5 times: for i in range(0,5):, where i= 0,1,2,3,4 but is just a loop counter. That is, i is not used in the calculation.
  10. #6
  11. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Sep 2012
    Posts
    10
    Rep Power
    0
    Originally Posted by rrashkin
    First you set z=0.
    The inner-most loop, for j in range(1,4):, makes j=1,2,3 in succession. At each iteration j is added to z and the sum is the new z, z+=j.
    You do that 5 times: for i in range(0,5):, where i= 0,1,2,3,4 but is just a loop counter. That is, i is not used in the calculation.
    Thanks!

IMN logo majestic logo threadwatch logo seochat tools logo