Maison  >  Article  >  développement back-end  >  Quelle est la différence entre Python2 et Python3

Quelle est la différence entre Python2 et Python3

青灯夜游
青灯夜游original
2018-11-16 17:33:4353880parcourir

Les différences entre Python2 et Python3 sont : 1. Différences dans l'impression de sortie ; 2. Différences dans la division entière et les valeurs de retour ; 3. Variables de boucle de compréhension de liste 4. Chaînes Unicode ; ; 6. xrange est différent et ainsi de suite.

Quelle est la différence entre Python2 et Python3

L'environnement d'exploitation de cet article : système Windows 7, ordinateur Dell G3, python version 3.6.4.

Cet article vous présentera les différences entre Python2 et Python3, afin que tout le monde puisse comprendre la version Python. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.

Si nous ne sommes pas familiers avec Python, nous pouvons être déroutés par les différentes versions de Python disponibles. Il n’existe actuellement pas de réponse claire à la question de savoir quelle version de Python vous devez utiliser. La décision dépend de ce que vous souhaitez réaliser.

Bien que Python 3 soit la dernière génération du langage et constitue l'avenir du langage, de nombreux programmeurs utilisent encore Python 2.7, la version finale mise à jour de Python 2 publiée en 2010. En effet, certaines bibliothèques et packages plus anciens ne fonctionnent qu'avec Python 2.

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

Les langages de programmation continuent d'évoluer à mesure que les développeurs élargissent les capacités du langage et suppriment les bizarreries qui causent des problèmes aux développeurs. Python 3 a été introduit en 2008 dans le but de rendre Python plus facile à utiliser et de modifier la façon dont il gère les chaînes pour répondre aux exigences actuelles du langage. Les programmeurs qui débutent dans la programmation avec Python 2 ont parfois du mal à s'adapter aux nouveaux changements, mais les débutants trouvent souvent que les nouvelles versions du langage ont plus de sens.

Python 3.0 est fondamentalement différent des versions précédentes de Python, car c'est la première version de Python à être incompatible avec les anciennes versions. Les programmeurs n'ont généralement pas à se soucier des petites mises à jour (par exemple, de la version 2.6 à la version 2.7) car elles ne modifient généralement que le fonctionnement interne de Python et n'obligent pas les programmeurs à modifier leur syntaxe. Les changements entre Python 2.7 (la version finale de Python 2) et Python 3.0 sont beaucoup plus importants, ce qui fait que le code qui fonctionne dans Python 2.7 devra probablement être écrit différemment pour fonctionner dans Python 3.0.

Quelles sont les principales différences entre Python 2 et Python 3 ?

1. Sortie--print

Dans Python 2, "print" est traité comme une instruction plutôt que comme une fonction. Vous n'avez pas besoin de mettre le texte que vous souhaitez afficher entre parenthèses, même si vous le pouvez. Cela peut prêter à confusion car la plupart des autres opérations en Python utilisent des fonctions qui nécessitent que les arguments soient placés entre parenthèses. Cela peut également entraîner des résultats inattendus si vous placez des parenthèses autour d'une liste d'éléments séparés par des virgules à afficher.

Dans Python 3, "print" est explicitement traité comme une fonction, ce qui signifie que vous devez transmettre les éléments que vous souhaitez afficher à la fonction entre parenthèses de la manière standard, sinon vous obtiendrez une erreur de syntaxe. Certains programmeurs Python 2 trouvent ce changement ennuyeux, mais cela peut aider à éviter des erreurs.

Exemple :

print 'Hello, Geeks'   # Python 3.x 不支持
print('Hope You like these facts')

Sortie :

Sortie pour Python 2.x :

Quelle est la différence entre Python2 et Python3

Python 3. Sortie de x :

Quelle est la différence entre Python2 et Python3

Parce que l'impression « Hello, Geeks » n'est pas prise en charge dans Python 3. 🎜>

2. Division entière :

Quelle est la différence entre Python2 et Python3

Python 2 traite les nombres sans aucun chiffre après la virgule comme des entiers, ce qui peut conduire à des résultats inattendus lors de la division. Par exemple, si vous entrez l'expression : 3/2 dans le code Python 2, elle sera évaluée à 1, et non à 1,5 comme prévu.

En effet, Python 2 supposera que vous souhaitez que le résultat de la division soit un entier, il arrondira donc le calcul à l'entier le plus proche. Pour obtenir le résultat 1.5, vous devez écrire 3.0/2.0 pour indiquer à Python que vous souhaitez qu'il renvoie un nombre à virgule flottante, c'est-à-dire inclure les nombres après la virgule dans le résultat.

Python 3 évaluera 3/2 à 1,5 par défaut, ce qui est plus intuitif pour les nouveaux programmeurs.

3. Variables de boucle de compréhension de liste :

Dans les versions précédentes de Python 2.x, les variables itérées dans la compréhension de liste recevaient le même nom que les variables globales. Peut entraîner une modification de la valeur de la variable globale, ce qui n'est généralement pas ce que vous souhaitez.

Ce bug ennuyeux a été corrigé dans Python 3. Par conséquent, vous pouvez utiliser un nom de variable déjà utilisé pour la variable de contrôle dans la compréhension de la liste sans avoir à vous soucier de sa fuite et de modifier la valeur de la variable dans le reste du code.

4. Chaîne Unicode :

默认情况下,Python 3是将字符串存储为Unicode,而如果Python 2要将字符串存储为Unicode,则要求使用“u”标记字符串。Unicode字符串比ASCII字符串更通用,它们都是Python 2的默认字符串,因为它们可以存储来自外语的字母以及表情符号和标准的罗马字母和数字。如果要确保Python 3代码与Python 2兼容,你仍然可以使用“u”来标记Unicode字符串。

5、错误处理:

Python 2和Python 3两个版本的错误处理有一个小的变化。

在python 3.x中,'as'关键字是必需的。例:

try: 
    trying_to_check_error 
except NameError, err: 
    print err, 'Error Caused'   # 不能在Python 3中工作

运行:

Python 2.x中输出:

Quelle est la différence entre Python2 et Python3

Python 3.x 中运行,报错:

Quelle est la différence entre Python2 et Python3

try: 
     trying_to_check_error 
except NameError as err:    # 'as' 是 Python 3.x 必需的存在的关键字
     print (err, 'Error Caused')

运行:

Python 2.x中输出:

Quelle est la différence entre Python2 et Python3

Python 3中输出:

Quelle est la différence entre Python2 et Python3

6、xrange:

Python 3.x中不存在Python 2.x的xrange()。在Python 2.x中,range返回一个列表,即range(3)返回[0,1,2],而xrange返回一个xrange对象,即xrange(3)返回iterator对象,它与Java迭代器类似,并在需要时生成数字。
如果我们需要多次迭代相同的序列,我们更喜欢range(),因为range提供了一个静态列表。xrange()每次重建序列。xrange()不支持切片和其他列表方法。xrange()的优点是,当任务迭代大范围时,它可以节省内存。

在Python 3.x中,范围函数现在执行xrange在Python 2.x中的功能,因此为了保持代码的可移植性,我们可能希望坚持使用范围。所以Python 3.x的范围函数是来自Python 2.x的xrange。

例:

for x in xrange(1, 5): 
    print(x), 
  
for x in range(1, 5): 
    print(x),

运行:

Python 2.x中输出:

Quelle est la différence entre Python2 et Python3

Python 3中运行,报错:

Quelle est la différence entre Python2 et Python3

选择哪种版本归结为你需要的是什么库

Python 2已经存在更长时间,这可能是一个优势,并不是所有可用于Python 2的库都已移植到Python 3.另一方面,一些开发人员正在为Python 3创建可能与Python 2不兼容的库。对于很多人来说,决定使用Python 2还是Python 3取决于他们想要使用哪些库。当然,如果你正在学习Python来处理现有的Python应用程序,那么学会使用编写软件的Python版本是有意义的。

许多人认为Python 3是Python 2的改进版本,因为一些更新消除了程序员常见的错误(参见上面的打印示例)。如上所述,一些更改使Python 3更易于初学者理解。因此,不需要使用任何特定库的新程序员可能会考虑学习Python 3,因为在未来几年可能会逐渐转向新语言,因为Python 2的更新停止并支持旧版本该语言版本减少。用法统计显示使用Python 3的程序员数量已逐渐增加。

除非有明确的理由选择一个版本的Python而不是另一个版本,例如需要处理用Python 2编写的现有代码,否则不值得担心这个决定。大多数语法在每种语言版本中都是相同的。如果你需要从Python 2切换到Python 3,反之亦然,那么熟悉打印语句/函数的更改以及Python处理整数除法的方式之间的差异不应花费太长时间。

总结:以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en 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