December 11th, 2012, 08:38 AM

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()
December 11th, 2012, 08:50 AM

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.
December 11th, 2012, 09:13 AM

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!
December 11th, 2012, 10:42 AM

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
December 11th, 2012, 10:48 AM

First you set z=0.
The innermost 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.
December 11th, 2012, 02:53 PM

Originally Posted by rrashkin
First you set z=0.
The innermost 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!