Sobes.tech
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 type unicode.
    • Python 3 : Les chaînes par défaut sont Unicode (str). Les chaînes d'octets sont représentées par le type bytes.
  • Opérateur print :

    • Python 2 : print est un opérateur utilisant un mot-clé.
    • Python 3 : print est une fonction.
    # Python 2
    print "Bonjour, le monde !"
    
    # Python 3
    print("Bonjour, le monde !")
    
  • 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
    
  • 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)
    
  • Fonctions range() et xrange() :

    • 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.
  • Changement de noms de certains modules : Par exemple, httplib en http.client, urllib2 en urllib.request et urllib.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 object pour 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).

De nombreux changements dans Python 3 visaient à améliorer la cohérence, la lisibilité et la performance, ainsi qu'une meilleure gestion de Unicode.

Quelles sont les différences entre Python 2 et Python… - sobes.tech