What’s in which Python 3.0–3.3?

Tuesday 8 October 2013This is 11 years old. Be careful.

Two years ago I wrote a post called What’s in which Python 2.x? 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. BTW, there is also What’s in which Python 3.4–3.6?.

Update: I’ve now collected all the “What’s in which Python”s onto a single page: What’s in which Python.

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.

Comments

[gravatar]
Great list! I'd improve it by making these all links.
[gravatar]
This is a nice summary!

Add a comment:

Ignore this:
Leave this empty:
Name is required. Either email or web are required. Email won't be displayed and I won't spam you. Your web site won't be indexed by search engines.
Don't put anything here:
Leave this empty:
Comment text is Markdown.