GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Python Wiki
  • PSF Wiki
  • Jython Wiki
  • Python Wiki
  • Archive

This view

  • Original page
  • New address

GeezerVison is showing wiki.python.org — String Formatting

View as Markdown

String Formatting¶

Legacy Wiki Page

This page was migrated from the old MoinMoin-based wiki. Information may be outdated or no longer applicable. For current documentation, see python.org.

String Formatting¶

The section of the manual on String Formatting Operations is hidden in the section on Sequence types.

Tutorial on the new string formatting method format() in Python 3.0: Py3kStringFormatting

Direct Variable Reference¶

A common trick you can use when writing strings is to refer directly to variables.

   1 a = "hello, world!"
   2 x = 34
   3 y = 96
   4 
   5 print """
   6 a = %(a)s
   7 x,y = (%(x)s,%(y)s)
   8 """ % vars() # local variables

If you want to refer to global variables, you can replace vars() with globals().

Printing Percentages¶

   1 percent = lambda x:"%2.2f%%" % x
   2 
   3 print percent(35.3567) # prints "35.35%"

Print strings without newlines and spaces¶

You may find it tricky to print out a feed of numbers (as output from within a loop) on one line, without being separated by a space. An example could be output such as

Processing...
[1][2][3][4][5][6]
Completed.

The standard print statement automatically inserts newlines. This can be overcome with

   1 for i in range(10):
   2     print '['+str(i)+']',  # NOTE the trailing comma

but a space will get inserted between successive prints. One way to get around this is using sys.stdout:

   1 import sys
   2 for i in range(10):
   3     sys.stdout.write('['+str(i)+']')

which will work properly.

See Also¶

EscapingHtml, WorkingWithTime

Discussion¶

You can also print a backspace ('\b') to swallow the extra space. eg:

   1 for i in range(10):
   2     print '\b%d' % i,
   3 # Prints: 0123456789

Unfortunately, this produces a mess if output is being directed to a file; it’s best to avoid printing the space if you don’t want it.

Variable name substitution using format and eval¶

I want to print out all member of sys, then what I need is

   1 for member in dir(sys):
   2     print "sys." + member, "->", repr(getattr(sys, member))
Previous
Stream Writer
Next
Strong vs Weak Typing
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.