[Tutor] Print text position problems when using triple quotes

Bill Mill bill.mill at gmail.com
Thu Feb 24 19:14:13 CET 2005


On Thu, 24 Feb 2005 10:02:44 -0800, Luke Jordan <luke.jordan at gmail.com> wrote:
> Hi all,
> 
> I've tried a lot of experimenting and searching through various
> tutorials, and I haven't been able to come up with a solution to this,
> ostensibly simple, problem.
> 
> I'm writing a simple game (run in command line) in which narrative
> text is printed in response to a user's decisions. The problem I'm
> running into is that triple quotes used in an indented block preserves
> the indentation when it prints. I'm writing code like this:
> 
> if userInput == 1:
>         some stuff
>         print """
> texttexttexttexttexttexttexttext
>         """
>         question within a question
>         if userInput == 1:
>                 print """
> texttexttexttexttexttexttexttext
> texttexttexttexttexttexttexttext
>                 """
>         elif userInput == 2:
>                 print """
> owowowowowowowowowowow
>                 """
> 
> to preserve the text's position at left when I run it in the
> command-line. The blocks get distorted and it becomes painful to read.
> 
> Is there a way to preserve the readability of the code and have
> printed text from indented blocks, say, nested conditionals, appear
> flush at left, not printed exactly where I've written them in the
> script?

Why not just take them out of the block, and either make them global
to the module or create a string module? i.e.:

prompt1 = """This is a long string with %s string variables
%s scattered all over the place
            as well as odd indentation %s
    and funny lines
   ------------------
               ============"""

class foo:
    def bar(self):
        print prompt1 % (var1, var2, var3)

peace
Bill Mill
bill.mill at gmail.com


More information about the Tutor mailing list