> Date: Fri, 27 Aug 2010 14:27:34 -0400 > From: da...@ieee.org > To: rwob...@hotmail.com > CC: alan.ga...@btinternet.com; tutor@python.org > Subject: Re: [Tutor] exercise problem > > (Don't top-post, it loses all the context) > > Roelof Wobben wrote: > > Hello, > > > > > > > > Now I have this : > > > > > > > > def add_vectors(u, v): > > """ > > >>> add_vectors([1, 0], [1, 1]) > > [2, 1] > > >>> add_vectors([1, 2], [1, 4]) > > [2, 6] > > >>> add_vectors([1, 2, 1], [1, 4, 3]) > > [2, 6, 4] > > >>> add_vectors([11, 0, -4, 5], [2, -4, 17, 0]) > > [13, -4, 13, 5] > > """ > > teller=0 > > getal1=0 > > getal2=0 > > while teller < len(u): > > getal1 = u[teller] + v[teller] > > teller=teller+1 > > return uitkomst2 > > > > uitkomst= [] > > uitkomst2=[] > > vector= [1, 2, 1], [1, 4, 3] > > v=vector[0] > > u=vector[1] > > uitkomst = add_vectors(u,v) > > print uitkomst > > > > > > The only problem I have is to build up uitkomst2. > > on every loop getal1 has the value of the outcome. > > So I thought this would work > > > > uitkomst2 [teller] = getal1 > > > > But then i get a out of range. > > > > > Where did you put that statement? Was it indented like getal1= and > teller= ? I doubt it. If you don't use the value till the loop is > over, then the subscript will be wrong, and so will the value. > > The other problem is you're confusing the variables inside the function > with the ones declared outside. While you're learning, you should use > different names for the two sets of variables. So create a new variable > inside the function, called something like result. Give it an initial > value, a list of the desired size. Then assign to one of its elements > each time through the loop. And don't forget to change the return > statement to return that variable instead of the confused-named one. > > DaveA > Hello, I put in right after getal1 = I have tried another solution nl. Put every outcome in a string. Then convert the string into a list like this : def add_vectors(u, v): """ >>> add_vectors([1, 0], [1, 1]) [2, 1] >>> add_vectors([1, 2], [1, 4]) [2, 6] >>> add_vectors([1, 2, 1], [1, 4, 3]) [2, 6, 4] >>> add_vectors([11, 0, -4, 5], [2, -4, 17, 0]) [13, -4, 13, 5] """ teller=0 getal1=0 uitkomst="" while teller < len(u): getal1 = u[teller] + v[teller] uitkomst = uitkomst + str(getal1) teller=teller+1 uitkomst2 = list(uitkomst) return uitkomst2 uitkomst= [] uitkomst2=[] vector= [1, 2, 1], [1, 4, 3] v=vector[0] u=vector[1] uitkomst = add_vectors(u,v) print uitkomst But then I get a list of string instead of integers. You say I have to make a vector and put all the values into it. That can work only you have to know how big the vector must be. Or work with a lot of if then. Roelof
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor