Accéder au contenu principal

Python 2 vs 3 : Tout ce que vous devez savoir

Dans cet article, nous allons couvrir les principales différences entre Python 2 et 3, lequel est le meilleur, et lequel vous devriez opter pour commencer votre voyage en science des données
Actualisé 14 nov. 2024  · 6 min de lecture

Python 2 vs 3

Si vous envisagez de percer dans la science des données, vous aurez probablement entendu parler de Python. Python est un langage de programmation open-source à usage général qui s'applique largement à la science des données et à d'autres domaines logiciels, comme le développement de sites web et de jeux, la cybersécurité et la blockchain. 

La popularité de Python a explosé ces dernières années. Il occupe la première place dans divers indices de popularité des langages de programmation, notamment l'indice TIOBE et l'indice PYPL. Vous pouvez en savoir plus sur l 'utilisation de Python dans un autre article. 

En raison de sa syntaxe simple et lisible, Python est souvent cité comme l'un des langages de programmation les plus faciles à apprendre pour les nouveaux codeurs. Si vous débutez dans la science des données et ne savez pas quel langage apprendre en premier, Python est l'une des meilleures options. Vous pouvez dès à présent commencer votre parcours en science des données en suivant le cursus Data Scientist with Python chez DataCamp.

Cependant, les choses peuvent devenir un peu confuses. Vous avez peut-être aussi entendu parler de Python 2 et 3. Qu'est-ce que c'est ? N'existe-t-il pas un seul et unique langage de programmation Python ? Lequel devez-vous apprendre ? Inutile de stresser : sauf circonstances particulières, à ce jour, vous utiliserez toujours Python 3. Quoi qu'il en soit, il est toujours bon de connaître les différences. 

Dans les sections suivantes, nous expliquerons ce que sont Python 2 et 3, les principales différences entre eux, et lequel est le plus préférable à apprendre et à utiliser. 

Qu'est-ce que Python 2 ?

Python a été développé à la fin des années 1980 par Guido van Rossum et rendu public pour la première fois en 1991. Après neuf ans de développement et une popularité croissante, Python 2.0 a été publié en 2000. 

Python 2 était accompagné d'une toute nouvelle spécification technique appelée Python Enhancement Proposal (PEP), qui visait à fournir des lignes directrices et des bonnes pratiques pour l'écriture du code Python. Il comporte également de nouvelles fonctionnalités, telles que la compréhension des listes, la prise en charge de l'Unicode et un collecteur d'ordures à détection de cycle.

Mais le changement le plus important dans Python 2 concerne le processus de développement lui-même. Python a été conçu comme un langage de programmation facile à apprendre pour les débutants. Pour atteindre cet objectif, l'équipe responsable du développement de Python - avec Guido ban Rossum en tête - a décidé de passer à un processus de développement plus transparent et soutenu par la communauté.

Python 2 a continué à se développer au fil du temps. Les versions successives ont ajouté de nouvelles fonctionnalités au langage de programmation. La dernière version de Python 2, publiée en 2010, était Python 2.7. La prise en charge de cette version a pris fin le 1er janvier 2020. 

Qu'est-ce que Python 3 ?

Python 3 est la nouvelle génération du langage de programmation. Il a été publié en décembre 2008, accompagné de plusieurs améliorations et nouvelles fonctionnalités. 

Python 3 n'était pas simplement une autre version du code de Python 2 après débogage. La nouvelle version modifie radicalement le langage afin de remédier aux problèmes de sécurité et aux défauts de conception des versions précédentes. Python 3 est venu avec une nouvelle syntaxe destinée à empêcher le code redondant ou répétitif, c'est-à-dire le code qui fait la même tâche de différentes manières. En proposant une manière unique et claire de faire les choses, la facilité d'utilisation et la lisibilité de Python 3 se sont considérablement améliorées.  

Parmi les principaux changements apportés par Python 3, citons la transformation de la déclaration print en une fonction intégrée, l'amélioration de la division des nombres entiers et l'amélioration de la prise en charge de l'Unicode. La nature de ces changements est telle que Python 3 était incompatible avec Python 2, autrement dit, il est incompatible à rebours.

Pourquoi existe-t-il différentes versions de Python ?

Voyons quelques exemples de codage pour illustrer les différences entre Python 2 et 3 !

La nouvelle fonction print()

L'instruction print de Python 2 a été remplacée par la fonction print() de Python 3, ce qui signifie que nous devons mettre l'objet à imprimer entre parenthèses.

Python 2 :

>>> print 'Hello DataCamp'
Hello DataCamp

Python3 :

>>> print('Hello Datacamp')
Hello Datacamp

Division des nombres entiers

Dans Python 2, lors de la division d'entiers, le résultat était toujours un entier. Dans Python3, le résultat comprend toujours les décimales, ce qui rend la division entière plus intuitive.

Python 2 :

>>> 5/2
2

Python 3 :

>>> 5/2
2.5

Prise en charge de l'Unicode

Dans Python 2, chaque chaîne Unicode doit être marquée d'un préfixe "u" car elle utilise par défaut des caractères ASCII. En revanche, Python 3 stocke par défaut les chaînes de caractères sous forme d'Unicode, ce qui est plus polyvalent que les chaînes ASCII. 

Python 2 :

>>> print type("Hello DataCamp!") # this is an ASCII string
<type 'str'>

>>> print type(u"Hello DataCamp!") # this is a Unicode string
<type 'unicode'>

Python 3 :

>>> print(type("Hello DataCamp!")) # this is a Unicode string
<class 'str'>

Fonction de la gamme

La fonction xrange() de Python 2 n'existe plus dans Python 3. Elle a été remplacée par la fonction range(), qui a amélioré les performances lors de l'itération sur des séquences

Python 2 :

>>> xrange(1,10)
xrange(1, 10)
>>> type(xrange(1,10))
<type 'xrange'>

Python 3 :

>>> range(1,10)
range(1, 10)
>>> type(range(1,10))
<class 'range'>

Dans le tableau suivant, vous trouverez les principales différences entre Python 2 et 3.

 

Python 2

Python 3

Date de sortie

2000

2008

Syntax

Plus complexe et difficile à interpréter

Lisible et facilement compréhensible 

Performance

Des performances plus lentes en raison de défauts de conception

Amélioration des performances d'exécution du code par rapport à Python 2

fonction d'impression

print "Bienvenue à DataCamp"

print ("Bienvenue à DataCamp")

Division des nombres entiers

Le résultat est une valeur entière. Les décimales sont toujours tronquées

Le résultat est toujours une valeur flottante

Prise en charge de l'Unicode

Utilise par défaut les caractères ASCII. Pour stocker des valeurs Unicode, vous devez les définir à l'aide de "u"

Le stockage par défaut des chaînes de caractères est Unicode

Gamme

la fonction xrange() pour créer une séquence de nombres

La fonction range() est plus efficace lors de l'itération que xrange()

Rétrocompatibilité

Il est relativement facile de porter Python2 vers Python 3.

Python 3 n'est pas rétro-compatible avec Python 2

Bibliothèques

De nombreuses bibliothèques plus anciennes pour Python 2 ne sont pas compatibles avec les versions ultérieures.

La plupart des nouvelles bibliothèques pour Python 3 ne peuvent pas être utilisées dans Python 2.

Pouvez-vous convertir Python 2 en 3 ? 

L'évolution est une caractéristique essentielle de tout langage de programmation. Les langages évoluent au fil du temps pour améliorer les performances et rester pertinents pour les utilisateurs. Le passage de Python 2 à 3 a été le plus grand changement dans l'histoire de Python. 

S'il est logique que les entreprises et les développeurs finissent par migrer leur base de code vers Python 3 - en particulier après la fin de la prise en charge de Python 2 -, le portage du code d'une ancienne version vers une nouvelle peut s'avérer un processus difficile et intimidant. Ce problème est particulièrement aigu dans le cas de Python, car de nombreuses bibliothèques Python 2 ne sont pas compatibles avec les versions ultérieures. 

Heureusement, il existe quelques ressources qui peuvent aider à convertir le code Python 2 en Python3.

  • 2à3: Un programme Python qui prend le code source Python 2.x et applique une série de correcteurs pour le transformer en code Python 3.x valide.
  • Python-Future: Vous permet d'utiliser une base de code unique et propre, compatible avec Python 3.x, pour prendre en charge à la fois Python 2 et Python 3 avec un minimum de surcharge.
  • Six: Une bibliothèque de compatibilité avec Python 2 et 3. Il fournit des fonctions utilitaires permettant de gommer les différences entre les versions de Python dans le but d'écrire du code Python compatible avec les deux versions de Python.

Python 2 vs 3 : Quelle est la meilleure solution ? 

Bien que cette question ait été débattue il y a quelques années, aujourd'hui, il ne fait aucun doute que Python 3 est un meilleur choix. Tout d'abord, Python 2 n'est plus pris en charge depuis 2020. Il est donc logique que les nouveaux projets soient écrits en Python 3.x. Deuxièmement, Python 2 n'étant plus supporté, tous les développements se situent du côté de Python 3. Le langage a connu des améliorations constantes après chaque nouvelle mise à jour (la version la plus récente est Python 3.10.5, et il existe déjà une version bêta de Python 3.11 avec d' importantes nouvelles fonctionnalités). 

Dans ce contexte, l'adoption massive de Python 3 n'est pas une surprise. Selon l'enquête 2021 sur les développeurs Python, menée par JetBrains, en moyenne, la part des développeurs Python utilisant Python 3 était de 95 %. En outre, la part des utilisateurs de Python 2 diminue de 5 points de pourcentage chaque année.

Adoption de Python 2 vs Python 3

Adoption de Python 2 vs Python 3

Source : JetBrains

Quelle version de Python utiliser ? 

Python 3 est la meilleure version de Python à l'heure actuelle.  C'est le choix le plus sûr, en particulier pour les nouveaux programmeurs. Depuis l'arrêt de son support, Python 2 s'essouffle rapidement, et de plus en plus d'entreprises migrent leur code vers Python 3. Compte tenu de sa demande croissante dans de nombreux domaines logiciels, de son utilisation répandue et de l'énorme collection de bibliothèques soutenues par la communauté, il est logique d'apprendre Python 3.

Cependant, il est important de noter que dans certaines circonstances, vous devrez toujours utiliser Python 2. Tout d'abord, de nombreuses entreprises ont encore des bases de code héritées écrites en Python 2 qui sont difficiles à porter vers Python 3. Si c'est le cas pour l'entreprise ou le projet sur lequel vous travaillez, vous devrez apprendre Python 2. Deuxièmement, il existe certains domaines logiciels, tels que DevOps, pour lesquels Python 2 est encore nécessaire. 

Dans tous les cas, si vous envisagez de commencer une nouvelle carrière dans la science des données, Python 3 est un choix judicieux. Avec DataCamp, tout est prêt pour vous. Consultez nos cours et nos cursus Python, et commencez votre voyage de données dès aujourd'hui !

FAQ sur les meilleures pratiques de Python

Quelle version de Python est la plus populaire ?

Python 3 est le vainqueur incontestable, avec une adoption massive par rapport à Python 2.

Python est-il un langage adapté à la science des données ?

Les langages de programmation les plus populaires pour la science des données sont Python et R. DataCamp dispose d'un large catalogue de... cours Python qui vous aideront à démarrer

Quelle version offre de meilleurs temps d'exécution ?

Oui ! dans presque tous les tests. Python 3 est généralement plus rapide que Python 2.

Quelle est la dernière version de Python 2 ?

Python 2.7. En 2020, le support et la maintenance de cette version ont été arrêtés.

Pourquoi passer à Python 3 ?

Python 3 est un meilleur langage et est livré avec un meilleur ensemble de bibliothèques standard que Python 2. De plus, depuis 2020, le langage et les bibliothèques standard ne s'améliorent qu'en Python 3.

Puis-je porter Python 2 vers Python 3 ?

Il existe quelques ressources que vous pouvez utiliser pour mettre à jour votre code vers Python 3, comme 2to3, Python-Future, et Six.

Puis-je installer à la fois Python 2 et 3 ?

Oui. Vous pouvez le faire en maintenant des environnements virtuels distincts pour Python 2 et 3.

Sujets

Cours pour Python

Certification disponible

cours

Python intermédiaire

4 hr
1.1M
Mettez à niveau vos compétences en science des données en créant des visualisations à l'aide de Matplotlib et en manipulant des DataFrame avec pandas.
Afficher les détailsRight Arrow
Commencer Le Cours
Voir plusRight Arrow