Newbie advice for string fromatting
Raymond Hettinger
vze4rx4y at verizon.net
Wed Jul 2 12:49:53 EDT 2003
More information about the Python-list mailing list
Wed Jul 2 12:49:53 EDT 2003
- Previous message (by thread): Newbie advice for string fromatting
- Next message (by thread): Newbie advice for string fromatting
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
"gt" <gtewalt at earthlink.net> wrote in message news:f9b7c11d.0307020642.7231cd82 at posting.google.com... > O.k., four days into playing with python > and I have a little problem that I would like > to get some feedback on. > ( as far as the best way to go about it ) > > Basically, just a little Mad-Libs type script. > > Something like: > > libs = ["adverb", "noun", "verb", "tool"] > words = {a:j, n:j, v:j, t:j} > for x in libs: > print "Enter a ", x, ": ", > words[j] = raw_input() > print "The %s %s %s with a %s." % (a, n, v, t) > > What is the most efficient way to do something like this? You're on the right track. Using dictionaries with the % formatting operator is efficient. Subclassing a dictionary with a question asker is an approach that keeps the code simple and separates it from the actual madlib strings. So, here is version to get you started: >>> farmtale = """ At %(name)s farms, we drive a %(machine)s over the %(vegetable)s crops and feed %(food)s to our %(animal)s.""" >>> class Madlib(dict): def __getitem__(self, key): return raw_input("Enter a %s: " % key) >>> print farmtale % Madlib() Enter a name: Donald Enter a machine: clock Enter a vegetable: squash Enter a food: pizza Enter a animal: snake At Donald farms, we drive a clock over the squash crops and feed pizza to our snake. Raymond Hettinger
- Previous message (by thread): Newbie advice for string fromatting
- Next message (by thread): Newbie advice for string fromatting
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list