//img.uscri.be/pth/5c7882eb8d41f972392f9ee3a105f8c67fd668e9
Cet ouvrage fait partie de la bibliothèque YouScribe
Obtenez un accès à la bibliothèque pour le lire en ligne
En savoir plus

Programmation Python

De
594 pages
Choisi par Google comme l'un de ses langages piliers et utilisé dans des projets d'envergure tels que YouTube, Python est omniprésent dans les applications web modernes. Open Source et portable, sa modularité et son orientation objet permettent de créer des applications de toutes tailles, génériques et maintenables.



Python : de la syntaxe à l'optimisation



Python est tout indiqué pour le développement d'applications web : serveurs de contenu, moteurs de recherche, agents intelligents, objets distribués... Il est également performant pour réaliser des scripts d'administration système ou d'analyse de fichiers textuels, pour gérer l'accès à des bases de données, pour servir de langage glu entre plusieurs applications, réaliser des applications graphiques classiques, etc.



Pour autant, le développeur n'exploitera vraiment sa puissance qu'en ayant acquis une certaine culture. C'est ce que ce livre permet d'acquérir par la description de techniques éprouvées dans tous les grands projets de développement en Python. Au-delà de la prise en main (installation des environnements d'exécution et de développement, rappels de syntaxe avec les primitives et la bibliothèque standard), cet ouvrage aborde les bonnes pratiques de développement Python, depuis les conventions de nommage et les design patterns objet les plus courants jusqu'à la programmation dirigée par les tests et l'optimisation de code.



Enrichie en nouveaux cas pratiques et exercices, cette édition mise à jour pour Python 2.6 détaille également le script de migration 2to3 vers Python 3 et présente la bibliothèque ctypes qui permet de manipuler les structures de données en C/C++.



À qui s'adresse cet ouvrage ?




  • Au développeur souhaitant s'initier à un nouveau langage et réaliser des applications web ;


  • Aux développeurs Python souhaitant aller plus loin dans les bonnes pratiques de développement (programmation orientée objet, performances, tests unitaires...).




  • Découverte de Python


    • Introduction


    • Python pour quels usages ?


    • Environnement de développement




  • Eléments du langage


    • Syntaxe du langage


    • Structuration du code


    • Les primitives


    • Conventions de codage




  • La bibliothèque standard


    • Principaux modules


    • Principaux modules, partie 2


    • Principaux modules, partie 3


    • Exercices corrigés




  • Techniques avancées


    • Programmation dirigée par les tests


    • Bonne pratique et optimisation du code


    • Programmation orientée objet




  • Annexe A. L'histoire de Python


  • Annexe B. Bibliothèques tierces


  • Annexe C. Sites, flux RSS, blogs et autres friandises

Voir plus Voir moins
Programmation Python
Conception et optimisation
T a r e k Z i a d é
P r é f a c e d e S t e p h a n R i c h t e r
e 2 édition
Programmation PoryitehnotnateiosntPotmneprnineséadtsnommelecnlupermettobjetyreérsedcedplaasenosacidteppillnassesagegtontidespcaliewb.outrneispmodehopteecruosidrénégesntSeOps,leiltaolbatrenabalaindtumoase,qmteseuenvergureteslqeunetosntériYuouTelbes,. Choisi par Goog liers et utilisé dans des projet
Python : de la syntaxe à loptimisation Python est tout indiqué pour le développement dapplications web : serveurs de contenu, moteurs de recherche, agents intelligents, objets distribués Il est également performant pour réaliser des scripts dadministration système ou danalyse de fichiers textuels, pour gérer laccès à des bases de données, pour servir de langage glu entre plusieurs applications, réaliser des applications graphiques classiques, etc. Pour autant, le développeur nexploitera vraiment sa puissance quen ayant acquis une certaine culture. Cest ce que ce livre permet dacquérir par la description de techniques éprouvées dans tous les grands projets de déve loppement en Python. Audelà de la prise en main (installation des environnements dexécution et de développement, rappels de syntaxe avec les primitives et la bibliothèque standard), cet ouvrage aborde les bonnes pratiques de développement Python, depuis les conventions de nommage et les design patterns objet les plus courants jusquà la programmation dirigée par les tests et loptimisation de code. Enrichie en nouveaux cas pratiques et exercices, cette édition mise à jour pour Python 2.6 détaille également le script de migration 2to3 vers Python 3 et présente la bibliothèque ctypes qui permet de manipuler les structures de données en C/C++.
Au sommaire Pourquoi Python ??Pour quels usages Administration systèmePrototypage dapplication : maquettes din terfaces, de bibliothèquesApplications web et de gestionInstallation des environnements dexécution et de développementInstallation sous Linux, MSWindows et Mac OS XTests et scripts de démarrage. Mode interactifChoisir un éditeurSyntaxeCommentairesModèles de donnéesLittérauxTypes et opéra teursIndentationStructures conditionnelles : if, for..in, whileStructures du langageFonctionsContexte dexécutionDirectives return et globalDocstringsClassesEspaces de nomsHéritageAttributs pri vésMéthodes de comparaisonMethod Resolution OrderConstructeur statiqueSurcharge de typeSlots et decoratorsModulesImportReloadPaquetsExceptionsListesConstructeurs et itérateursPrimitives du langageExceptions : erreurs et avertissementsConventions de codageBlocs et espace mentConventions de nommageStructure dun moduleChoix des noms : longueur, unicité, expressivitéFonctions de la bibliothèque standardInteraction avec linterpréteurAccès au systèmeUtilitaires fichiersOutils de compressionProgrammation réseauPersistanceConversion, transformation de donnéesCalculs numériquesStructures de donnéesLes modules itertools, re, Tkinter et lib2to3Cas pratiquesProgrammation dirigée par les testsTests unitaires et fonctionnelsUnittests, doctests et CoverageIntégration dun projet dans lenvironnementLe futur de PyUnitOptimisation du codeProfilingAmélioration des performancesCode Patterns, multithreadingPool, ctypesTests de performance en continuProgrammation orientée objetTypage, classification et encapsulationHéritage et polymorphismeRelations entre objetsDesign patterns orientés objetSingleton et Borg, Observer, Chain of responsability, ProxyAnnexesHistoire de PythonBibliothèques tiercesSites, flux RSS, blogs
À qui sadresse cet ouvrage ?  Au développeur souhaitant sinitier à un nouveau langage et réaliser des applications web ;  Aux développeurs Python souhaitant aller plus loin dans les bonnes pratiques de développement (programmation orientée objet, performances, tests unitaires).
Tarek Ziadé
Tarek Ziadéest directeur technique dIngeniweb (AlterWay), leader de la gestion de contenu Open Source. Il intervient dans des conférences nationales et internationales et a fondé lassociation afpy.org. Il contribue non seulement au développement de Python mais également à dautres projets communautaires.
Télé@chargez le code source des études de cas sur le site www.editionseyrolles.com
Conception : Nord Compo
Programmation Python
CHEZ LE MÊME ÉDITEUR
R. Goetter.– CSS2.Pratique du design web.e N°12461, 3 édition, 2009, 318 pages.
L.Jayr. –Flex 3 – Cahier du programmeur. N°12409, 2009, 280 pages.
A. Vannieuwenhuyze. –Flex 3.Applications Internet riches avec Flash ActionScript 3, MXML et Flex Builder.N°12387, 2009, 532 pages.
G. Leblanc. –Silverlight 2.N°12375, 2008, 330 pages.
G.PonçonetJ. Pauli. –Zend Framework. N°12392, 2008, 460 pages.
E. DasPetetC.PierredeGeyer. –PHP 5 avancé.e N°12369, 5 édition, 2008, 844 pages.
C.Porteneuve.Bien développer pour le Web 2.0.e N°12391, 2 édition 2008, 600 pages.
a. boucher. –Ergonomie web.Pour des sites web efficaces.e N°12479, 2 édition 2009, 426 pages.
a. boucher. –Mémento Ergonomie web. N°12386, 2008, 14 pages.
e. sloïm. –Sites web.Les bonnes pratiques.N°12456, 2009, 14 pages.
a. tasso. –Apprendre à programmer en ActionScript.N°12199, 2007, 438 pages.
S.bordage, d. thévenon, l. duPaquier, F. brousse. –Conduite de projets Web.e N°12325, 4 édition 2008, 394 pages.
n. chu. –Réussir un projet de site Web. e N°12400, 5 édition ,2008, 246 pages.
o. andrieu. –Réussir son référencement web.N°12264, 2008, 302 pages.
G.Ponçon. –Best practices PHP 5.Les meilleures pratiques de développement en PHP.N°11676, 2005, 480 pages.
D.séguy, P. gamache. –Sécurité PHP 5 et MySQL.N°12114, 2007, 240 pages.
r. rimelé. –Mémento MySQL. N°12012, 2007, 14 pages.
m. nebra.Réussir son site web avec XHTML et CSS. e N°12307, 2 édition, 2008, 316 pages.
J.-m. deFrance. –Premières applications Web 2.0 avec Ajax et PHP. N°12090, 2008, 450 pages (Collection Blanche).
K. dJaaFar.– Développement JEE 5 avec Eclipse Europa.N°12061, 2008, 380 pages.
S.Powers. –Débuter en JavaScript.N°12093, 2007, 386 pages.
T.temPlier, a. gougeon. –JavaScript pour le Web 2.0.N°12009, 2007, 492 pages.
d. thomaset al. –Ruby on Rails.e N°12079, 2 édition 2007, 800 pages.
w. altmannet al.Typo3.N°11781, 2006, 532 pages.
l. bloch, c. wolFhugel. –Sécurité informatique. Principes fondamentaux pour l’administrateur système.N°12021, 2007, 350 pages.
g. gete. –MacOS X Leopard efficace.Déploiement, administration et réparation. N°12263, 2008, 476 pages.
M.mason. –Subversion.Pratique du développement collaboratif avec SVN. N°11919, 2006, 206 pages.
Programmation Python Conception et optimisation
T a r e k Z i a d é
P r é f a c e d e S t e p h a n R i c h t e r
e 2 édition
ÉDITIONS EYROLLES 61, bd Saint-Germain 75240 Paris Cedex 05 www.editions-eyrolles.com
Avec la contribution de Patrick Tonnerre.
er Le code de la propriété intellectuelle du 1 juillet 1992 interdit en effet expressément la photocopie à usage collectif sans autorisation des ayants droit. Or, cette pratique s’est généralisée notamment dans les établissements d’enseignement, provoquant une baisse brutale des achats de livres, au point que la possibilité même pour les auteurs de créer des œuvres nouvelles et de les faire éditer correctement est aujourd’hui menacée. En application de la loi du 11 mars 1957, il est interdit de reproduire intégralement ou partiellement le présent ouvrage, sur quelque support que ce soit, sans autorisation de l’éditeur ou du Centre Français d’Exploitation du Droit de Copie, 20, rue des Grands-Augustins, 75006 Paris. © Groupe Eyrolles, 2006, 2009, ISBN : 978-2-212-12483-5
À Amina et Milo
Choisir Python
Par Stephan Richter
J’ai commencé la programmation avec un Commodore 64 (C64), un petit système basé sur le langage de programmation Basic, qui est à la fois simple et puissant. J’ai eu par la suite un PC doté de Borland Pascal. Le système d’aide en ligne de Pascal est très impressionnant : chaque commande et bibliothèque est parfaitement docu mentée et accompagnée bien souvent d’exemples de code. Ce système permet une maîtrise rapide du langage. De plus, le Pascal permet d’intégrer des séquences d’assembleur, pour programmer par exemple directement la souris et le joystick. Le seul défaut du Pascal est la compilation obligatoire, qui est un peu ennuyeuse pour quelqu’un venant du Basic. Par la suite, Jason Orendorff, pionnier de la communauté Python et lauréat 2001 du Concours international d’obfuscation de code C (IOCCC) est devenu mon mentor et m’a appris toutes les techniques avancées de programmation, comme la programma tion orientée objet par le biais de Java, langage particulièrement ordonné et propre. Mais cette propreté a un prix : l’effort supplémentaire pour écrire un programme Java dans les règles de l’art est trop important. Il faut toujours écrire des classes, et une seule par fichier, puis compiler, etc. Jim Fulton parle de programmation « javiotique » pour décrire ce surcroît d’effort. Jason m’a alors converti à Python. Après une période d’adaptation, on tombe très vite amoureux de ce langage. Aucune compilation n’est nécessaire et Python est utilisable sur tant de platesformes qu’il est plus portable que Java. De plus, Python permet de programmer objet mais ne l’impose pas : il reste possible de faire des petits scripts déstructurés. Youpi ! Enfin, l’indentation obligatoire du code ne pouvait que satis faire mes gênes prussiens. Que peuton espérer de mieux ? Des fonctionnalités ! Pour un développeur issu du monde Pascal, le passage à des langages comme Java ou C++ est frustrant à cause de
VIII
Programmation Python
la pauvreté des bibliothèques standards. La philosophiebatteries includedde Python offre tout ce dont un développeur peut rêver. Un autre avantage de Python est la richesse des bibliothèques tierces. Comme Python est utilisé dans la quasitotalité des domaines et à tous les niveaux applicatifs, il existe des extensions pour toutes les fonctionnalités que l’on peut imaginer. Vous souhaitez faire du calcul scientifique ? Utilisez l’extensionnumeric. Vous avez du code MatLab à intégrer ? Installez l’extensionmatlabpour pouvoir piloter ce moteur depuis Python. Le langage est aussi utilisé pour les frameworks web comme Zope et Plone, les moteurs de jeu commePygame, les plugins pour Gimp et toute une myriade d’applicatifs. Cette variété prouve la puissance de Python, qui s’adapte aussi bien aux situations où seul un langage de script est nécessaire, que pour des besoins plus complets, faisant appel à la programmation orientée objet. J’ai découvert par la suite la communauté Python et plus généralement la mouvance open source. Ma première contribution était un correctif dans un exemple pour une bibliothèque d’envois d’emails. Guido von Rossum m’a personnellement répondu pour me signaler que mon correctif serait intégré dans la prochainerelease. L’Open Source, quel bonheur ! Une communauté autour d’une technologie fait toute la différence : le niveau d’assis tance est incroyable et les questions obtiennent des réponses en général en quelques heures. Quel logiciel propriétaire offre ce genre de service gratuitement ? Ce système permet d’avancer sans jamais être bloqué, et les développeurs qui acquièrent leur expérience par ce biais renvoient souvent l’ascenseur à la communauté en répondant à leur tour aux questions des autres.
J’ai découvert par la suite Zope, le serveur d’applications écrit en Python. La découverte de Zope provoque le même effet que celle de Python : « wow ! ». Zope offre toutes les fonctionnalités rêvées pour une application web, comme la sécurité et la persistance, ainsi que de nombreuses extensions. Quel plaisir, comparé à des frameworks comme IBM WebSphere et BEA Weblogic.
Durant les quatre dernières années, j’ai fait partie descore developersde Zope 3, qui est une récriture complète de Zope, basée sur l’expérience passée des versions 1 et 2. Ce projet est passé du rang de prototype éducatif à ce qu’il est aujourd’hui : une application utilisée en production par des entreprises pour des projets web critiques. Zope 3 est considéré comme la plus stable et la plus sure des platesformes web open source disponibles à l’heure actuelle, grâce aux milliers de tests unitaires et fonction nels qui ont été codés en parallèle de sa conception. Les performances sont égale ment au rendezvous : Zope 3 peut être configuré pour ne fournir que les services utilisés dans un applicatif donné, et reste très performant comparé aux frameworks capables de fournir la même quantité de fonctionnalités.