[ Foro de Python ]
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.)