[ Foro de Python ]

Problema con error: 'Point' object is not subscriptable

06-Oct-2021 23:24
Invitado (Ayudaporfi)
0 Respuestas

Basicamente debo crear un programa que mida la distancia máxima y mínima entre dos puntos de un archivo, pero al momento de ejecutarlo obtengo el error del asunto. Muestro el programa:
import os.path
import pickle
import math

NOMBRE_ARCHIVO = 'puntos.df4'

class Point:
   def __init__(self, cx, cy, desc='p'):
       self.x = cx
       self.y = cy
       self.descripcion = desc


def to_string(point):
   r = str(point.descripcion) + '(' + str(point.x) + ', ' + str(point.y) + ')'
   return r

def comparar():
   dmin = 0
   dmax = 0
   archivo = open(NOMBRE_ARCHIVO, 'rb')
   tam = os.path.getsize(NOMBRE_ARCHIVO)
   while archivo.tell() < tam:
       puntos = pickle.load(archivo)

   for i in range(0, tam-1):
       for j in range(i+1, tam):

           dy = puntos[j].y - puntos[i].y
           dx = puntos[j].x - puntos[i].x
           d = math.sqrt(pow(dx, 2) + pow(dy, 2))
           if d < dmin:
               dmin = d
           if d > dmax:
               dmax = d

   print('La distancia minima es de: ', round(dmin))
   print('La distancia máxima es de: ', round(dmax))

comparar()

El error es el siguiente:
dy = puntos[j].y - puntos[i].y
TypeError: 'Point' object is not subscriptable




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)