Two years ago I wrote a post called What's in which Python? which summarized the changes in the Python 2.x releases. Today when I showed it to someone, they asked, "Do you have one for 3.x?"

Here it is. Some things to remember about Python 3:

  • 3.0 came out about the same time as 2.6, so they share a number of features. 2.7 came out between 3.1 and 3.2, so there's overlap there as well.
  • A language moratorium prevented significant changes in 3.2.

3.0: December 3rd, 2008

  • strings are now unicode, no u"" literals
  • print as a function
  • iterators instead of lists: range, .keys, .items, .values, zip, map, filter
  • nonlocal
  • function annotations
  • lots of things moved in the standard library

Full list of 3.0 changes.

3.1: June 27th, 2009

  • OrderedDict and Counter classes
  • __main__.py

Full list of 3.1 changes.

3.2: February 20th, 2011

  • argparse
  • concurrent.futures
  • __pycache__ directories
  • hasattr doesn't swallow all exceptions

Full list of 3.2 changes.

3.3: September 29th, 2012

  • yield from
  • u"" literals are back
  • unittest.mock
  • hash randomization
  • New flexible string representation
  • venv module
  • more of import implemented in Python

Full list of 3.3 changes.

tagged: » 2 reactions

Comments

[gravatar]
Ram Rachum 2:46 PM on 9 Oct 2013

Great list! I'd improve it by making these all links.

[gravatar]
laike9m 5:48 AM on 3 Jan 2014

This is a nice summary!

Add a comment:

name
email
Ignore this:
not displayed and no spam.
Leave this empty:
www
not searched.
 
Name and either email or www are required.
Don't put anything here:
Leave this empty:
URLs auto-link and some tags are allowed: <a><b><i><p><br><pre>.