Going to learn python. But I don’t know which version to start with. Help make a choice. The scope is the most extensive:

  • web;
  • processing of stock data, graphs, graphical analysis;
  • for myself.

I would choose the 3rd. But it stops the availability of libraries. And the jung under the third version does not work. Here is the key question: how quickly does it all appear under 3? After all, it's 2012 already.

  • As far as I know, Jhang 1.5 will be in experimental mode and I will not be able to build sites on it right away. Also in the fall other libraries will not be ported. For example, the same Twisted is only half ready. And such moments confuse me now. It is also useful to know if there will be any problems with updating the junga from 1.4 to 1.5? - opqx
  • As far as I understand the differences in the syntax is not large? - opqx
  • Yes, syntactic differences can be counted on the fingers. Much more differences in modules and C API. Some modules are renamed, some work a little differently, and some are completely present only in one of the versions. - Ilya Pirogov
  • And what else can python 3 frameworks use? - opqx
  • Updated the answer. - Ilya Pirogov

6 answers 6

Well, I would advise you to take the literature on Python 3, for example, from Mark Summerfield. In his books, the differences in some of the constructions of the language between Python 3 and Python 2 are described in detail. In general, Comrade Ilya Pirogov is right to refuse Python 2. I have a lot of projects on Django 1.4, as well as on Django 1.3.1, and it’s not a fact that 1.5 will be used on the fly. A lot of third-party modules use Python 2.

    Most likely, you will not be able to completely abandon Python 2, one way or another you will have to deal with it. However, this does not mean at all that it is worth refusing Python 3, there are not so many fundamental differences between these versions, and the main compatibility problem lies precisely in the modules.

    For this, I would recommend learning both versions. Start, for example, with Python 3, and then learn the differences of versions . When the mass transition to Python 3 begins, I am sure you will need knowledge of both versions.

    The most popular web frameworks for Python 3:

    • Bottle - Bottle is a fast, simple and lightweight WSGI micro web framework for Python. It is distributed as a single file module and has no dependencies.

    • Pyramid - Pyramid is a very general open source Python web framework. As a framework, it is easier to create an arbitrary web application. Wasn’t really important; it could be a spreadsheet, a corporate intranet, or a social networking platform. It can be used in a wide variety of circumstances.

    • CherryPy - CherryPy is a pythonic, object-oriented web framework. CherryPy Python program. This results in smaller source code developed in less time.

    • In practice, the situation is this: "The module also supports Python 3". So, I think it’s more practical to start from 2.7 and then, when the rule becomes “The module also supports Python 2.7”, look at the “version differences” :) Although I have the impression that by the autumn many will try to translate their live creations on 3.3. Although 3.3 is still not perfect ... - qnub
    • It is possible and in this order - it does not matter. Python 3 is simply more interesting and, as a result, easier to learn. > Although I have the impression that by the autumn many will try to translate their living creations to 3.3. I think that by the autumn it is unlikely. That's when for Python 3 a stable version of Django will be released, then surely everyone else will catch up. - Ilya Pirogov

    You should start with version 2 *, because it will still be in demand for a long time, but then, when there is a massive tendency to switch to 3 branches, you will have to study only the differences between the new branch and the old one.

      Janga 1.5 will be this fall and should (according to plans) support the 3rd python. More precisely 3.3 (the release of which is also scheduled for autumn), in which some of the strict requirements of the 3rd branch will be relaxed. But by and large, what a python to study there is no difference, because There are no conceptual differences, and software in many situations is converted by a simple 2to3 script.

        At the moment, you need to know both versions. I think in 2-3 years all the main frameworks and libraries will support Python3. But in offices and projects there will still be a bunch of working Python2.x code that needs to be maintained, and no one is going to rewrite it to 3. So a professional should teach both versions, good, they are not so very different.

          "Jang" as you called Django, works under the 3rd python, although I use Python2.6 + Django1.4 as an example, there are no problems. I would choose only the 3rd, but I don’t turn myself. many projects on 2.6