Programmer avecpython2006

download Programmer avecpython2006

of 370

  • date post

    28-Nov-2014
  • Category

    Internet

  • view

    181
  • download

    3

Embed Size (px)

description

la programmation deviend tres indispensable pour le developpement de no projet . cet fichier vous exposera les preliminaire de la programmation avec python

Transcript of Programmer avecpython2006

  • 1. Grace Hopper, inventeur du compilateur : Pour moi, la programmation est plus qu'un art appliqu important. C'est aussi une ambitieuse qute mene dans les trfonds de la connaissance. Maximilien, lise, Lucille, Augustin et Alexane. Colophon Choisie dlibrment hors propos, l'illustration de couverture est un dessin ralis par l'auteur la mine de graphite sur papier Canson en 1987, d'aprs une photographie ancienne. Il reprsente le yacht de course de 106 tonnes Valdora participant une rgate dans la rade de Cowes en 1923. Construit vingt ans plus tt, et d'abord gr en yawl, Valdora remporta plusieurs trophes avant d'tre regr en ketch en 1912 avec la voilure de 516 m que l'on voit sur le dessin. Ce superbe voilier, trs estim par ses quipages pour son bon comportement la mer, a navigu pendant prs d'un demi-sicle. 2. Grard Swinnen : Apprendre programmer avec Python
  • 2. Apprendre programmer avec Python par Grard Swinnen professeur et conseiller pdagogique Institut St Jean Berchmans - Ste Marie 59, rue des Wallons - B4000 Lige Ces notes peuvent tre tlcharges librement partir du site : http://www.ulg.ac.be/cifen/inforef/swi Une part de ce texte est inspire de : How to think like a computer scientist de Allen B. Downey, Jeffrey Elkner & Chris Meyers disponible sur : http://rocky.wellesley.edu/downrey/ost ou : http://www.ibiblio.org/obp Copyright (C) 2000-2005 Grard Swinnen Les notes qui suivent sont distribues suivant les termes de la Licence de Documentation Libre GNU (GNU Free Documentation License, version 1.1) de la Free Software Foundation. Cela signifie que vous pouvez copier, modifier et redistribuer ces notes tout fait librement, pour autant que vous respectiez un certain nombre de rgles qui sont prcises dans cette licence, dont le texte complet peut tre consult dans l'annexe intitule GNU Free Documentation licence , page 361. Pour l'essentiel, sachez que vous ne pouvez pas vous approprier ce texte pour le redistribuer ensuite (modifi ou non) en dfinissant vous-mme d'autres droits de copie. Le document que vous redistribuez, modifi ou non, doit obligatoirement inclure intgralement le texte de la licence cite ci-dessus, le prsent avis, l'introduction qui suit, ainsi que la section Preface du texte original amricain (voir annexes). L'accs ces notes doit rester libre pour tout le monde. Vous tes autoris demander une contribution financire ceux qui vous redistribuez ces notes, mais la somme demande ne peut concerner que les frais de reproduction. Vous ne pouvez pas redistribuer ces notes en exigeant pour vous-mme des droits d'auteur, ni limiter les droits de reproduction des copies que vous distribuez. La diffusion commerciale de ce texte en librairie, sous la forme classique d'un manuel imprim, est rserve exclusivement la maison d'dition O'Reilly (Paris). Ces notes sont publies dans l'espoir qu'elles seront utiles, mais sans aucune garantie. Grard Swinnen : Apprendre programmer avec Python 3.
  • 3. Introduction A l'origine, les prsentes notes ont t rdiges l'intention des lves qui suivent le cours Programmation et langages de l'option Sciences & informatique au 3e degr de transition de l'enseignement secondaire belge. Il s'agit d'un texte exprimental qui s'inspire largement de plusieurs autres documents publis sous licence libre sur l'internet. Nous proposons dans ces notes une dmarche d'apprentissage non linaire qui est trs certainement critiquable. Nous sommes conscients qu'elle apparatra un peu chaotique aux yeux de certains puristes, mais nous l'avons voulue ainsi parce que nous sommes convaincus qu'il existe de nombreuses manires d'apprendre (pas seulement la programmation, d'ailleurs), et qu'il faut accepter d'emble ce fait tabli que des individus diffrents n'assimilent pas les mmes concepts dans le mme ordre. Nous avons donc cherch avant tout susciter l'intrt et ouvrir un maximum de portes, en nous efforant tout de mme de respecter les principes directeurs suivants : L'apprentissage que nous visons doit tre adapt au niveau de comprhension et aux connaissances gnrales d'un lve moyen. Nous nous refusons d'laborer un cours qui soit rserv une lite de petits gnies. Dans la mme optique, notre ambition reste gnraliste : nous voulons mettre en vidence les invariants de la programmation et de l'informatique, sans poursuivre une spcialisation quelconque. Les outils utiliss au cours de l'apprentissage doivent tre modernes et performants, mais il faut aussi que l'lve puisse se les procurer en toute lgalit pour son usage personnel. Toute notre dmarche d'apprentissage repose en effet sur l'ide que l'lve devra trs tt mettre en chantier des ralisations personnelles qu'il pourra dvelopper et exploiter sa guise. L'lve qui apprend doit pouvoir rapidement raliser de petites applications graphiques. Les tudiants auxquels nous nous adressons sont en effet fort jeunes (en thorie, ils sont peine arrivs l'ge ou l'on commence pouvoir faire des abstractions). Dans ce cours, nous avons pris le parti d'aborder trs tt la programmation d'une interface graphique, avant mme d'avoir prsent l'ensemble des structures de donnes disponibles, parce que nous observons que les jeunes qui arrivent aujourd'hui dans nos classes baignent dj dans une culture informatique base de fentres et autres objets graphiques interactifs. S'ils choisissent d'apprendre la programmation, ils sont forcment impatients de crer par eux-mmes des applications (peut-tre trs simples) o l'aspect graphique est dj bien prsent. Nous avons donc choisi cette approche un peu inhabituelle afin de permettre nos lves de se lancer trs tt dans de petits projets personnels attrayants, par lesquels ils puissent se sentir valoriss. Nous leur imposerons cependant de raliser leurs projets sans faire appel l'un ou l'autre de ces environnements de programmation sophistiqus qui crivent automatiquement de nombreuses lignes de code, parce que nous ne voulons pas non plus masquer la complexit sous-jacente. Certains nous reprocheront que notre dmarche n'est pas suffisamment centre sur l'algorithmique pure et dure. Nous pensons qu'une telle approche n'est gure adapte aux jeunes, pour les raisons dj voques ci-dessus. Nous pensons galement qu'elle est moins primordiale que par le pass. Il semble en effet que l'apprentissage de la programmation moderne par objets ncessite plutt une mise en contact aussi prcoce que possible de l'tudiant avec des objets et des bibliothques de classes prexistants. Ainsi il apprend trs tt raisonner en termes d'interactions entre objets, plutt qu'en termes de procdures, et cela l'autorise assez vite tirer profit de concepts avancs, tels que l'hritage et le polymorphisme. Nous avons par ailleurs accord une place assez importante la manipulation de diffrents types de structures de donnes, car nous estimons que c'est la rflexion sur les donnes qui doit rester la colonne vertbrale de tout dveloppement logiciel. 4. Grard Swinnen : Apprendre programmer avec Python
  • 4. Choix d'un premier langage de programmation Il existe un trs grand nombre de langages de programmation, chacun avec ses avantages et ses inconvnients. L'idal serait certainement d'en utiliser plusieurs, et nous ne pouvons qu'encourager les professeurs prsenter de temps autre quelques exemples tirs de langages diffrents. Il faut cependant bien admettre que nous devons avant tout viser l'acquisition de bases solides, et que le temps dont nous disposons est limit. Dans cette optique, il nous semble raisonnable de n'utiliser d'abord qu'un seul langage, au moins pendant la premire anne d'tudes. Mais quel langage allons-nous choisir pour commencer ? Lorsque nous avons commenc rflchir cette question, durant notre prparation d'un curriculum pour la nouvelle option Sciences & Informatique, nous avions personnellement accumul une assez longue exprience de la programmation sous Visual Basic (Micro$oft) et sous Clarion (Top$peed). Nous avions galement expriment quelque peu sous Delphi (Borl@nd). Il tait donc naturel que nous pensions d'abord exploiter l'un ou l'autre de ces langages (avec une nette prfrence pour Clarion, qui reste malheureusement peu connu). Si nous souhaitons les utiliser comme outils de base pour un apprentissage gnral de la programmation, ces langages prsentent toutefois deux gros inconvnients : Ils sont lis des environnements de programmation (c'est--dire des logiciels) propritaires. Cela signifie donc, non seulement que l'institution scolaire dsireuse de les utiliser devrait acheter une licence de ces logiciels pour chaque poste de travail (ce qui risque de se rvler assez coteux), mais surtout que les lves souhaitant utiliser leurs comptences de programmation ailleurs qu' l'cole seraient implicitement forcs d'en acqurir eux aussi des licences, ce que nous ne pouvons pas accepter. Ce sont des langages spcifiquement lis au seul systme d'exploitation Windows. Ils ne sont pas portables sur d'autres systmes (Unix, MacOS, etc.). Cela ne cadre pas avec notre projet pdagogique qui ambitionne d'inculquer une formation gnrale (et donc diversifie) dans laquelle les invariants de l'informatique seraient autant que possible mis en vidence. Nous avons alors dcid d'examiner l'offre alternative, c'est--dire celle qui est propose gratuitement dans la mouvance de l'informatique libre1 . Ce que nous avons trouv nous a enthousiasms : non seulement il existe dans le monde de l'Open Source des interprteurs et des compilateurs gratuits pour toute une srie de langages, mais le vritable