15 Exercises to Know A Programming Language

Daniel Nogradi nogradi at gmail.com
Tue Jul 3 07:40:41 EDT 2007


> > > "Write a program that takes as its first argument one of the words
> > > 'sum,' 'product,' 'mean,' or 'sqrt'  and for further arguments a
> > > series of numbers. The program applies the appropriate function to
> > > the series."
> >
> > > My solution so far is this:
> >
> > >http://dpaste.com/13469/
> >
> > > I would really like some feedback. Is this a good solution? is it
> > > efficient? robust? what could be improved? any not looking for a
> > > revised solution, hints on what to improve are also very welcome.
> >
> > Don't use `eval()` if it is not absolutely necessary.  Especially if the
> > input comes from a user it's a security hole.  `float()` is the function
> > to use here.
> >
> > `mean()` does not work as you try to divide a list by a number.
> >
>
> Thanks for the feedback. I have posted a revised version here (http://
> dpaste.com/13474/) where mean works. The reason I use eval is I want
> it to work for complex numbers too, but I guess i could check for the
> presence of a "j" in the arguments instead.


Hi, if I invoke your program without arguments an uncaught exception
is raised. Wouldn't it be better to inform the user that an argument
is expected?

See http://docs.python.org/tut/node10.html



More information about the Python-list mailing list