Home Accessibility Courses Diary The Mouth Facebook Resources Site Map About Us Contact
Teaching dilemma - old tricks and techniques, or recent enhancements?

Where there's something that's a frequent requirement on one of the subjects we teach, but can be hard to achieve, we'll spend more than just a minute or two covering it on our courses. After all, the tips and techniques of how to make the most of a programming language are every bit as important as the basic structures of the language itself. I was taught something similar to this during a brief (but memorable) sales training course - "don't tell people about the features of your product, but rather tell them about the benefits".

Formatting currency values in Python - with commas every 3 digits - wasn't straightforward a couple of years ago. It needed not only the % formatting operator, but also another mechanism to add the commas in - and there's an example that we used on our Python course, using a class of objects of a type we called "currency" and regular expressions. It's [here] if you want to see the source, it works well, and it's what I would use up to and including Python 2.6

From Python 2.7, though, an extra comma may optionally be provided in the format string so that {:,.2f} may be uses as the descriptor for a currency value with 2 figures after the decimal point, and with a comma every three digits. The expression looks a bit obtuse, but it's a natural extension on the end of format training and can be covered in a few seconds. A new sample on our web site - [here] - is less than half as long as the previous one, and it works neatly.

So - do we celebrate the new ease? Do we yearn for the good old days? Which do we teach?

Yes, we do celebrate. This is bringing the language forward and making it better for the future. While there's still a significant proportion of older (pre-change) systems out there, we'll maintain comment and coverage in the course, and indeed the example will remain in the notes for rather longer as many delegates will have to maintain systems written using the older style even on newer systems.

New systems / methods are talked about as soon as they're in a significant proportion of user's systems. There has been only limited reason to teach people about Python 3 so far, but we're now into a much stronger changeover period. And with such big changes we have already been waving a flag on the horizon for several years. With the string formatter, my main example in this article, it's going to be mentioned on every course from this point forward even though it was only new in 2.6, and enhanced in 2.7. Older examples on the web site will remain, but as they're used and reused I'll be adding comments to say "now use format" and perhaps to give the alternative.

We celebrate and encourage languages to move forward. But we respect and support our customers with established code written using earlier releases and their need to maintan the code written with those releases
(written 2011-10-08)

 
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
G209 - Well House Consultants - Keeping up to date
  [4200] Endorsed Perl, Python and PHP training - Tcl, Lua, Ruby and C too! - (2013-10-24)
  [3755] Cruising on the Mersey Ferry? - (2012-06-07)
  [3653] What is happening in 59 days time in Melksham? - (2012-03-14)
  [3003] What will we be teaching in six years? - (2010-10-17)
  [2940] Training course locations - Melksham, UK; Buxton, UK; Lake Constance, Germany; Venice Italy, the USA and India - (2010-08-30)
  [2564] Microblogging services - Plurk, Twitter, Jaiku and more - (2010-01-05)
  [2352] Printed Directories - the start of the updating season - (2009-08-12)
  [2078] A lot has changed - but the memory lingers on - (2009-03-12)
  [2032] Mobile Internet - an alternative to hotel WiFi - (2009-02-09)
  [1488] New trainee laptop fleet for our Open Source courses - (2007-12-30)
  [396] The next technologies - (2005-07-29)
  [250] We dont stand still - (2005-03-18)
  [160] Review of the Autumn - (2004-12-22)
  [143] Network Camera - (2004-12-07)
  [86] Talk review - Idiomatic Perl, David Cross - (2004-10-12)
  [83] Geek Cruising - (2004-10-11)
  [82] Keeping up to date - (2004-10-10)

Y108 - Python - String Handling
  [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)
  [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)

Y115 - Additional Python Facilities
  [4211] Handling JSON in Python (and a csv, marshall and pickle comparison) - (2013-11-16)
  [4085] JSON from Python - first principles, easy example - (2013-05-13)
  [3442] A demonstration of how many Python facilities work together - (2011-09-16)
  [3089] Python regular expressions - repeating, splitting, lookahead and lookbehind - (2010-12-17)
  [2790] Joining a MySQL table from within a Python program - (2010-06-02)
  [2786] Factory methods and SqLite in use in a Python teaching example - (2010-05-29)
  [2764] Python decorators - your own, staticmethod and classmethod - (2010-05-14)
  [2746] Model - View - Controller demo, Sqlite - Python 3 - Qt4 - (2010-04-29)
  [2745] Connecting Python to sqlite and MySQL databases - (2010-04-28)
  [2655] Python - what is going on around me? - (2010-02-28)
  [2462] Python - how it saves on compile time - (2009-10-20)
  [2435] Serialization - storing and reloading objects - (2009-10-04)
  [2407] Testing code in Python - doctest, unittest and others - (2009-09-16)
  [1337] A series of tyre damages - (2007-09-08)
  [1336] Ignore case in Regular Expression - (2007-09-08)
  [1305] Regular expressions made easy - building from components - (2007-08-16)
  [1149] Turning objects into something you can store - Pickling (Python) - (2007-04-15)
  [1136] Buffering output - why it is done and issues raised in Tcl, Perl, Python and PHP - (2007-04-06)
  [1043] Sending an email from Python - (2007-01-18)
  [901] Python - listing out the contents of all variables - (2006-10-21)
  [753] Python 3000 - the next generation - (2006-06-09)
  [672] Keeping your regular expressions simple - (2006-04-05)
  [663] Python to MySQL - (2006-03-31)
  [239] What and why for the epoch - (2005-03-08)
  [208] Examples - Gadfly, NI Number, and Tcl to C interface - (2005-02-10)
  [183] The elegance of Python - (2005-01-19)


Back to
Python string formatting - the move from % to str.format
Previous and next
or
Horse's mouth home
Forward to
Currently pictured in Melksham
Some other Articles
Picture - Havant Station at Dusk
Static variables in functions - and better ways using objects
Vintage Bus Running Day in Warminster. An example of good bus practise.
Currently pictured in Melksham
Teaching dilemma - old tricks and techniques, or recent enhancements?
Charities v Charitable. The cost of collecting your donation.
Passing of Steve Jobs - R.I.P.
How can I do an FTP transfer in Python?
Passing optional and named parameters to python methods
4255 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 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., 2014: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 899360 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/3469_Tea ... ents-.html • PAGE BUILT: Sun Mar 30 15:20:58 2014 • BUILD SYSTEM: WomanWithCat