[Tutor] Exception Handling
David
david at abbottdavid.com
Wed Dec 31 01:18:47 CET 2008
Jervis Whitley wrote:
>
>
> On Wed, Dec 31, 2008 at 8:33 AM, David <david at abbottdavid.com
> <mailto:david at abbottdavid.com>> wrote:
>
> On Mon, 29 Dec 2008 16:57:44 +0100, spir wrote:
>
> > On Mon, 29 Dec 2008 09:10:45 -0000
> > "Alan Gauld" <alan.gauld at btinternet.com
> <mailto:alan.gauld at btinternet.com>> wrote:
> > >
>
> >> "bob gailer" <bgailer at gmail.com
> <mailto:bgailer at gmail.com>> wrote
> >>
> Hi David,
>
> If the user enters incorrect data for the month or day, a ValueError
> will still be raised
> on the conversion to integer.
>
> I suggest that you wrap your request for user information in a function
> that does the checking
> for you. You can re-use this function for each piece of integer
> information you require from the user.
>
> example:
>
> import time
>
>
> class BadUserError(Exception):
> pass
>
> def get_integer(retrieve, question, attempts=3):
> """
> A small function to attempt to retrieve
> information from a user, given a prompt question.
>
> retrive - any function that will accept a string as an argument
> and return a string or otherwise response from the user.
> question - a string type question that you would like to ask the user to
> respond to.
> attempts[optional] - how many times the user can incorrectly
> enter data before the BadUserError is raised.
> """
>
> while attempts > 0:
> num = retrieve(question)
> try:
> # try casting the user input as an integer.
> return int(num)
> except ValueError:
> print "Oops, You must enter a number!"
>
> attempts -= 1
> raise BadUserError("Too many incorrect tries!")
>
WOW, thanks Jervis, I had to edit some of my mistakes to get it to work
right if your birthday is today. I also looked at tm_year, tm_mon, and
tm_day. I still need to get it to prduce an error if the year is 0 or
2009, the month is 0 or 13 and the day is 0 or 32.
david [06:56 PM] opteron ~ $ ./py_get_age.py
Please enter the date format as: 2008 12 30
What year were you born? 2010
What month were you born? 14
What day were you born? 34
You are -3 years old.
Here is a link to the current program;
http://dwabbott.com/code/
Thanks again everyone,
-david
--
Powered by Gentoo GNU/LINUX
http://www.linuxcrazy.com
pgp.mit.edu
More information about the Tutor
mailing list