Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
Python - comparison of old and new string formatters

The % operator in Python when applied to a string object formats the object to the right using the format specifier to the left, using the same notations as the C function sprintf.

For example:
  >>> j = 1.0 / 7.0
  >>> print j
  0.142857142857
  >>> print "j has a value %.2f !!" % j
  j has a value 0.14 !!
  >>>


That's good and effective, but lacks some of the flexibility that's desirable, and could be provided these days.

So - from Python 2.6 a format method has been provided on string objects,
using a {} notation with an extended capability in place of %:
  >>> print "j has a value {0:.2f} !!".format(j)
  j has a value 0.14 !!
  >>>


The "0" in the placeholder indicates that this element is to be filled in using element No. 0 from the tuple that's passed in to the format method. So you're allowed to re-use paramaters, specify them in different orders, ignore values if you wish (e.g. a changing format string) and you can even use named values from a dict.

  >>> filler = {"person":"porridge", "wall":"Polyfilla"}
  >>> print "Fill youself with {person} and your home with {wall}".format(**filler)
  Fill youself with porridge and your home with Polyfilla
  >>>


In Python 2.7, you can also leave out the position specifier - if you don't give a name or a number, it defaults to first value filled to first set of {}, second value to second set, etc.

An example (showing old and new styles for the same data) - [here] from last week's Python course. And there's a further example (updated, from the notes) [here].
(written 2014-12-22)

 
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
Y108 - Python - String Handling
  [4659] Prining a pound sign from Python AND running from the command line at the same time - (2016-03-03)
  [4595] Python formatting update - including named completions - (2015-12-10)
  [4593] Command line parameter handling in Python via the argparse module - (2015-12-08)
  [4307] Identifying and clearing denial of service attacks on your Apache server - (2014-09-27)
  [4213] Formatting options in Python - (2013-11-16)
  [4152] Why are bus fares so high? - (2013-08-18)
  [4027] Collections in Python - list tuple dict and string. - (2013-03-04)
  [3886] Formatting output - why we need to, and first Python example - (2012-10-09)
  [3796] Backquote, backtic, str and repr in Python - conversion object to string - (2012-07-05)
  [3469] Teaching dilemma - old tricks and techniques, or recent enhancements? - (2011-10-08)
  [3468] Python string formatting - the move from % to str.format - (2011-10-08)
  [3349] Formatting output in Python through str.format - (2011-07-07)
  [3218] Matching a license plate or product code - Regular Expressions - (2011-03-28)
  [3090] Matching to a string - what if it matches in many possible ways? - (2010-12-17)
  [2814] Python - splitting and joining strings - (2010-06-16)
  [2780] Formatted Printing in Python - (2010-05-25)
  [2765] Running operating system commands from your Python program - (2010-05-14)
  [2721] Regular Expressions in Python - (2010-04-14)
  [2692] Flexible search and replace in Python - (2010-03-25)
  [2406] Pound Sign in Python Program - (2009-09-15)
  [2284] Strings as collections in Python - (2009-07-12)
  [1876] Python Regular Expressions - (2008-11-08)
  [1608] Underlining in Perl and Python - the x and * operator in use - (2008-04-12)
  [1517] Python - formatting objects - (2008-01-24)
  [1195] Regular Express Primer - (2007-05-20)
  [1110] Python - two different splits - (2007-03-15)
  [970] String duplication - x in Perl, * in Python and Ruby - (2006-12-07)
  [954] Splitting Pythons in Bradford - (2006-11-29)
  [943] Matching within multiline strings, and ignoring case in regular expressions - (2006-11-25)
  [903] Pieces of Python - (2006-10-23)
  [773] Breaking bread - (2006-06-22)
  [560] The fencepost problem - (2006-01-10)
  [496] Python printf - (2005-11-15)
  [463] Splitting the difference - (2005-10-13)
  [324] The backtick operator in Python and Perl - (2005-05-25)


Back to
How to avoid too many recalculations within an object
Previous and next
or
Horse's mouth home
Forward to
Multiple yields and no loops in a Python generator?
Some other Articles
Christmas day in Melksham
A quiet evening in Melksham - awaiting Santa
What a difference a year makes
Multiple yields and no loops in a Python generator?
Python - comparison of old and new string formatters
How to avoid too many recalculations within an object
A brilliant finish to 2014 training and business guests, and a look to 2015
Seeing Christmas Coming to Melksham
Object factories in C++, Python, PHP and Perl
C++ in 2 days
4724 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95 at 50 posts per page


This is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - the diary and writings of Graham Ellis. Every attempt was made to provide current information at the time the page was written, but things do move forward in our business - new software releases, price changes, new techniques. Please check back via our main site for current courses, prices, versions, etc - any mention of a price in "The Horse's Mouth" cannot be taken as an offer to supply at that price.

Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2017: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 793803 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/4360_Pyt ... tters.html • PAGE BUILT: Sat Jun 11 12:16:26 2016 • BUILD SYSTEM: WomanWithCat