12
votes

Devrais-je commencer par Python 3.0?

Récemment, j'ai décidé d'élargir mes horizons de programmation et d'apprendre le langage de programmation Python. Bien que j'utilise un peu python un peu pour des cours au collège et pour un projet ou deux au travail, je ne suis en aucun cas un expert. Ma question est la suivante: Devrais-je m'embêter avec les versions 2.x ou dois-je sauter directement à 3.0? Je me penche vers 3,0 depuis que je vais programmer des applications plus pour une utilisation personnelle / apprentissage, mais je voulais voir s'il y avait de bons arguments contre elle avant que je commence.


8 Réponses :


4
votes

Je pense que vous serez mieux servi aller directement à 3.0. Sauf si vous avez un code de code hérité à faire face, il y a très peu d'avantages d'apprendre les façons de faire des choses 2.xx.

Dans le monde Python (comme dans la plupart des autres, vraiment), des versions ont tendance à prendre un certain temps à migrer vers tous les sous-projets, mais si vous trouvez la nécessité de passer à la version 2.xx, je n'ai pas t Vous pensez que vous trouverez des choses de repélateur particulièrement douloureuses.


1 commentaires

La chose est que cela fonctionne mieux dans l'autre sens. Commencez avec 2,6, puis lorsque 3.x a un meilleur support tiers et ainsi de suite, il sera facile de migrer. Et il n'y aura pas beaucoup plus d'apprentissage, puisque 2.6 a 3.x les caractéristiques qui y sont repluées.



2
votes

Utilisez Python 3.1, Luke.


4 commentaires

Plus de personnes utilisant py3.x => ports plus rapides. Je m'en fiche - + 1.


C'est plutôt peu pratique et inutile pour cette question.


Si j'étais la personne qui posa la question, je découvrirais qu'il y avait Python 3.1 disponible. Donc, je n'ai pas à choisir entre 2.x et 3.0. Quoi qu'il en soit, c'est assez évident - si vous pouvez utiliser PY3K, utilisez-le.


"Si vous pouvez utiliser PY3K, utilisez-le." Superbe perspicacité.



20
votes

absolument pas 3.0 - 3.1 est sorti et est stabilisant, mieux, plus rapide à tous égards; Cela n'a absolument aucun sens de commencer avec 3,0 pour le moment, si vous souhaitez occuper la série 3, il devrait que tous les comptes soient de 3,1.

Tant que 2,6 VS 3.1, 3.1 est une langue meilleure (en particulier parce que certains Cruft ont été supprimés qui s'étaient accumulés au fil des ans, mais doivent rester à 2. * pour la compatibilité à l'envers) mais tout le reste de l'écosystème (des extensions à Les outils, des livres à des connaissances collectives) sont toujours très favorables à 2.6 - Si vous ne vous souciez pas de pouvoir utiliser (par exemple) certaines gites ou extensions scientifiques, déployer sur l'App moteur, les fenêtres de script avec com, ont un Spiffy tiers IDE, etc., 3,1 est conseillé, mais si vous vous souciez de telles choses, toujours 2. * Pour l'instant.


2 commentaires

Si triste que je ne puisse pas trouver Python 3.1 dans le référentiel Ubuntu.


Bien plus de bibliothèques que l'interface graphique, scientifique, etc. Suisse seulement 2.6.



3
votes

Vous devriez aller avec la dernière version de tout langage de programmation que vous apprenez à moins que vous n'ayez une raison spécifique pas à. Puisque vous n'avez pas de projet existant qui ne fonctionnera pas avec Python 3.0, vous devriez vous sentir libre d'utiliser la version la plus récente.


6 commentaires

-1. Bad, conseils à court terme: "Vous devriez aller avec la dernière version de tout langage de programmation" - Les choses sont beaucoup plus nuancées que cela. Aussi, dernière quelle version? Version stable?


"... à moins que vous n'ayez une raison spécifique de ne pas." Ne citez pas seulement une partie d'une phrase et dites-moi que je me trompe. Prenez le tout dans le contexte. Oui, la dernière version stable.


C'est toujours un conseil erroné. Il n'a pas de raison spécifique de ne pas, c'est pourquoi il demande - mais je peux lui donner quelques-uns.


Étant donné que l'OP demande spécifiquement des arguments contre 3.0, vous devriez peut-être lui donner ces raisons au lieu de faire allusion vaguement.


L'argument contre c'est qu'il n'ya pas d'avantage suffisant de l'utiliser, cela compense l'incapacité à utiliser la plupart des choses en dehors de la bibliothèque standard, en particulier compte tenu du saut de 2,6 à 3.1 est un petit. Et je pense que c'est assez.


Il y a une raison spécifique de ne pas: il n'y a presque pas de bibliothèques. J'espère être rectifié bientôt, mais c'est une très grande raison spécifique.



2
votes

python 3.1 ne doit pas être utilisé tant que d'autres bibliothèques ont pris en charge le support.

Vous devez utiliser 2.6 maintenant. Il y a plusieurs caractéristiques 3.x les portées à dos, de sorte que la migration vers 3.x ne soit pas difficile la plus tard, et vous n'apprenez pas les pratiques obsolètes.


3 commentaires

Voulez-vous vraiment dépendre de la bibliothèque tierce partie?


C'est plutôt courant. L'apprentissage de Python est autant d'apprendre l'API que la «langue» elle-même - et pourquoi éviter des extensions utiles à l'API?


En outre, une fois qu'il l'apprend et veut faire quelque chose avec elle, je doute que ce sera suffisamment long en tant que bon soutien de la bibliothèque tiers - au moins quelques années.



2
votes

La bonne nouvelle est que ce n'est pas vraiment difficile d'apprendre Python 2.x et 3.x. Vous pouvez installer la dernière version 2.x en tant que version enregistrée auprès du système pour exécuter des scripts Python par défaut, mais également installer la dernière version 3.x pour démarrer explicitement lorsque vous le souhaitez. C'est ce que j'ai sur mon système Windows Vista.

Ensuite, le document clé pour apprendre les différences entre les versions 2.x et 3.x est la suivante:

http://docs.python.org/3.1/whatsnew/3.0.html

Si vous lisez des matériaux d'apprentissage Python qui sont basés sur 2.x et font également référence à ce lien "Quoi de neuf dans Python 3.0", vous comprendrez la compréhension de la façon dont les choses ont changé. Voir également les autres nouveaux documents, comme pour les différences entre 3.0 et 3.1, mais le lien ci-dessus est le principal à comprendre les modifications 2.x contre 3.x.


1 commentaires

Cette réponse est probablement le plus objectif de tous les py3. Si vous voulez simplement "apprendre python" - puis apprenez les deux, installez-les côte à côte et humide (écrivez-en tout deux fois). Avec une certaine prudence, les programmes les plus élémentaires seront portables entre ces deux langues . Si vous faites face à une tâche pragmatique, je préférerais faire attention avec PY3. Je ne sais pas pourquoi certaines personnes aspirent à une py2.8 - Je dirais une PY4 non compatible sans PY3 (en gardant de bonnes choses de PY3: conflate Str et Unicode, laissez les deux mots-clés). Mon Py4 serait principalement compatible avec PY2 et (moins important) PY3.



7
votes

Réponse courte: Commencez avec Python 2.6.

Pourquoi: la programmation est plus amusante et utile lorsque vous pouvez tirer parti du travail des autres. Cela signifie que l'utilisation de bibliothèques tierces de 3ème partie souvent. Beaucoup de bibliothèques populaires pour Python n'ont pas encore de support 3.x. Pil et Numpy / Scipy vient à l'esprit. Mon interprète préféré, Ipython, ne fonctionne pas encore avec 3.0. De nombreux cadres de test d'unités et de nombreux cadres Web ne sont pas encore sur 3.0.

Donc, si vous démarrez dans 3.x, de nombreuses portes seront fermées à vous, au moins jusqu'à ce que le portage 3.x prend la vapeur. Il y a certes beaucoup de belles caractéristiques dans Python 3.x, mais certaines d'entre elles ont été replacées à 2,6 et d'autres pourront en faire en 2.7. Alors coller avec 2,6 pour l'instant et réévaluer 3.x dans l'année ou plus.


0 commentaires

8
votes

utiliser 3.1

pourquoi?

1) Parce que tant que tout le monde utilise toujours 2,6, les bibliothèques auront moins de raisons de migrer vers 3.1. Tant que ces bibliothèques ne sont pas portées à 3.1, vous êtes bloqué avec le choix de ne pas utiliser les points forts de 3.1, ou uniquement les travaux à mi-chemin à l'aide de la solution pirate d'utilisation d'un ensemble de fonctions à dos arrière. Soyez un penseur avant et aidez à appuyer sur Python en avant.

2) Si vous apprenez et utilisez 3.1 Maintenant, vous n'aurez-vous pas à la désapprouver plus tard lorsque le port de masse est terminé. Je sais que certaines personnes disent que vous n'aurez pas à apprendre beaucoup, mais pourquoi apprendre le vieille merde du tout? Python lui-même se déplace vers 3.1 , les bibliothèques vont se déplacer vers 3.1, et elle est nulle d'avoir à jouer le rattrapage et à relier une langue que vous utilisez déjà.

3) 3.1 est tout autour d'une meilleure langue , plus stable et plus cohérente que 2,6 ... c'est normal. Les leçons tirées de 2,6 ont tous été versées dans 3.1 pour le rendre meilleur. c'est un processus appelé progrès . C'est pourquoi personne n'utilise toujours Windows 3.1. C'est la façon dont les choses avancent. Pourquoi pensez-vous qu'elles sont allées à la difficulté de porter une fonctionnalité dans la première place?

4) Si vous apprenez Python et apprenez 2.6, alors au moment où vous êtes vraiment à l'aise avec la langue, les ports seront sortis et vous devrez apprendre les bibliothèques et la langue de nouveau. Si vous commencez par 3.1, alors au moment où vous êtes à l'aise avec la langue, les ports seront sortis, puis vous pouvez apprendre les bibliothèques qui vous intéressent. C'est un processus plus fluide . / p>

5) être un meilleur développeur. Si vous devez apprendre et relâcher les mêmes choses, votre compréhension ne sera pas très profonde. En apprenant cette langue et ses bibliothèques une seule fois, vous aurez plus de temps à travailler avec eux plutôt que de la syntaxe de la réapparition. Cela vous permet de mieux les comprendre. Si vous manquez vraiment quelques morceaux en forcés sur les bibliothèques? Écrivez-les. Vous n'aurez probablement pas besoin d'une bibliothèque entière et ne peut généralement écrire que ces pièces dont vous avez besoin et développer des outils pour vous-même. Ceci, encore une fois, vous aide à mieux comprendre la langue, et plus profondément.


1 commentaires

Permettez-moi de traduire la réponse ci-dessus dans la langue humaine: "Oui, sacrifiez-vous pour le bien de Python 3.x et utilisez-le. Bibliothèques manquantes? Ne vous inquiétez pas, quand plus de ventouses comme vous déménagent à Python 3.x, enfin la bibliothèque Les mainteneurs seront déplacés par pitié et sur le port vers 3.x - en utilisant six ou tel. C'est une meilleure langue et étant deux fois plus lents que 2,7 (DÉJÀ SLOW, MINDING GIL) n'est qu'un problème de mise en œuvre. en cpython. " Mon conseil: N'écoutez pas d'autres personnes. Faites votre propre décision et supporte les conséquences. Vérifiez ce qui fonctionne, pas ce que les fanboys vous disent: "Droite".