Maison  >  Article  >  développement back-end  >  Comparaison des versions et encodages Python 2 et Python 3

Comparaison des versions et encodages Python 2 et Python 3

高洛峰
高洛峰original
2017-02-17 11:52:571140parcourir

1. Comparaison des versions

La première chose à dire est que les versions Python sont actuellement principalement divisées en deux catégories :

La version Python 2.x s'appelle Python2 : C'est actuellement la les plus utilisés, comme Python 2.7.3.

La version de Python 3.x s'appelle Python3 : c'est la dernière version, comme Python 3.1. À long terme, cela peut être considéré comme une tendance future.

[La différence entre Python2 et Python3]

1. De Python2 à Python3, de nombreuses interfaces de fonctions de base ont changé, et même certaines bibliothèques ou fonctions ont été supprimées et renommées

Python2 et Python3, les interfaces ont changé dans de nombreuses fonctions de base et les plus couramment utilisées. La plus typique est la fonction d'impression la plus couramment utilisée.

2. En termes de prise en charge des bibliothèques tierces, Python2 est actuellement le mieux pris en charge, et Python3 n'est pas suffisamment pris en charge.

L'une des raisons pour lesquelles Python est puissant est qu'il existe. de nombreuses bibliothèques tierces, la fonction est très puissante.

Actuellement, de nombreuses bibliothèques tierces pour Python ne fournissent que Python2.

Ou même si Python3 est fourni, il n'est peut-être pas très mature.

2. Comparaison d'encodage

En Python, que ce soit Python2 ou Python3, de manière générale, il n'y a que deux catégories de caractères :

  1. Universel Caractères Unicode ; caractères

  2. (codés Unicode) d'un certain type de codage, tel que UTF-8, GBK et d'autres types de caractères.


Type de caractères en Python2 :

  • str : séquence d'octets codée

  • unicode : Caractères de texte avant encodage


Type de caractères en Python3 :

  • str : Caractères de texte unicode codés

  • octets : séquence d'octets avant l'encodage


Nous pouvons considérer les chaînes comme ayant deux états, l'état du texte et l'état de l'octet (binaire). Les deux types de caractères dans Python2 et Python3 correspondent respectivement à ces deux états, puis s'encodent et se décodent mutuellement. Le codage consiste à convertir une chaîne en bytecode, ce qui implique la représentation interne de la chaîne ; le décodage consiste à convertir le bytecode en chaîne et à afficher les bits en caractères.

Dans Python2, str et Unicode ont des méthodes d'encodage et de décodage. Cependant, il n'est pas recommandé d'utiliser encode pour str et decode pour unicode. Il s'agit d'un défaut dans la conception de Python2. Python3 a été optimisé. str n'a qu'une seule méthode d'encodage pour convertir une chaîne en bytecode, et bytes n'a qu'une seule méthode de décodage pour convertir le bytecode en chaîne de texte.

Str et Unicode de Python2 sont tous deux des sous-classes de basestring, donc les deux peuvent être directement épissés. En Python3, bytes et str sont deux types indépendants et ils ne peuvent pas être épissés.

En Python2, les caractères ordinaires entre guillemets sont str ; le type d'encodage de la chaîne à ce moment correspond à l'encodage dans lequel votre fichier Python lui-même est enregistré. Sur la plate-forme Windows la plus courante, la valeur par défaut est. GBK. En Python3, une chaîne entourée de guillemets simples ou doubles est déjà une chaîne de type Unicode.

Il y a quelques prérequis pour l'encodage de str :

  1. L'encodage correspondant a été déclaré au début du fichier Python

  2. Fichier Python Il est en effet enregistré en utilisant cet encodage

  3. Les types d'encodage des deux doivent être les mêmes (par exemple, les deux sont UTF-8 ou les deux sont GBK, etc. )


De cette façon, l'analyseur Python peut analyser correctement le texte dans la chaîne codée correspondante.

En général, en Python3, le problème d'encodage des caractères a été grandement optimisé, et il n'est plus aussi gênant qu'en Python2. Dans Python3, le texte est toujours Unicode, représenté par le type str, et les données binaires sont représentées par des octets str et les octets ne sont pas secrètement mélangés, ce qui rend la différence entre les deux plus évidente.


Résumé

Ce qui précède est l'intégralité du contenu de cet article. J'espère que le contenu de cet article pourra être utile à tout le monde dans l'apprentissage ou l'utilisation de Python. vous pouvez laisser un message pour communiquer, merci à tous pour votre soutien au site PHP chinois.


Pour plus d'articles sur la comparaison des versions et du codage de Python 2 et Python 3, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn