On 16Sep2013 16:33, William Bryant <gogobe...@gmail.com> wrote: | Hey I am new to python so go easy, but I wanted to know how to make a program that calculates the maen. | | List = [15, 6, 6, 7, 8, 9, 40] | def mean(): | global themean, thesum | for i in List: | thecount = List.count(i) | thesum = sum(List) | themean = thesum / thecount | | Why doesn't this work?
Well: - always include the output you get from your program, and say why you think it is incorrect - just style: we tend to name variables in lower case in Python, and classes with an upper case letter; "List" is a bit odd (but "list" is taken; how about "values"?) - more than style: WHY are you using global variables; just return the mean from the function! - teh variable "List" inside the function is _local_; your function does not accept a parameter - sum(List) sums the whole list you run it many times why? - what do you think "count()" does? - you should print i, thecount and thesum on each iteration of the list; it will help you see what your function is doing, and therefore to figure out what it is doing wrong I would write a mean like this: def mean(values): return sum(values) / len(values) There are circumstances where that is simplistic, but it is the classic definition of the mean. Cheers, -- Cameron Simpson <c...@zip.com.au> Microsoft Mail: as far from RFC-822 as you can get and still pretend to care. - Abby Franquemont-Guillory <abb...@tezcat.com> -- https://mail.python.org/mailman/listinfo/python-list