Maison  >  Article  >  développement back-end  >  Quelle version de Python est la meilleure pour les débutants ?

Quelle version de Python est la meilleure pour les débutants ?

青灯夜游
青灯夜游original
2019-05-20 19:32:484631parcourir

Les personnes qui souhaitent apprendre Python auront une confusion, c'est-à-dire que Python a actuellement deux versions, Python2 et Python3. Quelle est la différence entre Python2 et Python3 ?

Quelle version de Python est la meilleure pour les débutants ?

python3 et python2 sont incompatibles et les différences sont relativement importantes. python3 n'est pas rétrocompatible, mais la plupart des composants et extensions sont basés sur python2. À l'heure actuelle, la plupart des applications pratiques ne prennent pas en compte Python 3 pour le moment et font parfois attention à l'écriture de code compatible avec 2/3. Lorsque vous écrivez du nouveau code principalement en utilisant Python2, vous devriez envisager la possibilité de migrer vers Python3 à l'avenir. Selon les statistiques, 10 % utilisent actuellement Python 3 ; 20 % utilisent à la fois Python 2 et Python 3, et 70 % utilisent Python 2 ;

En fait, python est l'un des logiciels les plus couramment utilisés sous Linux, mais la plupart des versions actuelles de Linux utilisent toujours python2. De plus, il existe davantage de programmes qui s'appuient sur python2 sous Linux, donc Python3 devrait le remplacer. python2 et devenir le courant dominant Cela prendra encore quelques années. Si vous apprenez encore Python 2 pour trouver un emploi, il n'est pas difficile de passer de Python 2 à python3 après avoir appris Python 2.

Après avoir longuement parlé, quelle est la différence entre Python2 et Python3 ?

1. Performances

Py3.0 exécute le benchmark pystone 30 % plus lentement que Py2.5. Guido estime que Py3.0 offre une grande marge d'optimisation et peut obtenir de bons résultats d'optimisation dans les opérations sur les chaînes et les entiers.

Les performances de Py3.1 sont 15 % plus lentes que celles de Py2.5, et il y a encore beaucoup de place à l'amélioration.

2. Encodage

Py3. Utilisez !=

2) Supprimez `` et utilisez repr()

3) Ajoutez au fur et à mesure des mots-clés, ainsi que True, False, None

4) La division entière renvoie un nombre à virgule flottante. Pour obtenir un résultat entier, veuillez utiliser //

5) Ajoutez une instruction non locale. En utilisant noclocal x, vous pouvez directement attribuer des variables périphériques (non globales)

6) Supprimez l'instruction print et ajoutez la fonction print() pour obtenir la même fonction. La même chose est vraie pour l'instruction exec, qui a été remplacée par la fonction exec()

7) Modification du comportement de l'opérateur séquentiel, tel que x

8) La fonction d'entrée a été modifiée, raw_input a été supprimée et remplacée par input :

9) Le déballage des paramètres de tuple a été supprimé. Vous ne pouvez pas définir la fonction comme def(a, (b, c)):pass

10) Nouvelle variable de mot octal, la fonction oct() est modifiée en conséquence.

11) Ajout de littéraux binaires et de la fonction bin()

12) Déballage itérable étendu. Dans Py3.

13) Nouveau super(), vous ne pouvez plus passer de paramètres à super(),

14) Nouvelle syntaxe de métaclasse :

15) Prise en charge du décorateur de classe.

4. Chaînes et chaînes d'octets

1) Il n'existe désormais qu'un seul type de chaîne, str, mais c'est presque la même chose que la version 2.x d'Unicode.

2) Concernant les chaînes d'octets, veuillez vous référer au 2ème élément de "Type de données"

5 Type de données

1) Py3.X a supprimé le type long, maintenant, il n'y a qu'un seul type entier - int, mais il se comporte comme long

dans la version 2. 1) Introduisez les classes de base abstraites (Abstract Base Classes, ABCs).

2) Les classes de conteneurs et les classes d'itérateurs sont des ABC, il y a donc beaucoup plus de types dans le module cellesctions que dans Py2.5.

3) La méthode next() de l'itérateur a été renommée __next__(), et la fonction intégrée next() a été ajoutée pour appeler l'itérateur

4) @abstractmethod et @ étaient l'ajout de abstractproperty a deux décorateurs, ce qui rend plus pratique l'écriture de méthodes abstraites (propriétés).

7. Exceptions

1) Toutes les exceptions sont héritées de BaseException et StardardError

2) Le comportement de séquence et l'attribut .message de la classe d'exception sont supprimés

3) Utilisez raise Exception(args) au lieu de raise Exception, syntaxe args

4) Modifications de la syntaxe pour détecter les exceptions, le mot-clé as est introduit pour identifier les instances d'exception

5) Exception chain , car __context__ n'est pas implémenté dans la version 3.0a1

8. Modifications du module

1) Le module cPickle a été supprimé et le module pickle peut être utilisé à la place. A terme nous aurons un module transparent et efficace.

2) Suppression du module imageop

3) Suppression de audiodev, Bastion, bsddb185, exceptions, linuxaudiodev, md5, imeWriter, mimify, popen2, rexec, sets, sha, stringold, strop, sunaudiodev, modules timing et xmllib

4) Suppression du module bsddb (publié séparément, disponible à partir des "bindings" Python pour Oracle Berkeley DB)


5) Suppression du nouveau module

6) Le Les fonctions os.tmpnam() et os.tmpfile() ont été déplacées vers le module tmpfile

7) Le module tokenize fonctionne désormais avec les octets. Le point d'entrée principal n'est plus generate_tokens, mais tokenize.tokenize()

9. Autres

1) xrange() est renommé range() si vous souhaitez utiliser range() pour obtenir un. list, vous devez appeler explicitement

2) Les objets Bytes ne peuvent pas hacher, et ils ne prennent pas non plus en charge les méthodes b.lower(), b.strip() et b.split()

3) zip (), map() et filter() renvoient tous deux des itérateurs.

4) string.letters et les .lowercase et .uppercase associés sont supprimés, veuillez utiliser string.ascii_letters à la place, etc.

5) Si x < >

6) Les membres de la série __getslice__ sont abandonnés.

7) La classe file est abandonnée

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