On Mon, 6 Jul 2009 01:51:22 +0100, Rich Lovely wrote: [I wrote:] >> if name in plural: >> name = plural[name] >> else: >> name += 's' >This could be written more cleanly (although arguably not as readably) as > >name = plural.get(name, name + "s")
Nice, and readable enough, I think. >d.get(key, default) returns the value from d mapped to key if it >exists, or default otherwise. > >You might also want to split your calculation and display code into >two separate loops. This might seem wasteful, but it will make your >code easier to read and maintain, and the waste is only marginal with >the loops you're running - there is a maximum of only 17 passes (once >for each value of coin and note) If I understand you correctly, this is the same idea as Bob Gailer used in his code - in which 'buff' becomes a list, instead of (as in my code) a string, formatted for printing. It certainly seems to simplify the whole thing enormously: <http://python.pastebin.com/d42610591> (retention: 1 day) (Ignore the boilerplate!) Thanks to all of you. I haven't adopted the suggestion of using classes, which I think I'll leave for when I'm reading the later chapters of the book (although I do get the gist of the idea). -- Angus Rodgers _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor