[Tutor] i++

scott slewin at rogers.com
Tue Jun 5 18:16:40 CEST 2007


Danny Yoo wrote:
> 
> 
>> I have attached what I got so far if you feel like taking a look, but 
>> it is probably nasty by your standards :)
> 
> Good, this is exactly what I want.  Yes, there are a few things here 
> that you will want to learn how to fix.  Let me point out one or two, 
> and I'm sure others here on the list can chime in too.
> 
> #####################################
> ## within definition of char_sheet():
> 
>     if month == 1:
>         month = "January"
>     elif month == 2:
>         month = "February"
>     elif month == 3:
>         month = "March"
>     ...
> #####################################
> 
> Make this a separate function: the essence of this block of code is 
> pretty self-contained as a number-to-month-string converter.
I never thought about that, I will put it into its own function.  That
makes sense because I may actually need to use that number-month
converter in another part of the program.

> There is also a much nicer way to express the code: rather than make it 
> conditional logic, just build a data structure that naturally expresses 
> the mapping from a number to a string.  There are two data structures 
> that fit the above nicely: a "list" and a "hashtable".  For the above, a 
> list naturally works out.
> 
>     ######################################
>     ## pseudocode
>     months = ["January", "February", ...]
>     monthName = months[monthNumeral - 1]
>     ######################################
> 
> Do this, and that block of code reduces from twenty-four lines to about 
> three.
Thanks, that is a great idea.  Also, this will be a good exercise for me
to learn about list.


> I'm looking at the number of attributes you're storing as a Player.
Yea, both Pychecker and pylint complained about that.

> All these values "belong" together.  Rather than pass them separately, 
> glue them together as a "structure".  In Python, can we use a class to 
> glue things together...
Okay, that makes good sense :)  This should be a good exercise for OOP
Programming :)


> There are a few other things to discuss about in the code, but I should 
> let you take a look again and respond before going on.  If you have more 
> questions, please feel free to ask the list.

Thanks, I never even expected you to go through the code :)  I will work
  at your suggestions and will get back to you if I have any problems.

-- 
Your friend,
Scott

Sent to you from a Linux computer using Kubuntu Version 7.04 (Feisty Fawn)



More information about the Tutor mailing list