Error

inshu chauhan insideshoes at gmail.com
Tue Nov 20 08:19:37 EST 2012


Yes you are rightI figured that out after posting to python list.. actually
my index is reaching the last point.. and my prog is not doing what I
want.. I am wondering why it is reaching the last point in my list .. its
never stopping in between ???


On Tue, Nov 20, 2012 at 2:01 PM, Dave Angel <d at davea.name> wrote:

> On 11/20/2012 07:31 AM, inshu chauhan wrote:
> > I did the following changes in this part of my programme.. now the
> > refereence error is removed but its showing me another error :
> >
> > 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):
> >                 continue
> >             else :
> >                 centre = data[cy, cx]
> >                 print centre
> >                 points.append(centre)
> >
> >
> >             change = True
> >
> >             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
> >
> >
> >                 break
> >
> >
> >             print points
> >
> >
> > ERROR :
> >
> > Traceback (most recent call last):
> >   File "Z:/modules/classification1.py", line 71, in <module>
> >     ComputeClasses(data)
> >   File "Z:/modules/classification1.py", line 47, in ComputeClasses
> >     point = data[idx[0], idx[1]]
> > error: index is out of range
> >
> > What is meant by this statement ' Index out of range ' ? Does it mean
> that
> > my range 1, 1000 is exceeded ??
> >
> >
>
> When you're using custom classes that mimic the standard ones, the error
> can mean most anything.  But assuming the design was to keep as close as
> possible, it simply means that you're subscripting a list with an index
> that's too large or too small.  So if idx is a list that has only one
> element, element number zero, then idx[1] would be out of range.  On the
> same line, if data is acting kind of like a two-dimensional list, then
> it has limits on each dimension, and either idx[0] is too big/small for
> the first dimension, or idx[1] is too big or small for the second.
>
> First thing is to figure out which part of this expression is causing
> the exception.  So do a separate pair of assignments,
>     dummy0 = idx[0]
>     dummy1 = idx[1]
>
> and then  point = data[dummy0, dummy1]
>
> Incidentally, if idx is a tuple or a list, of exactly two items, then
> you could just say
>        point = data[*idx]
>
> Anyway, if that still doesn't make things clear, then print dummy0 and
> dummy1 before the point= line.  That way you can see the last value, the
> one it dies on, just before the stack trace.  Naturally, you could also
> print the size attributes of the data item as well.
>
>
> --
>
> DaveA
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20121120/4328919f/attachment.html>


More information about the Python-list mailing list