I'm not exactky sure what's causing the errant behaviour but it might help if we start off by simplifying the code a little.
> for N in range( 2, len( DEF_CARRIER_TUP) ): > Dis_N = DistanceCalc( DEF_CARRIER_TUP[N], > DEF_CARRIER_TUP[N-1] ) > print ( "Distance = " + str(Dis_N) ) print "Distance = ", Dis_N > Dis_Tot = float ( Dis_N ) + float ( DEF_CARRIER_DIS[N-1] ) Dis_Tot = Dis_N + DEF_CARRIER_DIS[N-1] Dis_N is already a float from the print statement. And DisTot is simply the collection of totals so is also floats, no need for conversion. > print ( "New Total = " + str( Dis_Tot) ) print "New Total = ", Dis_Tot > DEF_CARRIER_DIS.append( Dis_Tot ) Also I don't see any uinitialisation of DEF_CARRIER_DIS, but as written the first time through the loop you access N-1, ir element 1. I have no idea what is in element 1, but you then procede to append to it, now the new element will go to element len(DEF_CARRIER_DIS). Its not obvious to me the relationship between the data being appended to the list and the data being used to do the calculation from index N-1. > New Total = 0.336672732923 > Distance = 0.336681748175 > New Total = 0.673377528119 > Distance = 0.336678894036 > New Total = 0.673351626959 > Distance = 0.336692518582 > New Total = 1.0100700467 > Distance = 0.336678428545 > New Total = 1.0100300555 > Distance = 0.336681289645 > New Total = 1.34675133635 > Distance = 0.336684966109 > New Total = 1.34671502161 > Distance = 0.336689614642 > New Total = 1.68344095099 > Distance = 0.336680540776 > New Total = 1.68339556239 Looking at these results I think there is a mismatch between N_1 and the current position in the list. I think you are somehow reading one behind where you are writing. I'd look at the initialisation of that list. Another option might be to use -1 as the index to ensure you always use the last element: Dis_Tot = Dis_N + DEF_CARRIER_DIS[-1] HTH, Alan G. _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor