Programming python
<span class="mw-headline" id="Programming_python« >Programming python
Python est un langage de programmation multi-paradigme. Il favorise la programmation structurée impératif, orienté-objet. Il a un typage fort dynamique, la gestion automatique de la mémoire grâce à la collecte des ordures et le système de gestion des exceptions et est donc similaire à Perl, Ruby, Scheme, Smalltalk et Tcl.
Le langage Python est sous une licence libre similaire à la licence BSD et fonctionne sur la plupart des plateformes informatiques, des supercalculateurs aux ordinateurs centraux, de Windows à Unix via Linux et Mac OS, ou Java .. NET Il est conçu pour maximiser la productivité des programmeurs en offrant des outils de haut niveau et une syntaxe simple à utiliser. Il est également apprécié par les enseignants qui trouvent un langage où la syntaxe, clairement séparée de mécanismes de bas niveau, permet une introduction plus facile aux concepts de base de la programmation.
Caractéristiques
Syntaxe
Python a été conçu pour être un language.It lisible vise à être visuellement propres et des mots fréquemment utilisés en anglais, où d’autres langues de signes de ponctuation, et a également moins de constructions que de nombreux langages structurés tels que C, Perl, ou Pascal. Les commentaires sont indiqués par le accolade.
Les blocs sont identifiés par indentation des accolades comme en C ou C, ou commencer …Fin comme en Pascal. Une augmentation de l’indentation marque le début d’un bloc, et une réduction de l’empreinte marque la fin du bloc courant. Les parenthèses sont facultatives dans les structures de contrôle:
types de base
Il est possible de déduire les types de base de classes pour créer vos propres types. Nous pouvons également produire ses propres types d’objets sans hériter itérable base itérable en mettant en œuvre le protocole d’itération de la langue.
Programmation fonctionnelle
Python vous permet de programmer dans un style fonctionnel. La compréhension de listes sont par exemple available.For, pour construire la liste des carrés des nombres naturels inférieurs à 10, vous pouvez utiliser l’expression:
lambdas Python admettre que les expressions et peut être utilisé en tant que fonctions généralisées anonyme, mais en Python, toutes les fonctions sont des objets, ils peuvent être passés comme arguments à d’autres fonctions, et a appelé en cas de besoin. En effet, les fonctions définies avec def sont équivalentes à celles définies avec lambda, il est également possible de définir une fonction dans une autre fonction et d’obtenir ainsi une définition de fonction dans une variable locale, par exemple:
POO
programmation objet est très bien supportée par Python:tous les types de base, des fonctions, des instances de classe (les objets ‘classiques’ C et Java) et les classes elles-mêmes (qui sont des instances de métaclasses) sont des objets.
Une classe est définie avec le mot classe. classes Python charge l’héritage multiple; Il n’ya pas de charge statique comme en C, mais le mécanisme d’arguments optionnels et mot-clé est plus général et flexible. En Python, l’attribut d’un objet de référence peut une variable d’instance ou de classe (le plus souvent une méthode). Vous pouvez lire ou modifier un attribut dynamiquement avec les fonctions:
Des méthodes spéciales et la surcharge des opérateurs
Ces méthodes, en commençant et se terminant par deux caractères de soulignement sont appelées lorsque vous utilisez un opérateur sur l’objet: (méthode __add__) = (__iadd__ méthode), [] (__getitem__ méthode) () (méthode __call__), … Des méthodes telles que __str__ et __repr__, définit la représentation d’un objet dans l’interpréteur interactif et rendu avec le mot-clé print.
Générateurs
Le rendement mot-clé utilisé dans une fonction pour faire de cette fonction un générateur. L’appel à cette fonction retourne un objet de type générateur, qui peut être utilisé dans une boucle for, par exemple.
Dans chaque appel, le générateur effectue son traitement afin de répondre aux mot-clé yield, renvoie la valeur du rendement d’expression, et le prochain appel, a repris son cours peu de temps après le rendement. Par exemple, pour calculer la suite de Fibonacci, vous pouvez faire:
Un générateur peut sembler identique à une fonction qui retourne une liste, mais contrairement à une liste qui contient tous les éléments d’un générateur calcule ses éléments un par un.
Réflexivité
Par ses nombreux dictionnaires (conteneur associatif mis en œuvre avec les tables de hachage), Python peut explorer les objets dans les différentes langues (introspection) et, dans certains cas de modifier (intercession).
Typage
Typing n’est pas vérifié au moment de la compilation. En conséquence, les opérations sur un objet peut échouer, ce qui signifie que l’objet en question est le type.Despite mal l’absence de typage statique, Python est fortement typé, interdisant les opérations avec peu de sens (comme, par exemple, l’ajout d’un numéro à une chaîne de caractères) au lieu d’essayer de silence le convertir en une forme qui fait sens. Python fournit des fonctions pour convertir des variables dans un autre type:
Compilation
Il est possible d’effectuer une analyse statique des modules Python avec des outils comme pychecker ou pylint.Sans avoir besoin d’une performance, ces outils localiser des défauts ou des structures découragés. Par exemple, une classe qui hérite d’une classe abstraite et ne remplace pas les méthodes abstraites, ou des variables utilisées avant d’être déclaré, ou les attributs d’une instance déclarée hors de la méthode __init__.
Des outils comme PyInstaller ou d’autres plus spécifiques comme Freeze Unix, OS py2exe py2app X et Windows peuvent ‘compiler’ un programme Python comme un programme exécutable et comportant un programme Python interpreter.The ne pas courir plus vite (il n’est pas compilé en code machine), mais il simplifie grandement la distribution, en particulier sur des machines où l’interpréteur Python n’est pas installé.
Object Model
tout Python est un objet dans le sens où une variable peut contenir une référence à tous les produits traités par la langue: les nombres, les méthodes, modules, etc. Toutefois, avant la version 2.2, les classes et les instances de classe était un type d’objet particulier, ce qui signifiait qu’il était impossible par exemple de tirer ses propres sous-catégorie de la liste d’objets.
Méthodes
Le Python Object Model est basé sur celui de Modula-3.Parmi ces prêts est de l’obligation de déclarer l’instance de l’objet, classiquement appelé self comme premier argument de méthodes, et à chaque fois que veut accéder à une instance donnée de ce dans le corps de cette pratique method.This n’est pas naturel pour les programmeurs par exemple de C ou Java, la profusion de soi est souvent critiqué comme une honte que la lecture du code génétique. Les partisans de l’auto explicite croient plutôt que d’éviter l’utilisation de conventions de nommage pour les membres de données et qui simplifie les tâches telles que l’appel d’une méthode de la superclasse ou la résolution de l’homonymie entre les membres de données. Il permet également des méthodes de traitement et de fonctions orthogonales.
Visibilité
La langue est un support très limité pour l’encapsulation. Il n’est pas, comme en java pour contrôle d’accès par exemple, par mots-clés tels que protégés ou pri
vés.
la philosophie de Python est de différencier conceptuellement l’encapsulation de cacher de l’information. Le masquage d’information est de prévenir l’utilisation frauduleuse, il est un sujet de préoccupation pour la sécurité informatique. Le bastion module de la bibliothèque standard, ce qui n’est plus maintenu dans les dernières versions de la langue, contrôlant ainsi l’accès aux attributs d’un objet dans un environnement d’exécution restreint.
L’encapsulation est un problème de développement de logiciels. Le slogan des développeurs Python, c’est que nous sommes tous ici d’adultes (nous sommes entre adultes consentants). Ils estiment qu’il suffit d’indiquer, par des conventions d’écriture, toutes les interfaces utilisateurs et du public à son objection à se conformer à ces accords ou prendre des responsabilités. Il est de coutume de faire précéder par un underscore les membres privés. Le langage permet aussi d’utiliser un double underscore pour éviter les collisions de noms faisant précéder le nom donné automatiquement dans cette classe où elle est définie.
L’utilisation de la fonction de propriété () pour définir des propriétés qui sont destinés à intercepter, en utilisant des méthodes, l’accès à un membre de données. Il est donc inutile de définir une accesseurs systématique et masquage des données comme il est courant de le faire dans l’exemple C.
Héritage
Python supporte l’héritage multiple. Depuis la version 2.3, il utilise la C3 algorithme, de la langue de Dylan, de résoudre l’ordre de résolution de méthode (MRO). Versions précédentes utilisaient un algorithme de parcours en profondeur d’abord qui a été problématique dans le cas de l’héritage de diamants.
Histoire
CWI
Dans la fin des années 1980, le programmeur Guido van Rossum a participé au développement du langage de programmation ABC Centrum voor Wiskunde en Informatica (CWI) aux Pays-Bas. Il a ensuite travaillé dans les appels de l’équipe système de système d’exploitation Amoeba qui étaient difficiles à interfacer avec le shell Bourne qui a été utilisé comme interface utilisateur. Il a ensuite estimé que le langage de script inspiré par ABC pourrait être intéressant comme une coquille d’Amoeba
En 1989, bénéficiant d’une semaine de vacances pendant les vacances de Noël, il utilise son personnel Mac d’écrire la première version de la langue. Fan de la série télévisée Monty Python, il a décidé de baptiser le projet Python. Il a été principalement inspirée par ABC, par exemple, l’indentation comme syntaxe ou les types de haut niveau mais aussi Modula-3 pour la gestion des exceptions, le langage C et des outils UNIX.
Au cours de l’année suivante la langue commence à être adoptée par l’équipe du projet Amoeba, Guido poursuit son développement principalement dans ses temps libres. En Février 1991, la première version publique, numérotée 0.9.0, est affiché sur le alt.sources Usenet. La dernière version au CWI était Python 1.2.
Le CNRI
En 1995, Van Rossum continua son travail sur Python au CNRI (fr) Reston (fr), États-Unis, où il a sorti plusieurs versions du logiciel.
A partir d’août 1995, l’équipe travaille à CNRI Python Graal sur un navigateur Web en utilisant Tk. Il est équivalent au navigateur Python HotJava, pour exécuter des applets dans un environnement sécurisé. La première version publique, disponible en Novembre, est de 0,2. Il a dirigé l’élaboration de modules pour la librairie standard comme rexec urllib, ou htmllib. La version 0.6 sera la dernière du Graal et il est publié en avril 1999.
En 1999, le projet Computer Programming for Everybody (CP4E) est lancé avec la collaboration entre CNRI et DARPA.It ‘s sur l’utilisation de Python comme langage de programmation d’enseignement. Cette initiative conduira à la création de l’environnement de développement IDLE. Les subventions prévues par la DARPA ne suffit pas à soutenir le projet, Guido doit quitter le CNRI. Python 1.6 a été la dernière version au CNRI.
Au BeOpen
Après la sortie de Python 1.6, et après que Van Rossum gauche CNRI pour travailler avec les développeurs de logiciels commerciaux, le CNRI et la Free Software Fondation a collaboré à modifier la licence de Python pour le rendre compatible avec la GPL. Python 1.6.1 est essentiellement le même que Python 1.6 avec quelques correctifs mineurs et la nouvelle licence compatible avec la GPL.
En 2000, l’équipe de développement propose à Python BeOpen.com pour former l’équipe de PythonLabs BeOpen. Python 2.0 a été la seule version sortie BeOpen.com. Après cette sortie, Guido van Rossum et les autres développeurs rejoint Digital Creations PythonLabs.
Andrew M. Kuchling publié en Décembre 1999, un texte appelé les verrues python qui synthétise les objections les plus fréquemment exprimées à l’encontre du document language.This aura une influence certaine sur le développement futur de la langue.
Python Software Foundation
Python 2.1 est une version dérivée de Python 1.6.1 et Python 2.0. Sa licence a été rebaptisé Python Software Foundation License. Tout le code, la documentation et les spécifications ajouté, depuis la sortie de Python 2.1 alpha, est détenu par la Python Software Foundation (PSF), une association à but non lucratif fondée en 2001, s’inspire de l’Apache Software Foundation.
Pour réparer certains défauts du langage (orientation objet, par exemple avec deux classes différentes), et pour nettoyer des éléments obsolètes et redondants la bibliothèque standard, le Python a choisi de rompre la compatibilité descendante dans la nouvelle version majeure: Python 3.0, sorti en Décembre 2008.Cette version a été rapidement suivie par la version 3.1 qui corrige les erreurs de la version 3.0 directement les jeunes en rendant obsolètes.
Les mises en œuvre
Outre la mise en œuvre de référence, appelé CPython (comme écrit dans C), il existe d’autres systèmes qui mettent en œuvre le langage Python:
Ces implémentations d’autres ne bénéficient pas nécessairement toute la bibliothèque de fonctions écrites en C pour l’implémentation de référence.
Usages
Python est un langage qui peut être utilisé dans de nombreux contextes et s’adapter à tout type d’utilisation par les bibliothèques spécialisées à chaque traitement. Mais il est surtout utilisé comme un langage de script pour automatiser les tâches fastidieuses, mais simple exemple de script qui récupère la météo sur Internet ou s’insérer dans un ordinateur logiciel de conception assistée par d’automatiser certaines séquences répétitives d’actions. Il est aussi utilisé comme une langue pour le développement d’un prototype lorsque vous avez besoin d’une application fonctionnelle avant de l’optimiser une langue de niveau inférieur. Il est particulièrement répandu dans le monde scientifique, et dispose de nombreuses extensions pour les applications numériques.
Développement
Le PEP
‘