Basically I am creating a function to determine the perimeter of a polygon based on the vertices. The input parameter is an xyList that contains the coordinates, basically a nested list of coordinate pairs within another list, like so: [ [x1,y1], [x2, y2], [x3,y3], ...]

I am using the good ol' distance formula and summing each distance. My question is related to the syntax of accessing the individual x and y coordinates within the list. Here is the function I have written:

def polyPerimeter(xyList):

perim = float(0)

count = len(xyList)

b = 0; db = 1

while b < count:

tempDist = math.sqrt((float(xyList[b+1[0]]) - float(xyList[0[0]]))**2 + (float((xyList[b+1[1]]) - float(xyList[0[1]])**2)))

perim = perim + tempDist

b += db

return perim

Here is the error I am getting in the Interactive Window:

>>> Unhandled exception while debugging...

Traceback (most recent call last):

File "C:\GEOG560\hw3_perimRect_v2.py", line 24, in polyPerimeter

tempDist = math.sqrt((float(xyList[1[0]]) - float(xyList[0[0]]))**2 + (float((xyList[1[1]]) - float(xyList[0[1]])**2))) # distance formula

TypeError: 'int' object is unsubscriptable

I am pretty sure it is the syntax related to accessing the coordinates. I have tried to make sure that the coordinates are not still strings after being read in from the text file, but I have been using the syntax "print xyList[0[0]]" (i.e. to print the first x coordinate) which is obviously wrong. I haven't been able to find this in the documentation and am still waiting to receive my "Learning Python" text in the mail. Any help is greatly appreciated!

*Edited 7 Years Ago by SomewhereInKS*: n/a