[Tutor] Re: Calendar question

jfouhy at paradise.net.nz jfouhy at paradise.net.nz
Wed Apr 6 03:15:53 CEST 2005


Quoting John Carmona <jeannot18 at hotmail.com>:

Hi John,

Some comments ---

> import calendar
> 
> MonthName = {'January': 1,'February': 2, 'March': 3,'April': 4\
>  ,'May': 5,'June': 6,'July': 7,'August': 8,\
>  'September': 9,'October': 10,'November': 11,'December': 12}

You can actually get away with leaving out the backslashes.  ie, if I were
writing this code, I would probably write something like this:

MonthName = { 'January':1, 'February':2, 'March':3, 'April':4,
              'May':5, 'June':6, 'July':7, 'August':8,
              'September':9, 'October':10, 'November':11, 'December':12 }

(I'm not sure what the preferred convention for whitespace is ... I always leave
a space after the comma, but have no whitespace surrounding the colon, because
that makes it clearer that the two things either side of the ':' are a linked unit)

> ##By the way do the number have to be under that format??

I don't understand the question, sorry..

> calendar.setfirstweekday(0)
>  ##setfirstweekday change the day to what you want it be
>  ## 0=Monday, 6=Sunday.
> year = int(raw_input("Enter a year: "))
> month = (raw_input("Enter a month: "))            # ***
> MonthName_int = int(MonthName)                    # ***
> 
> 
> print calendar.prmonth(year,month)

Try replacing the lines I have marked with:

monthString = raw_input("Enter a month: ")
month = MonthName[monthString]

You might want to review the tutorial section on dictionaries:

http://python.org/doc/2.4.1/tut/node7.html#SECTION007500000000000000000

If you want more robustness, you could try replacing those two lines with this:

monthString = raw_input('Enter a month: ')
while monthString not in MonthName:
    print "Unknown month!"
    monthString = raw_input('Enter a month: ')
month = MonthName[monthString]

This will check to see if the user's input is one of the keys in your
dictionary, and if not, it will ask again.

HTH!

-- 
John.


More information about the Tutor mailing list