Programmation Python - Une brève introduction par Jean-Daniel Bonjour, EPFL-ENA

Programmation Python - Une brève introduction par Jean-Daniel Bonjour, EPFL-ENAC-IT, © Creative Commons BY-SA (version préliminaire du 26.8.2015) 1. Introduction 1.1 Avant-propos 1.2 Historique et caractéristiques du langage Python 1.3 Quelques références 2. Programmation Python 2.1 Généralités 2.1.1 En-têtes d'un script 2.1.2 Instructions sur plusieurs lignes, commentaires 2.1.3 Variables, mots-clés réservés 2.1.4 Typage 2.1.5 Types simples 2.1.6 Assignation simple et multiple 2.1.7 Interaction avec l'utilisateur (écran et clavier) 2.1.8 Opérateurs de base 2.1.9 Opérateurs de comparaison et logiques 2.2 Types containers 2.2.1 Chaînes de caractères 2.2.2 Listes 2.2.3 Tuples 2.2.4 Dictionnaires 2.2.5 Sets 2.2.6 Frozensets 2.2.7 Récapitulation des différents types de base 2.2.8 Le slicing 2.2.9 Les fonctions range et enumerate 2.3 Structures de contrôle 2.3.1 Indentation des blocs de code 2.3.2 Exécution conditionnelle if - elif - else 2.3.3 Boucle for 2.3.4 Boucle while 2.3.5 Instructions continue et break 2.4 Fonctions, modules, packages, scripts 2.4.1 Fonctions 2.4.2 Modules 2.4.3 Packages 2.4.4 Scripts 2.5 Opérations sur les chaînes 2.5.1 Formatage 2.5.2 Fonctions et méthodes de chaînes 2.5.3 Expressions régulières 2.6 Manipulation de fichiers 2.6.1 Ouverture et fermeture 2.6.2 Lecture 2.6.3 Écriture ou ajout 2.6.4 Autres méthodes sur les fichiers 2.6.5 Sérialisation et stockage d'objets avec le module pickle 2.7 Quelques fonctions built-in 2.8 Quelques modules de la librairie standard 2.8.1 os 2.8.2 glob 2.8.3 shutil 2.8.4 filecmp 2.8.5 sys, platform 2.8.6 math, random 2.8.7 time 2.8.8 datetime 2.8.9 calendar 2.8.10 this 2.9 Programmation orientée objet 2.10 Programmation d'interfaces graphiques 3. Scientific Python 4. Outils de développement Python 5. Installation d'un environnement Python v3 complet 1. Introduction Ce support de cours a pour objectif de vous introduire à la programmation Python, en se basant principalement sur des exemples et partant du principe que vous connaissez déjà d'autre(s) langage(s) de programmation. Nous ferons parfois quelques parallèles avec MATLAB et GNU Octave, langages généralement bien connus des ingénieurs. 1.1 Avant-propos Nous avons résolument opté, dans ce support de cours, pour la version 3 de Python. Lorsque des différences importantes apparaissent entre Python v2 et v3, nous les signalons avec ce symbole Avec la version 3 de Python, apparue en 2008, la fondation Python a en effet décidé de gommer certaines imperfections de jeunesse du langage. La compatibilité arrière avec les versions ≤ 2 n'est donc pas garantie, un programme écrit en Python v2 ne tournant généralement pas sans adaptations avec un interpréteur Python v3. Cette version 3 étant cependant disponible depuis suffisamment longtemps, la plupart des modules, packages, frameworks... ont été adaptés, et nous estimons il est temps de passer définitivement à Python v3. Nous ferons usage des conventions de notation suivantes : le code Python est en police de caractère à chasse fixe (en faisant usage de la coloration syntaxique offerte par Pandoc), de même que les touches de clavier ou combinaison de touches (exemple: <ctrl-D> ) l' italique indique que vous devez substituer vous-même l'information désignée et non pas saisir littéralement le texte indiqué (exemple: input(prompt) ) les hyper-liens sont colorés (par exemple la table des matières ci-dessus) la "syntaxe à point" (mots séparés par un point) fait référence au modèle orienté objet de Python ( objet.méthode, module.fonction ...) et implique généralement de charger préalablement un module (exemple: sys.exit() invoque la fonction exit() du module sys , module qu'il faut donc préalablement charger avec import sys ) Ce support de cours, qui est sous licence Creative Commons BY-SA, est accessible en ligne à l'adresse http://enacit1.epfl.ch/introduction-python/. Une version PDF formatée pour une impression A4 est également disponible sous la forme des 2 fichiers téléchargeables suivants : introduction- python.pdf et outils-python.pdf. L'auteur reçoit volontiers toutes vos remarques (corrections, suggestions de compléments...) à l'adresse Jean- Daniel.Bonjour@epfl.ch. Il adresse tous ses remerciements à Samuel B. pour sa relecture et ses conseils avisés. Pour information, ce support de cours a été édité en langage de balisage léger Markdown, puis traduit en HTML avec le convertisseur Pandoc. Si ces techniques vous intéressent, voyez le manuel que nous avons réalisé. 1.2 Historique et caractéristiques du langage Python Quelques dates dans l'histoire de Python (pour davantage de détails, frappez license() ) : 1991 : release la première version publique de Python par Guido van Rossum (aujourd'hui encore leader du projet et désigné "dictateur bienveillant à vie" par la communauté Python) 1996 : sortie de la librairie NumPy 2001 : création de la Python Software Foundation (PSF) qui prend en charge le développement du langage 2008 : sortie de Python 2.6 et 3.0 Principales caractéristiques du langage Python : langage de programmation à usage général de haut niveau : orienté objet, à typage dynamique fort avec types de données évolués, multi- threading, gestion de la mémoire (garbage collector), interfaçable avec d'autres langages riche et polyvalent : librairie standard Python (standard library, i.e. modules intégrés à la distribution de base) couvrant la plupart des domaines ("batteries included"), très nombreux packages et modules d'extension (calcul scientifiques, visualisation, GUI, SGBD, réseau...) ainsi que frameworks (web avec Django, jeux avec PyGame...) interprété, mais néanmoins rapide à l'exécution : utilisable en mode interactif (avec fonctionnalités d'introspection et debugging), permettant non seulement l'élaboration de scripts mais aussi de programmes complexes ouvert et multiplateforme/portable : libre et open source (licence PSF GPL-compatible sans restriction copy-left : voir license() ) donc librement utilisable et distribuable, disponible sur tous les OS (intégré d'office sous certains, comme Linux et MacOSX), applications tournant sur toutes les plateformes (le langage étant interprété) facilité d'apprentissage et de mise en oeuvre : syntaxe simple/légère, consistance, grande lisibilité, flexibilité et efficacité (haute productivité dans tout le cycle de développement: analyse/design, prototypage, codage, test/debugging, déploiement, maintenance) diversité des outils de développement : interpréteurs interactifs avec introspection (IPython...), IDEs (Eclipse, Spyder...) stable/mature, très répandu et évolutif : très vaste communauté de développeurs et utilisateurs, langage utilisé comme moteur de script dans de nombreuses applications métiers (ex: GIMP, Blender, Quantum GIS...). Ces différentes qualités expliquent pourquoi de plus en plus d'écoles et universités optent, depuis quelques années, en faveur de Python comme premier langage dans l'apprentissage de la programmation. En outre, avec les extensions NumPy et SciPy notamment, nombre de chercheurs ont aujourd'hui trouvé en Python une véritable alternative à MATLAB, en particulier dans les domaines du calcul numérique, de l'analyse et de la visualisation de données. 1.3 Quelques références La littérature sur Python est extrêmement abondante. Nous ne retenons ici que quelques références significatives : [P3DOC] : Python v3 Documentation : documentation officielle Python v3 [P3TUT] : The Python Tutorial : tutoriel officiel Python v3 [SWIM] : Apprendre à programmer avec Python 3 : ouvrage de Gérard Swinnen, disponible en ligne et sous forme papier (éditions Eyrolles) La première ligne d'en-tête du script (appelée she-bang en raison des 2 premiers caractères) spécifie l'interpréteur qui doit être utilisé pour l'exécuter. S'agissant de Python, vous verrez parfois : #!/usr/bin/python , mais cette forme est moins portable que : #!/usr/bin/env python (exemple ci-contre) qui fonctionne indépendamment de l'emplacement (path) d'installation de l'interpréteur Python. Sous GNU/Linux Ubuntu, pour explicitement utiliser l'interpréteur Python v3 provenant des dépôts officiels, il faut utiliser le she-bang #!/usr/bin/env python3 . 1 2 3 4 #!/usr/bin/env python # -*- coding: utf​-8 ​-*- print("Hééé, bien le bonjour !") Pour des raisons de lisibilité, une instruction Python ne devrait pas dépasser environ 80 caractères. On peut si nécessaire la répartir sur plusieurs lignes en utilisant, en fin de lignes, le caractère de continuation de ligne \ (back-slash). Cependant les parties de code délimitées par ( ) , [ ] , { } (tuples, listes, dictionnaires...), triple apostrophe ''' ou triple guillemets """ (chaînes multi-lignes) peuvent s'étendre sur plusieurs lignes sans faire usage du caractère \ . 1 2 3 4 5 6 7 8 9 10 print("Affichage d'une longue ligne \ de texte. Blabla blabla blabla \ blabla blabla blabla blabla blabla.") liste = ['un', 'deux', 'trois', 'quatre', 'cinq', 'six'] chaine = """Une chaîne de caractères multi-lignes""" # intégrant le caractère de # retour à la ligne \n [DIVE3] : Dive Into Python 3 : ouvrage de Mark Pilgrim, disponible en ligne et sous forme papier (éditions Apress) (mais qui commence un peu à dater) [PSLN] : Python Scientific Lecture Notes : introduction à l'écosystème Scientific Python [POINT] : Python 3 Cheat Sheet | Python 3.2 Reference Card | Python 2.4 Quick Reference Card : cartes de références Python, par Laurent Pointal [CARP] : Introduction to Python : vidéos d'introduction à Python, par Software-Carpentry.org 2. Programmation Python Pour des conseils concernant l'installation de Python sur votre machine, voyez notre chapitre "Installation d'un environnement Python v3 complet". 2.1 Généralités 2.1.1 En-têtes d'un script Nous verrons plus loin ce qu'est précisément un script Python. Pour simplifier et comprendre les exemples qui suivent, disons à ce stade qu'il s'agit d'un fichier-texte contenant des instructions Python et qu'il peut être utile de faire débuter par 2 lignes d'en-têtes. Interpréteur du script Cette première ligne est nécessaire si l'on veut pouvoir lancer le script depuis un shell en frappant : ./nom_du_script.py . Elle n'est cependant pas nécessaire (mais tout de même recommandée) si on le lance avec python nom_du_script.py ou python3 nom_du_script.py Encodage des uploads/Litterature/ introduction-python.pdf

  • 33
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager