Last week, I ran a private Python Intermediate course - using Python 2.7 at customer request - and here are some of the code snippets I wrote in front of the class - little things I may not have blogged about in the past. Complete examples being emailed to the delegates!
# with keyword to perform open and closure on object
# -------------------------------------------------
with table.rectangularTable("Bob","3",2000,100) as ourparty:
print ourparty
print ourparty.getSeats()
print ourparty
# defining your own "with"
# -----------------------
def __enter__(this,*t,**tt):
print "We have a nice table by the window"
print t,tt
return this
def __exit__(this,*t,**tt):
print "Can we have a cleaner over here please?"
print t,tt
# map, filter and reduce examples
# -------------------------------
teams = map(lambda x: x/11,sizes)
fewspares = filter(lambda x: x%11 < 1,sizes)
ballgames = filter(lambda x:x.find("ball")>-1,games)
print reduce(lambda x,y: x+y, sizes)
# Python 2 - sorting
# ------------------
found.sort(lambda x,y:cmp(len(x),len(y)) or cmp(x,y))
# Python 2 v Python 3 sorting
# ---------------------------
if sys.version_info < (3,0):
found.sort(lambda x,y:cmp(len(x),len(y)))
else:
found.sort(key = lambda x:len(x))
# Python 2 and 3 compatible printing
# ----------------------------------
print("Here are the remote IP visitors to your images")
for k in range(len(found)):
sep = ((k+1)%4 and k+1 != len(found)) and " " or "\n"
sys.stdout.write("%16s%s"%(found[k],sep))
(written 2016-10-30)
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)
[3469] Teaching dilemma - old tricks and techniques, or recent enhancements? - (2011-10-08)
[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)
Y199 - Python - Fast Start [2017] Python - a truly dynamic language - (2009-01-30)
[3519] Python - current versions and implementations (CPython, Jython, IronPython etc) - (2011-11-13)
[4707] Some gems from an introduction to Python - (2016-10-29)
[4712] A reminder of the key issues to consider in moving from Python 2 to Python 3 - (2016-10-30)
[4713] Equality (in Python) - (2016-10-30)
Some other Articles
Convering from Python 2 to Python 3 - an update, and the 2to3 utilitySearching a Json or XML structure for a specific key / value pair in PythonSome gems from Intermediate PythonScons - a build system in Python - building hello worldMelksham trial train service is to be made permanentCourse dates - from October 2016 to December 2017Three months in community rail pictures