Error

inshu chauhan insideshoes at gmail.com
Tue Nov 20 04:06:02 EST 2012


thanx ..I understand the problem now..


On Wed, Nov 14, 2012 at 7:48 PM, MRAB <python at 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>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20121120/ca1f85c9/attachment.html>


More information about the Python-list mailing list