On Thursday, July 18, 2013 10:43:11 PM UTC-4, Dave Angel wrote: > On 07/18/2013 10:16 PM, CTSB01 wrote:
> > Does something like > > > > > > def phi_m(x, m): > > > rtn = [] > > > for n2 in range(0, len(x) * m - 2): > > > n = n2 / m > > > r = n2 - n * m > > > rtn.append(m * x[n] + r * (x[n + 1] - x[n])) > > > print ('n2 =', n2, ': n =', n, ' r =' , r, ' rtn =', rtn) > > > return rtn > > look right? > > No, as Ian has pointed out, you need to use the // operator in Python 3 > > if you want to get integer results. So it'd be n = n2 // m > > However, even better is to use the divmod() function, which is intended > > for the purpose: > > > > n, r = divmod(n2, m) > > > It doesn't seem to have any errors. However, I do receive the following > > error when trying to implement an x after having defined phi: > > >>>> x = [0, 1, 1, 2, 3] > > >>>> phi_m(x, 2) > > > Traceback (most recent call last): > > > File "<pyshell#6>", line 1, in <module> > > > phi_m(x, 2) > > > File "<pyshell#2>", line 6, in phi_m > > > rtn.append(m * x[n] + r * (x[n + 1] - x[n])) > > > TypeError: list indices must be integers, not float > > > That will be fixed if you correct the code as I described, so you'll get > > integers. > > There is a Brezenham algorith that might accomplish this whole function > > more accurately, or more efficiently. But I'd have to re-derive it, as > > it's been about 30 years since I used it. And chances are that the > > efficiencies it brought to machine code won't matter much here. > > -- > > DaveA Thanks Dave, I'll take a look at that. -- http://mail.python.org/mailman/listinfo/python-list