thanx ..I understand the problem now..
On Wed, Nov 14, 2012 at 7:48 PM, MRAB <pyt...@mrabarnett.plus.com> wrote: > On 2012-11-14 15:18, inshu chauhan wrote: > >> >> for this code m getting this error : >> >> CODE : >> def ComputeClasses(data): >> radius = .5 >> points = [] >> for cy in xrange(0, data.height): >> for cx in xrange(0, data.width): >> if data[cy,cx] != (0.0,0.0,0.0): >> centre = data[cy, cx] >> points.append(centre) >> >> >> Look at this line: > > change = True >> >> It's indented the same as the preceding 'if' statement, which means > that it's executed even if the body of the 'if' statement wasn't > executed and it hasn't assigned to 'centre'. > > So 'change' has been set to True, the 'while' loop is entered, and > subsequently an attempt is made to get 'centre', which hasn't been set. > > > while change: >> >> for ring_number in xrange(1, 1000): >> change = False >> new_indices = GenerateRing(cx, cy, ring_number) >> >> >> for idx in new_indices: >> point = data[idx[0], idx[1]] >> >> if point == (0.0, 0.0, 0.0 ): >> continue >> else: >> dist = distance(centre, point) >> if dist < radius : >> print point >> points.append(point) >> change = True >> print change >> >> >> The indentation of this line looks wrong to me: > > break >> > But If I change the indentation of break towards inside, its going into infinite loop.. ??? > >> It'll affect the 'for cx' loop at the end of its first iteration, every > time. > > >> ERROR : >> Traceback (most recent call last): >> File "Z:\modules\classification2.**py", line 74, in <module> >> ComputeClasses(data) >> File "Z:\modules\classification2.**py", line 56, in ComputeClasses >> dist = distance(centre, point) >> UnboundLocalError: local variable 'centre' referenced before assignment >> >> And i am unable to understand .. WHY ? >> >> > -- > http://mail.python.org/**mailman/listinfo/python-list<http://mail.python.org/mailman/listinfo/python-list> >
-- http://mail.python.org/mailman/listinfo/python-list