Python 2 vs Python 3 : Découvrez les principales différences

Référencement Naturel

Agence SEO : Consultant spécialisé dans le référencement naturel - Prestation Link building - Nettoyage e-réputation d'entreprise

Articles Similaires

Tout savoir sur les machines pour affranchir

Ce que vous devez retenir pour simplifier l'envoi de...

L’art de rédiger un curriculum vitae : maîtriser la rédaction de son CV

  Votre curriculum vitae est souvent la première impression que...

7 précautions de cybersécurité que chaque startup devrait prendre

La cybersécurité est cruciale pour toute entreprise, mais elle...

Comment choisir une caméra de surveillance pour son domicile ?

En France, un cambriolage a lieu environ toutes les...

Dans le monde de la programmation, Python est l’un des langages les plus populaires et polyvalents. Cependant, il existe deux versions majeures de ce langage : Python 2 et Python 3. Bien que ces deux versions soient très similaires dans leur fonctionnement, elles présentent aussi quelques différences notables qui peuvent entraîner des problèmes lors de l’exécution et la compatibilité du code.

Dans cet article, nous allons explorer les principales différences entre Python 2 et Python 3 et voir comment elles impactent les développeurs.

Les différences syntaxiques entre Python 2 et Python 3

L’une des différences les plus évidentes entre Python 2 et Python 3 concerne la syntaxe du langage. Voici quelques exemples des changements syntaxiques majeurs entre les deux versions :

  • La fonction print : En Python 2, “print” est une instruction qui peut être utilisée sans parenthèses, tandis qu’en Python 3, il s’agit d’une fonction nécessitant l’utilisation de parenthèses. Par exemple :

Python 2 :

print "Bonjour le monde !"

Python 3 :

print("Bonjour le monde !")
  • La division entière : En Python 2, le symbole de division (“/”) réalise une division entière si les deux opérandes sont des entiers. En Python 3, il effectue toujours une division décimale (division “florente”). Pour obtenir une division entière en Python 3, on doit utiliser le double symbole de division (“//”) :

Python 2 :

7 / 3  # Résultat : 2
7 / 3.0  # Résultat : 2.33333333333

Python 3 :

7 / 3  # Résultat : 2.33333333333
7 // 3  # Résultat : 2

Gestion des exceptions

Les exceptions sont un élément essentiel de la gestion d’erreur dans toute application. Dans ce domaine, Python 2 et Python 3 diffèrent également. La principale différence est la syntaxe utilisée pour attraper et gérer les exceptions.

  • Python 2 : Dans cette version, la syntaxe pour attraper les exceptions utilise le mot-clé ” as” :
try :
  # code susceptible de générer une exception
except ExceptionType1, e : 
  # gestion de l'exception ici
except ExceptionType2, e :
  # gestion de l'autre exception ici
  • Python 3 : Ici, le mot-clé ” as” n’est plus utilisé :
try :
  # code susceptible de générer une exception
except ExceptionType1 as e : 
  # gestion de l'exception ici
except ExceptionType2 as e :
  # gestion de l'autre exception ici

Les différences liées à l’utilisation des chaînes de caractères

Les deux versions de Python gèrent également les chaînes de caractères différemment, particulièrement en ce qui concerne leur encodage et la manière dont elles sont représentées.

Regarde cette information :   Divers équipements modernes à avoir absolument 

Autre : Comment Python Révolutionne Excel :

Python 2 : Chaînes ASCII par défaut

Dans cette version, les chaînes de caractères sont des séquences d’octets. Par défaut, elles utilisent l’encodage ASCII, mais peuvent aussi utiliser d’autres encodages lorsqu’on utilise le préfixe “u” devant une chaîne (par exemple u”Bonjour”). Les principales limitations sont que les caractères Unicode ne sont pas supportés directement :

s = "Bonjour le monde !"
type(s)  # Résultat : <type 'str'="">
t = u"こんにちは世界!"
type(t)  # Résultat : <type 'unicode'="">

Python 3 : Chaînes Unicode par défaut

Toutes les chaînes de caractères sont des séquences Unicode dans Python 3. Ainsi, il n’est plus nécessaire d’utiliser le préfixe ” u” pour indiquer qu’une chaîne est en Unicode :

s = "Bonjour le monde !"
type(s)  # Résultat : <class 'str'="">

t = "こんにちは世界!"
type(t)  # Résultat : <class 'str'="">

Cette nouveauté facilite grandement la gestion des caractères internationaux dans les applications développées avec Python 3.

La fonction range()

En Python, la fonction “range()” est couramment utilisée pour générer des séquences d’entiers à parcourir dans une boucle. Cependant, cette fonction présente quelques différences notables entre Python 2 et Python 3.

Python 2 : range() vs xrange()

Dans Python 2, on trouve deux fonctions pour générer des séquences d’entiers :

  • range() : Cette fonction retourne une liste d’entiers. Elle peut générer des séquences importantes en mémoire, surtout sur de grandes listes.
  • xrange() : À l’inverse, cette fonction retourne un objet “xrange” qui génère les nombres à la volée, sans occuper de place en mémoire. Elle est donc préférable lorsque l’on doit travailler avec de grands intervalles.
for i in range(10) :
    print(i)  # Génère une liste de taille 10

for i in xrange(10) :
    print(i)  # Utilise moins de mémoire mais affiche le même résultat

Python 3 : range() remplace xrange()

La fonction xrange() disparaît totalement en Python 3 et ses fonctionnalités sont intégrées directement à la fonction range(). Ainsi, il suffit d’utiliser cette dernière pour obtenir un comportement similaire à celui qu’offrait xrange() en Python 2 :

for i in range(10) :
    print(i)  # Pas besoin d'utiliser xrange(), cette version utilise moins de mémoire par défaut

En résumé

Il existe de nombreuses différences entre Python 2 et Python 3, notamment en ce qui concerne la syntaxe du langage, la gestion des exceptions, l’utilisation des chaînes de caractères et la fonction range(). lire ces différences peut entraîner des problèmes lors de l’exécution et la compatibilité du code d’une version à l’autre. Il est donc essentiel pour les développeurs de bien comprendre ces distinctions afin d’éviter tout problème au sein de leur projet.

Regarde cette information :   Quels sont les protocoles adaptés pour l'usage des fluides chimiques ?

A savoir : Où se former sur Python pour devenir développeur ?

spot_img