Introduction à Python
Historique du développement
Python 2 ou 3 ?
Le fondateur de python est Guido van Rossum. Pendant la période de Noël 1989, afin de gagner du temps à Amsterdam, Guido van Rossum décide de développer un nouvel interprète de scénario pour succéder au langage ABC.
Dans le dernier classement TIOBE, Python a dépassé PHP pour occuper la cinquième place. Python prône l'élégance, la clarté et la simplicité, et est un langage excellent et largement utilisé.
Python peut être utilisé dans de nombreux domaines, tels que : l'analyse de données, l'intégration de composants, les services réseaux, le traitement d'images, le calcul numérique, le calcul scientifique et bien d'autres domaines. À l'heure actuelle, presque toutes les grandes et moyennes entreprises Internet du secteur utilisent Python, telles que : Youtube, Dropbox, BT, Quora (China Zhihu), Douban, Zhihu, Google, Yahoo!, Facebook, NASA, Baidu, Tencent. , Autohome, Meituan, etc. Les activités pour lesquelles les sociétés Internet utilisent largement Python incluent généralement : l'exploitation et la maintenance automatisées, les tests automatisés, l'analyse du Big Data, les robots d'exploration, le Web, etc.
Actuellement les principaux domaines d'application de Python :
Cloud computing : le langage le plus populaire pour le cloud computing, application typique OpenStack
Développement WEB : De nombreux excellents frameworks WEB, de nombreux grands sites Web sont développés en Python, notamment Youtube, Dropbox et Douban. . . , Les frameworks WEB typiques incluent Django
Opérations scientifiques, intelligence artificielle : bibliothèques typiques NumPy, SciPy, Matplotlib, bibliothèques Enthought, pandas
Fonctionnement du système Wei : Un des langages incontournables pour le personnel d'exploitation et de maintenance
Finance : trading quantitatif, analyse financière Dans le domaine de l'ingénierie financière, Python n'est pas seulement utilisé, mais aussi le. le plus utilisé, et son importance augmente d’année en année. Raison : En tant que langage dynamique, Python a une structure de langage claire et simple, des bibliothèques riches, des calculs scientifiques et statistiques matures et stables, et son efficacité de production est bien supérieure à celle de c, c, java. Il est particulièrement bon en stratégie. backtesting
Interface graphique graphique : PyQT, WxPython, TkInter
Comparaison de Python et d'autres langages courants
C et Python, Java , C#, etc.
Langage C : Le code est compilé pour obtenir du code machine, qui est directement exécuté sur le processeur
. Autres langages : Le code est compilé pour obtenir du bytecode, virtuel La machine exécute le bytecode et le convertit en code machine puis l'exécute sur le processeur
Python et C Python est un langage développé à partir de C
Pour l'utilisation : Python a une bibliothèque de classes complète Et c'est simple à utiliser Si vous souhaitez réaliser la même fonction, Python peut la résoudre avec 10 lignes de code, alors que C peut nécessiter 100 lignes ou plus
Concernant. vitesse : les langages de haut niveau ne peuvent pas se comparer au C en termes de vitesse d'exécution
Python et Java, C#, etc.
Pour utilisation : Python original Linux, les autres langages ne le font pas je l'ai ; les langages ci-dessus ont un support de bibliothèque de classes très riche
Pour la vitesse : Python peut être légèrement inférieur en vitesse
Il n'y a donc pas de différence essentielle entre Python et les autres langages. : être bon dans un certain domaine, avoir de riches talents et être préconçu.
Python est un langage de définition fortement typé et interprété dynamiquement
Avantages :
Positionnement de Python est "élégant", "clair" et "simple", de sorte que les programmes Python semblent toujours simples et faciles à comprendre. Les débutants qui apprennent Python sont non seulement faciles à démarrer, mais peuvent également écrire des programmes très, très complexes s'ils approfondissent. l'avenir.
L'efficacité du développement est très élevée. Python dispose d'une bibliothèque tierce très puissante. Fondamentalement, si vous souhaitez réaliser une fonction via l'ordinateur, la bibliothèque officielle Python dispose des modules correspondants. supportez-le. Téléchargez-le directement. Après l'appel, le développement s'effectue sur la base de la bibliothèque de base, ce qui réduit considérablement le cycle de développement et évite de réinventer la roue.
Langage de haut niveau - Lorsque vous écrivez un programme en Python, vous n'avez pas besoin de penser aux détails de bas niveau tels que la façon de gérer la mémoire utilisée par votre programme
Portabilité - En raison de sa nature open source, Python a été porté sur de nombreuses plateformes (avec des modifications pour lui permettre de fonctionner sur différentes plateformes). Si vous évitez soigneusement d'utiliser des fonctionnalités dépendantes du système, tous vos programmes Python peuvent fonctionner sur presque toutes les plates-formes système du marché sans modification
Évolutivité———— —Si vous avez besoin d'une fonctionnalité critique Pour qu'un morceau de votre code s'exécute plus rapidement ou que vous souhaitiez que certains algorithmes restent privés, vous pouvez écrire des parties de votre programme en C ou C++ et les utiliser dans votre programme Python.
Intégration - Vous pouvez intégrer Python dans votre programme C/C pour fournir des fonctionnalités de script aux utilisateurs de votre programme.
Inconvénients :
Vitesse lente. Python s'exécute beaucoup plus lentement que le langage C et plus lentement que JAVA. Parce que Python est un langage interprété, votre code sera traduit ligne par ligne lors de l'exécution en code machine que le processeur peut comprendre. . Ce processus de traduction prend beaucoup de temps, il est donc très lent. Le programme C est directement compilé en code machine que le CPU peut exécuter avant de s'exécuter, il est donc très rapide. Mais en réalité, la lenteur de fonctionnement évoquée ici ne peut pas être directement perçue par les utilisateurs dans la plupart des cas et doit être reflétée à l'aide d'outils de test.
Le code ne peut pas être chiffré car PYTHON est un langage interprété et son code source est stocké sous forme de texte. Cependant, je ne pense pas que ce soit un inconvénient si votre projet nécessite du code source. code Le code doit être chiffré, vous ne devez donc pas utiliser Python pour l'implémenter en premier lieu.
Les threads ne peuvent pas profiter du problème des processeurs multiples. L'une des lacunes les plus critiquées de Python est le Global Interpreter Lock (Global Interpreter Lock), qui est utilisé par. Interpréteurs de langage de programmation informatique. Un outil permettant de synchroniser les threads afin qu'un seul thread s'exécute à tout moment. Les threads Python sont des threads natifs du système d'exploitation. Il s'agit de pthread sous Linux et Win thread sous Windows. L'exécution du thread est entièrement planifiée par le système d'exploitation. Un processus interpréteur Python possède un thread principal et plusieurs threads d'exécution de programme utilisateur. Même sur les plates-formes CPU multicœurs, l'exécution parallèle de multi-threads est interdite en raison de l'existence de GIL. Concernant la solution de compromis à ce problème, nous en discuterons en détail plus tard dans les chapitres sur le fil de discussion et le processus.
Lorsque nous écrivons du code Python, nous obtenons un code Python contenant un fichier texte avec une extension .py. Pour exécuter le code, vous avez besoin de l'interpréteur Python pour exécuter le fichier .py.
Étant donné que tout le langage Python, de la spécification à l'interpréteur, est open source, en théorie, tant que le niveau est suffisamment élevé, n'importe qui peut écrire un interpréteur Python pour exécuter du code Python (bien sûr, c'est très difficile). En fait, plusieurs interpréteurs Python existent.
Lorsque nous téléchargeons et installons Python 2.7 depuis le site officiel de Python, nous obtenons directement une version officielle de l'interpréteur : CPython. Cet interpréteur est développé en langage C, il s'appelle donc CPython. L'exécution de Python à partir de la ligne de commande démarre l'interpréteur CPython.
CPython est l'interpréteur Python le plus utilisé. Tout le code du didacticiel est également exécuté sous CPython.
IPython est un interpréteur interactif basé sur CPython, c'est-à-dire qu'IPython n'est amélioré qu'en mode interactif, mais la fonction d'exécution du code Python est complètement la même que celle de. CPython. Par exemple, bien que de nombreux navigateurs nationaux aient des apparences différentes, leurs cœurs appellent en réalité IE.
CPython utilise >>> comme invite, tandis qu'IPython utilise In [numéro de série] : comme invite.
PyPy est un autre interpréteur Python qui cible la vitesse d'exécution. PyPy utilise la technologie JIT pour compiler dynamiquement le code Python, ce qui permet d'améliorer considérablement la vitesse d'exécution du code Python.
La plupart des codes Python peuvent être exécutés sous PyPy, mais il existe quelques différences entre PyPy et CPython, ce qui entraîne des résultats différents lorsque le même code Python est exécuté sous les deux interpréteurs. Si votre code doit être exécuté sous PyPy, vous devez comprendre les différences entre PyPy et CPython.
Jython est un interpréteur Python fonctionnant sur la plate-forme Java. Il peut directement compiler du code Python en bytecode Java pour l'exécution.
IronPython est similaire à Jython, sauf qu'IronPython est un interpréteur Python fonctionnant sur la plate-forme Microsoft .Net et peut directement compiler du code Python en bytecode .Net.
Il existe de nombreux interpréteurs pour Python, mais le plus largement utilisé est CPython. Si vous souhaitez interagir avec la plateforme Java ou .Net, le meilleur moyen n'est pas d'utiliser Jython ou IronPython, mais d'interagir via des appels réseau pour garantir l'indépendance entre les programmes.
En 1989, afin de passer les vacances de Noël, Guido a commencé à écrire Compilateur de langage Python. Le nom Python vient de la série télévisée bien-aimée de Guido, Monty Python's Flying Circus. Il espère que ce nouveau langage appelé Python pourra répondre à son idéal : créer un langage entre C et Shell qui soit complet, facile à apprendre, facile à utiliser et évolutif.
En 1991, le premier compilateur Python était né. Il est implémenté en langage C et peut appeler des fichiers de bibliothèque en langage C. Depuis sa naissance, Python a eu : des classes, des fonctions, une gestion des exceptions, des types de données de base comprenant des tables et des dictionnaires, et un système d'expansion basé sur des modules.
Grand-père des frameworks Web Python, Zope 1 est sorti en 1999
Python 1.0 - janvier 1994 a ajouté lambda, mapper, filtrer et réduire .
Python 2.0 - 16 octobre 2000, a ajouté un mécanisme de recyclage de mémoire, formant la base du framework de langage Python actuel
Python 2.4 - 30 novembre 2004, la même année est né le framework WEB le plus populaire Django
Python 2.5 - 19 septembre 2006
Python 2.6 - 1er octobre 2008
Python 2.7 - 3 juillet 2010
En novembre 2014, il a été annoncé que Python 2.7 serait pris en charge jusqu'en 2020 et a réaffirmé qu'il y aurait pas de version 2.8 car les utilisateurs devaient passer à Python 3.4 dès que possible
Python 3.0 - 3 décembre 2008
Python 3.1 - 27 juin 2009
Python 3.2 - 20 février 2011
Python 3.3 - 29 septembre 2012
Python 3.4 - 16 mars 2014
Python 3.5 - 13 septembre 2015
En résumé : Python 2.x est un héritage, Python 3.x est le présent et le futur du langage
Python 3.0 est sorti en 2008. Le 2 final. x version 2.7 est sortie mi-2010, avec une déclaration de
support étendu pour cette version en fin de vie. La branche 2.x ne verra plus aucune nouvelle version majeure par la suite. 3.x est
en cours de développement actif et a déjà connu plus de cinq ans de versions stables, dont la version 3.3 en 2012,
3.4 en 2014 et 3.5 en 2015. Cela signifie que toutes les versions récentes les améliorations de la bibliothèque standard, par exemple, ne sont
disponibles par défaut dans Python 3.x.
Guido van Rossum (le créateur original du langage Python ) a décidé de nettoyer correctement Python 2.x, en se souciant moins de la rétrocompatibilité que ce n'est le cas pour les nouvelles versions de la gamme 2.x. L'amélioration la plus drastique est la meilleure prise en charge d'Unicode (toutes les chaînes de texte étant Unicode par défaut) ainsi qu'une séparation plus saine des octets/Unicode.
En outre, plusieurs aspects du langage de base (tels que print et exec étant des instructions , entiers utilisant le pision au sol) ont été ajustés pour être plus faciles à apprendre pour les nouveaux arrivants et pour être plus cohérents avec le reste du langage, et les anciennes erreurs ont été supprimées (par exemple, toutes les classes sont désormais dans un nouveau style, " range() " renvoie un itérable efficace en mémoire, pas une liste comme dans 2.x).
PRINT IS A FUNCTION
L'instruction a été remplacée par une fonction print(), avec des arguments de mots clés pour remplace la majeure partie de la syntaxe spéciale de l'ancienne instruction (PEP 3105). Exemples :
Old: print "The answer is", 2*2 New: print("The answer is", 2*2) Old: print x, # Trailing comma suppresses newline New: print(x, end=" ") # Appends a space instead of a newline Old: print # Prints a newline New: print() # You must call the function! Old: print >>sys.stderr, "fatal error" New: print("fatal error", file=sys.stderr) Old: print (x, y) # prints repr((x, y)) New: print((x, y)) # Not the same as print(x, y)!
Vous pouvez également personnaliser le séparateur entre les éléments, par exemple :
print("There are <", 2**32, "> possibilities!", sep=""
TOUS EST UNICODE MAINTENANT
从此不再为讨厌的字符编码而烦恼
还可以这样: (A,*REST,B)=RANGE(5)
<strong>>>> a,*rest,b = range(5) >>> a,rest,b (0, [1, 2, 3], 4) </strong>
某些库改名了
Ancien nom |
Nouveau nom |
||||||||||||||||||
_winreg |
winreg |
||||||||||||||||||
|
|
||||||||||||||||||
copy_reg |
copyreg | ||||||||||||||||||
File d'attente | file d'attente | ||||||||||||||||||
SocketServer | serveur de socket | ||||||||||||||||||
markupbase | _markupbase | ||||||||||||||||||
repr | reprlib | ||||||||||||||||||
test.test_support | test.support |