Answers.Body: <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>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-13T10:03:22.897Z
Answers.Text: 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...
Answers.UserDisplayName: quobit
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-05-23T19:06:47.863Z
Answers.Text: Second this. Used to use Python 2 because Pygame wasn't available for 3. Now that it is, no reason to look back.
Answers.UserDisplayName: Ryan Nutt
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-05-23T19:18:40.207Z
Answers.Text: 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
Answers.UserDisplayName: Ben I.
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-05-23T23:48:33.903Z
Answers.Text: 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
Answers.UserDisplayName: geomars
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-05-23T18:56:39.750Z
Answers.LastActivityDate: 2017-06-14T17:26:48.100Z
Answers.LastEditDate: 2017-06-14T17:26:48.100Z
Answers.UserDisplayName: Aurora0001
Body: <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>
  
Tags: <python>
Title: What to consider when choosing version of Python?
ThreadText: # 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...  
  
  ---
  
  