Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
 
For 2023 (and 2024 ...) - we are now fully retired from IT training.
We have made many, many friends over 25 years of teaching about Python, Tcl, Perl, PHP, Lua, Java, C and C++ - and MySQL, Linux and Solaris/SunOS too. Our training notes are now very much out of date, but due to upward compatability most of our examples remain operational and even relevant ad you are welcome to make us if them "as seen" and at your own risk.

Lisa and I (Graham) now live in what was our training centre in Melksham - happy to meet with former delegates here - but do check ahead before coming round. We are far from inactive - rather, enjoying the times that we are retired but still healthy enough in mind and body to be active!

I am also active in many other area and still look after a lot of web sites - you can find an index ((here))
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
Y115 - Additional Python Facilities
  [183] The elegance of Python - (2005-01-19)
  [208] Examples - Gadfly, NI Number, and Tcl to C interface - (2005-02-10)
  [239] What and why for the epoch - (2005-03-08)
  [463] Splitting the difference - (2005-10-13)
  [663] Python to MySQL - (2006-03-31)
  [672] Keeping your regular expressions simple - (2006-04-05)
  [753] Python 3000 - the next generation - (2006-06-09)
  [901] Python - listing out the contents of all variables - (2006-10-21)
  [1043] Sending an email from Python - (2007-01-18)
  [1136] Buffering output - why it is done and issues raised in Tcl, Perl, Python and PHP - (2007-04-06)
  [1149] Turning objects into something you can store - Pickling (Python) - (2007-04-15)
  [1305] Regular expressions made easy - building from components - (2007-08-16)
  [1336] Ignore case in Regular Expression - (2007-09-08)
  [1337] A series of tyre damages - (2007-09-08)
  [1876] Python Regular Expressions - (2008-11-08)
  [2407] Testing code in Python - doctest, unittest and others - (2009-09-16)
  [2435] Serialization - storing and reloading objects - (2009-10-04)
  [2462] Python - how it saves on compile time - (2009-10-20)
  [2655] Python - what is going on around me? - (2010-02-28)
  [2721] Regular Expressions in Python - (2010-04-14)
  [2745] Connecting Python to sqlite and MySQL databases - (2010-04-28)
  [2746] Model - View - Controller demo, Sqlite - Python 3 - Qt4 - (2010-04-29)
  [2764] Python decorators - your own, staticmethod and classmethod - (2010-05-14)
  [2765] Running operating system commands from your Python program - (2010-05-14)
  [2786] Factory methods and SqLite in use in a Python teaching example - (2010-05-29)
  [2790] Joining a MySQL table from within a Python program - (2010-06-02)
  [3089] Python regular expressions - repeating, splitting, lookahead and lookbehind - (2010-12-17)
  [3442] A demonstration of how many Python facilities work together - (2011-09-16)
  [4085] JSON from Python - first principles, easy example - (2013-05-13)
  [4211] Handling JSON in Python (and a csv, marshall and pickle comparison) - (2013-11-16)
  [4298] Python - an interesting application - (2014-09-18)
  [4439] Json is the new marshall, pickle and cPickle / Python - (2015-02-22)
  [4451] Running an operating system command from your Python program - the new way with the subprocess module - (2015-03-06)
  [4536] Json load from URL, recursive display, Python 3.4 - (2015-10-14)
  [4593] Command line parameter handling in Python via the argparse module - (2015-12-08)
  [4709] Some gems from Intermediate Python - (2016-10-30)

Y108 - Python - String Handling
  [324] The backtick operator in Python and Perl - (2005-05-25)
  [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)
  [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)
  [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)
  [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)
  [4595] Python formatting update - including named completions - (2015-12-10)
  [4659] Prining a pound sign from Python AND running from the command line at the same time - (2016-03-03)

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


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
4759 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, 96 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., 2024: 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.info/mouth/3469_Tea ... ents-.html • PAGE BUILT: Sun Oct 11 16:07:41 2020 • BUILD SYSTEM: JelliaJamb