We are close to the solution, keep trying!

On 27/08/2010 19.56, 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.
There is no need to initialize uitkomst, because it will be created by the line
> uitkomst = add_vectors(u,v)
but you should create the list uitkomst2 INSIDE the add_vectors function. uitkomst2 is an internal storage for...
on every loop getal1 has the value of the outcome.
... that's it, for the different values that you put in getal1.
There is no more need for getal2, too.
So you could put the line
> uitkomst2=[]
in the place where you should delete
> getal2=0
that is just before the while loop.
And finally, in the loop, just before
> teller=teller+1
you need to insert the line that you haven't yet read about, but that you really need: (ta-dah!)

uitkomst2.append(getal1)

As you will (YOU WILL, WON'T YOU?) read in Alan's tutorial, and also in the one you're reading, this line extends the uitkomst2 list by adding a new element to its 'tail': the number getal1.
So, if you follow the flow of your function, you can see it happening:

-------------- BEGINNING -----------------------
vector= [1, 2, 1], [1, 4, 3]  # maybe Python can forgive you, but
                              # I would write [[1, 2, 1], [1, 4, 3]]
                              # or ([1, 2, 1], [1, 4, 3]) ...
v=vector[0]  # now v = [1, 2, 1]
u=vector[1]  # now u = [1, 4, 3]
uitkomst = add_vectors(u,v)  # add_vectors is called to provide a value
    teller=0
    getal1=0
    uitkomst2 = []
    while teller < len(u):  # teller= 0, len(u) = 3, OK
        getal1 = u[teller] + v[teller]  # getal1 = u[0]+v[0] = 1+1 = 2
        uitkomst2.append(getal1)  # uitkomst2 is now [2]
        teller=teller+1
    while teller < len(u):  # teller= 1, len(u) = 3, OK
        getal1 = u[teller] + v[teller]  # getal1 = u[1]+v[1] = 2+4 = 6
        uitkomst2.append(getal1)  # uitkomst2 is now [2, 6]
        teller=teller+1
    while teller < len(u):  # teller= 2, len(u) = 3, OK
        getal1 = u[teller] + v[teller]  # getal1 = u[2]+v[2] = 1+3 = 4
        uitkomst2.append(getal1)  # uitkomst2 is now [2, 6, 4]
        teller=teller+1
    while teller < len(u):  # teller= 3, len(u) = 3, STOP!
    return uitkomst2  # and finally the list uitkomst2 becomes the value
                      # that the add_vectors function will provide.
uitkomst = add_vectors(u,v)  # now uitkomst becomes [2, 6, 4]
print uitkomst  # and lived happily ever after.


So I thought this would work

uitkomst2 [teller] = getal1

But then i get a out of range.
sure, because you tried to access an element in an empty list.


Roelof
Hope you got it, and keep trying!
Francesco
Nessun virus nel messaggio in uscita.
Controllato da AVG - www.avg.com
Versione: 9.0.851 / Database dei virus: 271.1.1/3096 -  Data di rilascio: 
08/26/10 20:34:00
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to