Q:

Ask for five values, subtract the lowest and take the average

I'm having trouble with this python code that is supposed to ask for five values, find the minimum value and subtract it and find the average of the remaining four numbers. I want to use a for loop and if anyone can help me also create a list, i can't seem to get that to work either so I'm doing it as you see below
def get_data():
    name = raw_input("What is your name: ")
    for i in range(5):
            scores = int(input("what are your test scores? ")
    return name, scores

def low_score(scores):
    low = min(scores)
    print low
    return low, scores

def find_avg(scores, low):
    avg = sum(scores)
    print name, "your average = ", avg
    return avg 

name, scores = get_data()
low, scores = low_score(scores)
avg = find_avg(scores, low)

A:

There are a few problems with your approach.  Take a look at this while I write some comments:
def get_data():
    name = raw_input("What is your name: ")
    scores = []
    for i in range(5):
        scores.append(int(input("what are your test scores? ")))
    return name, scores

def drop_low_score(scores):
    sorted_scores = sorted(scores)
    print "Dropping", sorted_scores[0]
    highest_four_scores = sorted_scores[1:]
    return scores

def find_avg(scores):
    avg = sum(scores) / float(len(scores))
    print name, "your average = ", avg
    return avg

name, scores = get_data()
scores = drop_low_score(scores)
avg = find_avg(scores)

When you assign the value from input to score, you are overwriting it each time.  Here I am appending it to a list I create before the loop.
Think of it like this:
scores = []
for i in range(5):
    new_score = int(input("test score?"))
    scores.append(new_score)

Each time through the loop you are appending a new value to the list of scores.  At the end of the loop you have 5 scores in your list.
The next problem is you are getting the low_score, but you are doing nothing with it.  There  are a few ways to deal with that.  Read about list to find ways to do it.  In my code (since the list is so small) I simply sort it and slice the list, cutting off the first one after it is sorted (default sorting is small to large), so it removes the smallest value.  You can read up on list slicing too, but this is an example,
>>> my_list = [1, 2, 3, 4]
>>> print my_list[2:]
[3, 4]
>>> print my_list[3:]
[4]
>>> print my_list[:2]
[1, 2]

The last problem is your find_avg which doesn't find an average at all, it is just summing the scores.  You need to sum and divide by the number of elements in the list.

