As from Python 2.6, a format method has been introduced in addtion to the
% operator on strings to provide a more flexible and improved way of convering objects (of various type) into strings. Select
[here] to open the source in a new window which was used to get this result:
munchkin:cambx grahamellis$ python3 earlier
How all are ya (in metres) 1.76
How heavy are ya (in kgs) 74
Your bmi is 23.889 if so
Your bmi is 000023.889 if so
Your bmi is 23.889 if so
Your bmi is 23.889 if so
Your bmi is 23.889 if so
Your bmi is 23.889 if so
Your bmi is 23.889462809917354 if so
for height 1.76 and weight 74.0 the bmi is 23.889
for height 1.76 and weight 74.0 the bmi is 23.889
for height 1.76 and weight 74.0 the bmi is 23.889
munchkin:cambx grahamellis$
This new
format method on a string is what we recommend you use in Python 3 ... it has a much inreased flexibility, and indeed allows you to write much cleaner code too - for example by filling in format elements by name:
print ("Your bmi is {result} if so".format(result=bmi))
or indeed
result = {"height":h, "weight":w, "bmi":bmi}
print ("for height {height} and weight {weight} the bmi is {bmi:10.3f}".format(**result))
(written 2015-12-10, updated 2015-12-09)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
Y108 - Python - String Handling [324] The backtick operator in Python and Perl - (2005-05-25)
[463] Splitting the difference - (2005-10-13)
[496] Python printf - (2005-11-15)
[560] The fencepost problem - (2006-01-10)
[773] Breaking bread - (2006-06-22)
[903] Pieces of Python - (2006-10-23)
[943] Matching within multiline strings, and ignoring case in regular expressions - (2006-11-25)
[954] Splitting Pythons in Bradford - (2006-11-29)
[970] String duplication - x in Perl, * in Python and Ruby - (2006-12-07)
[1110] Python - two different splits - (2007-03-15)
[1195] Regular Express Primer - (2007-05-20)
[1517] Python - formatting objects - (2008-01-24)
[1608] Underlining in Perl and Python - the x and * operator in use - (2008-04-12)
[1876] Python Regular Expressions - (2008-11-08)
[2284] Strings as collections in Python - (2009-07-12)
[2406] Pound Sign in Python Program - (2009-09-15)
[2692] Flexible search and replace in Python - (2010-03-25)
[2721] Regular Expressions in Python - (2010-04-14)
[2765] Running operating system commands from your Python program - (2010-05-14)
[2780] Formatted Printing in Python - (2010-05-25)
[2814] Python - splitting and joining strings - (2010-06-16)
[3090] Matching to a string - what if it matches in many possible ways? - (2010-12-17)
[3218] Matching a license plate or product code - Regular Expressions - (2011-03-28)
[3349] Formatting output in Python through str.format - (2011-07-07)
[3468] Python string formatting - the move from % to str.format - (2011-10-08)
[3469] Teaching dilemma - old tricks and techniques, or recent enhancements? - (2011-10-08)
[3796] Backquote, backtic, str and repr in Python - conversion object to string - (2012-07-05)
[3886] Formatting output - why we need to, and first Python example - (2012-10-09)
[4027] Collections in Python - list tuple dict and string. - (2013-03-04)
[4152] Why are bus fares so high? - (2013-08-18)
[4213] Formatting options in Python - (2013-11-16)
[4307] Identifying and clearing denial of service attacks on your Apache server - (2014-09-27)
[4360] Python - comparison of old and new string formatters - (2014-12-22)
[4593] Command line parameter handling in Python via the argparse module - (2015-12-08)
[4659] Prining a pound sign from Python AND running from the command line at the same time - (2016-03-03)
Some other Articles
Happy Christmas - and a Christmas thought21 places to get your train and bus timetables for TransWiltsNot standing as your local councillorCall for help counting passengers - TransWilts, 12th to 14th DecemberPython formatting update - including named completionsXML handling in Python - a new teaching example using etreeA comparison of the public transport alternatives to the Royal United Hospital, Bath - from Melksham.From single block to structure and object oriented programmingProgress on moving from Python 2 to Python 3 - training for both versions