I have got strucked in this task even though it prints class average output as 83.6666667, But it says that it should print 83.6666666666667.

The task asked to print the class average of the students so i called the function and stored the result in a variable as

below and printed variable.Then i am getting incorrect output as 83.6666667

```
def get_class_average(students):
results =[]
for student in students:
results.append(get_average(student))
return average(results)
classavg = get_class_average(students)
print "class avg is %f:" %classavg
```

when i don't use or store the result in an variable **classavg** and directly use the statement which is as below

```
def get_class_average(students):
results =[]
for student in students:
results.append(get_average(student))
return average(results)
print get_class_average(students)
```

it is displaying the correct out or correct average as 83.6666666666667

I could not understand why is this so?. The get_class_average function returns the results output and there is some variable to catch hold of it and print it. I don't understand when the function return some value and immediately we use print statement to print it. How this can be true?. Please can body explain this?

```
return average(results)
print get_class_average(students)
```