[Tutor] Strings and the % Operator
Wed, 15 Dec 1999 07:42:09 -1000
I'm trying to format some text to fit a box that is a variable width.
Because its not at all obvious to me where to find the string formatting
codes and the % operator in the Python documentation I'll ask here. This
should illustrate what I need. This was modeled on an example in the
[dougs@lawelawe pydev]$ python
Python 1.5.2 (#1, Apr 18 1999, 16:03:16) [GCC pgcc-2.91.60 19981201
(egcs-1.1.1 on linux2
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
>>> myString = "A bunch of stuff that exceeds 10 characters"
>>> otherString = "or not!"
>>> new1 = "[1: %-10s ]" % myString
'[1: A bunch of stuff that exceeds 10 characters ]'
>>> new2 = "[1: %-10s ]" % otherString
'[1: or not! ]'
The second case does exactly what I want, but the first doesn't truncate.
>>> width = 10
>>> new3 = "[1: %-width s ]" % myString
Traceback (innermost last):
File "<stdin>", line 1, in ?
ValueError: unsupported format character 'w' (0x77)
I've no clue how to proceed with using a variable to format.
Regarding the documentation, the % operator doesn't appear in the index of
the 'Library Reference'. The TOC has 'String Services' but it doesn't
appear there. There is a reference in the index to 'operator' but no %.
Its not the first time and won't be the last, but I'm confused.