CARVIEW |
StringFormatting
String Formatting
The section of the manual on String Formatting Operations is hidden in the section on
Sequence types.
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
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))
EditText (last edited 2005-10-30 08:38:35 by FredDrake)
DeleteCache (cached 2007-09-01 00:57:29)- Login
- Navigation
- Actions
- Your recent pages