Junior
Quelles sont les différences entre Python 2 et Python 3?
sobes.tech IA
Réponse de l'IA
Les principales différences entre Python 2 et Python 3 :
-
Gestion des chaînes :
- Python 2 : Les chaînes par défaut sont des octets (
str). Unicode est représenté par le typeunicode. - Python 3 : Les chaînes par défaut sont Unicode (
str). Les chaînes d'octets sont représentées par le typebytes.
- Python 2 : Les chaînes par défaut sont des octets (
-
Opérateur
print:- Python 2 :
printest un opérateur utilisant un mot-clé. - Python 3 :
printest une fonction.
# Python 2 print "Bonjour, le monde !" # Python 3 print("Bonjour, le monde !") - Python 2 :
-
Division entière :
- Python 2 : L'opérateur
/effectue une division entière entre deux nombres entiers. - Python 3 : L'opérateur
/effectue une "vraie" division, renvoyant un nombre à virgule flottante. La division entière utilise//.
# Python 2 print 5 / 2 # Renvoie 2 # Python 3 print(5 / 2) # Renvoie 2.5 print(5 // 2) # Renvoie 2 - Python 2 : L'opérateur
-
Exceptions :
- Python 2 : Syntaxe
except exc, var:. - Python 3 : Syntaxe
except exc as var:.
# Python 2 try: # Code pouvant lancer une exception pass except ValueError, e: print e # Python 3 try: # Code pouvant lancer une exception pass except ValueError as e: print(e) - Python 2 : Syntaxe
-
Fonctions
range()etxrange():- Python 2 :
range()retourne une liste,xrange()retourne un générateur (itérateur). - Python 3 :
range()retourne toujours un générateur (itérateur),xrange()n'existe plus.
- Python 2 :
-
Changement de noms de certains modules : Par exemple,
httplibenhttp.client,urllib2enurllib.requesteturllib.error. -
Changements dans le travail avec dict.iterkeys(), dict.items() et dict.values() :
- Python 2 : Ces méthodes retournent des listes.
- Python 3 : Ces méthodes retournent des vues itérables.
-
Classes de style nouveau :
- Python 2 : Il faut hériter explicitement de
objectpour créer des classes de style nouveau. - Python 3 : Toutes les classes sont par défaut des classes de style nouveau (héritent implicitement de
object).
- Python 2 : Il faut hériter explicitement de
De nombreux changements dans Python 3 visaient à améliorer la cohérence, la lisibilité et la performance, ainsi qu'une meilleure gestion de Unicode.