<p>A few years ago, the answer to this would have been "stick with Python 2; the libraries aren't ready for Python 3 yet". In many cases, that would have been a deal-breaker, because many of the older libraries were pretty useful, particularly for <a href="https://jakevdp.github.io/blog/2013/01/03/will-scientists-ever-move-to-python-3/" rel="noreferrer">scientific computation</a>.</p>

<p>However, the story's a bit different now, in 2017. <a href="http://py3readiness.org/" rel="noreferrer">There isn't much of a reason to stick with Python 2</a>; almost all of the top 360 libraries support it now.</p>

<p>A few popular resources, like <a href="https://learnpythonthehardway.org/book" rel="noreferrer">Learn Python the Hard Way</a>, have remained ardently Python 2-only <a href="https://learnpythonthehardway.org/python3/" rel="noreferrer">until recently</a> (early 2017), and I suspect a lot of old tutorials haven't been updated.</p>

<p>If you stay with Python 2, you miss out on all of the really nice features, like <code>async</code> and f-strings, which have only been added to the 3.x series.</p>

<p>Something to consider, though: Python 2 and 3 are very similar, and learning one will mean you can relatively easily switch to the other. Python 3 just removes the major 'gotchas', like <code>5 / 2 = 2</code>, or bad things happening when you use Unicode. For beginners, I think it's a great advantage for things to work intuitively (until, of course, you fight with the <a href="https://stackoverflow.com/questions/39618943/why-does-the-floating-point-value-of-40-1-look-nice-in-python-3-but-30-1-doesn">floating point representation</a> issue).</p>

<p>Generally, I don't think you'll experience any problems with Python 3, and it seems logical to me to learn the <em>future</em> of the language, rather than Python 2, <a href="https://wiki.python.org/moin/Python2orPython3" rel="noreferrer">which is legacy</a>.</p>

CC BY-SA 3.0
2017-06-13T10:03:22.897Z
Also keep in mind that -as noted in [PEP-373](https://www.python.org/dev/peps/pep-0373/)- in [2020](https://pythonclock.org/) Python 2.X will be retired...
quobit
CC BY-SA 3.0
2017-05-23T19:06:47.863Z
Second this. Used to use Python 2 because Pygame wasn't available for 3. Now that it is, no reason to look back.
Ryan Nutt
CC BY-SA 3.0
2017-05-23T19:18:40.207Z
The only reason to look into Python 2 is if you are working with some library or package that is created in it.  Otherwise, I 100% agree with @Aurora001
Ben I.
CC BY-SA 3.0
2017-05-23T23:48:33.903Z
at this time web mining libraries like pattern (https://pypi.python.org/pypi/Pattern) still stick with python2. Their py3 version still at testing stage
geomars
CC BY-SA 3.0
2017-05-23T18:56:39.750Z
2017-06-14T17:26:48.100Z
2017-06-14T17:26:48.100Z
Aurora0001
<p>I will be giving a small course on the Python programming language to a group of interns this summer. As I am sure you know, there are many different versions of the Python language.</p>

<p>I am wondering what to consider when choosing a particular version of the Python programming language. Is choosing the latest version of Python <em>always</em> the correct decision?</p>

<python>
What to consider when choosing version of Python?
# What to consider when choosing version of Python?

(Asked by: username_0 on 2017-05-23)

I will be giving a small course on the Python programming language to a group of interns this summer. As I am sure you know, there are many different versions of the Python language.

I am wondering what to consider when choosing a particular version of the Python programming language. Is choosing the latest version of Python *always* the correct decision?

**Tags:** python


---

## 1 answers

### Answer by username_1 on 2017-05-23. Score: 19 | Accepted answer

A few years ago, the answer to this would have been "stick with Python 2; the libraries aren't ready for Python 3 yet". In many cases, that would have been a deal-breaker, because many of the older libraries were pretty useful, particularly for [scientific computation](https://jakevdp.github.io/blog/2013/01/03/will-scientists-ever-move-to-python-3/).

However, the story's a bit different now, in 2017. [There isn't much of a reason to stick with Python 2](http://py3readiness.org/); almost all of the top 360 libraries support it now.

A few popular resources, like [Learn Python the Hard Way](https://learnpythonthehardway.org/book), have remained ardently Python 2-only [until recently](https://learnpythonthehardway.org/python3/) (early 2017), and I suspect a lot of old tutorials haven't been updated.

If you stay with Python 2, you miss out on all of the really nice features, like `async` and f-strings, which have only been added to the 3.x series.

Something to consider, though: Python 2 and 3 are very similar, and learning one will mean you can relatively easily switch to the other. Python 3 just removes the major 'gotchas', like `5 / 2 = 2`, or bad things happening when you use Unicode. For beginners, I think it's a great advantage for things to work intuitively (until, of course, you fight with the [floating point representation](https://stackoverflow.com/questions/39618943/why-does-the-floating-point-value-of-40-1-look-nice-in-python-3-but-30-1-doesn) issue).

Generally, I don't think you'll experience any problems with Python 3, and it seems logical to me to learn the *future* of the language, rather than Python 2, [which is legacy](https://wiki.python.org/moin/Python2orPython3).

> **Comments:**
> **username_3**: Second this. Used to use Python 2 because Pygame wasn't available for 3. Now that it is, no reason to look back.  
> **username_4**: The only reason to look into Python 2 is if you are working with some library or package that is created in it.  Otherwise, I 100% agree with @Aurora001  
> **username_5**: at this time web mining libraries like pattern (https://pypi.python.org/pypi/Pattern) still stick with python2. Their py3 version still at testing stage  
> **username_2**: Also keep in mind that -as noted in [PEP-373](https://www.python.org/dev/peps/pep-0373/)- in [2020](https://pythonclock.org/) Python 2.X will be retired...  

---

