SlideShare une entreprise Scribd logo
Avant-propos
                              Sommaire




                     Notes de cours Python
                       2007–2008 - v 1.3

                              Bob Cordeau
                           robert.cordeau@onera.fr

                               Mesures Physiques
                                  IUT d’Orsay
              www.iut-orsay.fr/dptmphy/Pedagogie/Welcome.html


                              12 juillet 2007



Bob Cordeau   robert.cordeau@onera.fr     Notes de cours Python 2007–2008 - v 1.3
Avant-propos
                                   Sommaire




Avant-propos

  Ces notes reposent sur deux partis pris :
      le choix du langage Python ;
      le choix de logiciels libres :
            Python (www.python.org)
            PyScripter (mmm-experts.com/)
            gnuplot (sourceforge.net/projects/gnuplot)
            ...




     Bob Cordeau   robert.cordeau@onera.fr     Notes de cours Python 2007–2008 - v 1.3
Avant-propos
                                   Sommaire




Avant-propos

  Ces notes reposent sur deux partis pris :
      le choix du langage Python ;
      le choix de logiciels libres :
            Python (www.python.org)
            PyScripter (mmm-experts.com/)
            gnuplot (sourceforge.net/projects/gnuplot)
            ...


  Remerciements :
  Cette version a b´n´fici´ des lectures attentives de Laurent
                   e e e
  Pointal (LIMSI) et Georges Vincents (IUT d’Orsay).

     Bob Cordeau   robert.cordeau@onera.fr     Notes de cours Python 2007–2008 - v 1.3
Chapitre   1
                                                Chapitre   2
                                                Chapitre   3
                                 Avant-propos
                                                Chapitre   4
                                    Sommaire
                                                Chapitre   5
                                                Chapitre   6
                                                Chapitre   7


Sommaire du chapitre 1


  1   Introduction ` l’informatique
                   a
         Environnement mat´riel
                             e
         Environnement logiciel
         Langages
         Production des programmes
         M´thodologie
           e
         Algorithme et programme
         Importance des commentaires




      Bob Cordeau   robert.cordeau@onera.fr     Notes de cours Python 2007–2008 - v 1.3
Chapitre   1
                                                Chapitre   2
                                                Chapitre   3
                                 Avant-propos
                                                Chapitre   4
                                    Sommaire
                                                Chapitre   5
                                                Chapitre   6
                                                Chapitre   7


Sommaire du chapitre 2


  2   La « calculatrice » Python
        Les types simples
        Donn´es, variables et affectation
              e
        Les entr´es-sorties
                e
        Les s´quences
             e
        Retour sur les r´f´rences
                         ee
        Les dictionnaires
        Les ensembles




      Bob Cordeau   robert.cordeau@onera.fr     Notes de cours Python 2007–2008 - v 1.3
Chapitre   1
                                                Chapitre   2
                                                Chapitre   3
                                 Avant-propos
                                                Chapitre   4
                                    Sommaire
                                                Chapitre   5
                                                Chapitre   6
                                                Chapitre   7


Sommaire du chapitre 3



  3   Le contrˆle du flux d’instructions
              o
        Les instructions compos´es
                                e
        Choisir
        Boucler
        Parcourir
        Listes en compr´hension
                        e
        Ruptures de s´quences
                      e




      Bob Cordeau   robert.cordeau@onera.fr     Notes de cours Python 2007–2008 - v 1.3
Chapitre   1
                                                Chapitre   2
                                                Chapitre   3
                                 Avant-propos
                                                Chapitre   4
                                    Sommaire
                                                Chapitre   5
                                                Chapitre   6
                                                Chapitre   7


Sommaire du chapitre 4




  4   Fonctions–Espaces de noms–Modules
        D´finition et exemple
         e
        Passage des arguments
        Espaces de noms
        Modules




      Bob Cordeau   robert.cordeau@onera.fr     Notes de cours Python 2007–2008 - v 1.3
Chapitre   1
                                                Chapitre   2
                                                Chapitre   3
                                 Avant-propos
                                                Chapitre   4
                                    Sommaire
                                                Chapitre   5
                                                Chapitre   6
                                                Chapitre   7


Sommaire du chapitre 5



  5   Les fichiers
        Ouverture – Fermeture
        M´thodes d’´criture
          e         e
        M´thodes de lecture
          e
        Le module « pickle »




      Bob Cordeau   robert.cordeau@onera.fr     Notes de cours Python 2007–2008 - v 1.3
Chapitre   1
                                                Chapitre   2
                                                Chapitre   3
                                 Avant-propos
                                                Chapitre   4
                                    Sommaire
                                                Chapitre   5
                                                Chapitre   6
                                                Chapitre   7


Sommaire du chapitre 6



  6   La programmation « OO »
        Classes et instanciation d’objets
        M´thodes
          e
        M´thodes sp´ciales
          e          e
        H´ritage et polymorphisme
          e




      Bob Cordeau   robert.cordeau@onera.fr     Notes de cours Python 2007–2008 - v 1.3
Chapitre   1
                                                Chapitre   2
                                                Chapitre   3
                                 Avant-propos
                                                Chapitre   4
                                    Sommaire
                                                Chapitre   5
                                                Chapitre   6
                                                Chapitre   7


Sommaire du chapitre 7



  7   La programmation « OO » graphique
        Programmes pilot´s par des ´v´nements
                          e         e e
        Les biblioth`ques graphiques
                    e
        Les classes de widgets de Tkinter
        Le positionnement des widgets
        Un exemple




      Bob Cordeau   robert.cordeau@onera.fr     Notes de cours Python 2007–2008 - v 1.3
Environnement mat´riel
                                                                        e
                                                     Environnement logiciel
                                                     Langages
                     Introduction ` l’informatique
                                  a                  Production des programmes
                                                     M´thodologie
                                                       e
                                                     Algorithme et programme
                                                     Importance des commentaires


L’ordinateur
  D´finition
   e
  Automate d´terministe ` composants ´lectroniques.
            e           a            e




     Bob Cordeau   robert.cordeau@onera.fr           Notes de cours Python 2007–2008 - v 1.3
Environnement mat´riel
                                                                        e
                                                     Environnement logiciel
                                                     Langages
                     Introduction ` l’informatique
                                  a                  Production des programmes
                                                     M´thodologie
                                                       e
                                                     Algorithme et programme
                                                     Importance des commentaires


L’ordinateur
  D´finition
   e
  Automate d´terministe ` composants ´lectroniques.
            e           a            e


  L’ordinateur comprend entre autres :
       un microprocesseur avec une UC (Unit´ de Contrˆle), une
                                           e          o
       UAL (Unit´ Arithm´tique et Logique), une horloge, une
                 e       e
       m´moire cache rapide ;
         e




     Bob Cordeau   robert.cordeau@onera.fr           Notes de cours Python 2007–2008 - v 1.3
Environnement mat´riel
                                                                        e
                                                     Environnement logiciel
                                                     Langages
                     Introduction ` l’informatique
                                  a                  Production des programmes
                                                     M´thodologie
                                                       e
                                                     Algorithme et programme
                                                     Importance des commentaires


L’ordinateur
  D´finition
   e
  Automate d´terministe ` composants ´lectroniques.
            e           a            e


  L’ordinateur comprend entre autres :
       un microprocesseur avec une UC (Unit´ de Contrˆle), une
                                               e       o
       UAL (Unit´ Arithm´tique et Logique), une horloge, une
                  e       e
       m´moire cache rapide ;
         e
       de la m´moire vive (RAM), contenant les instructions et les
               e
       donn´es. La RAM est form´e de cellules binaires (bits)
            e                    e
       organis´es en mots de 8 bits (octets) ;
              e



     Bob Cordeau   robert.cordeau@onera.fr           Notes de cours Python 2007–2008 - v 1.3
Environnement mat´riel
                                                                        e
                                                     Environnement logiciel
                                                     Langages
                     Introduction ` l’informatique
                                  a                  Production des programmes
                                                     M´thodologie
                                                       e
                                                     Algorithme et programme
                                                     Importance des commentaires


L’ordinateur
  D´finition
   e
  Automate d´terministe ` composants ´lectroniques.
            e           a            e


  L’ordinateur comprend entre autres :
       un microprocesseur avec une UC (Unit´ de Contrˆle), une
                                               e        o
       UAL (Unit´ Arithm´tique et Logique), une horloge, une
                  e        e
       m´moire cache rapide ;
         e
       de la m´moire vive (RAM), contenant les instructions et les
               e
       donn´es. La RAM est form´e de cellules binaires (bits)
            e                      e
       organis´es en mots de 8 bits (octets) ;
               e
       des p´riph´riques : entr´es/sorties, m´moires mortes (disque
             e   e             e             e
       dur, CD-ROM. . . ), r´seau. . .
                             e
     Bob Cordeau   robert.cordeau@onera.fr           Notes de cours Python 2007–2008 - v 1.3
Environnement mat´riel
                                                                        e
                                                     Environnement logiciel
                                                     Langages
                     Introduction ` l’informatique
                                  a                  Production des programmes
                                                     M´thodologie
                                                       e
                                                     Algorithme et programme
                                                     Importance des commentaires


Deux sortes de programmes


      Le syst`me d’exploitation : ensemble des programmes qui
             e
      g`rent les ressources mat´rielles et logicielles ; il propose une
       e                         e
      aide au dialogue entre l’utilisateur et l’ordinateur : l’interface
      textuelle (interpr`te de commande) ou graphique (gestionnaire
                         e
      de fenˆtres). Il est souvent multitˆche et parfois
            e                            a
      multiutilisateur ;




     Bob Cordeau   robert.cordeau@onera.fr           Notes de cours Python 2007–2008 - v 1.3
Environnement mat´riel
                                                                        e
                                                     Environnement logiciel
                                                     Langages
                     Introduction ` l’informatique
                                  a                  Production des programmes
                                                     M´thodologie
                                                       e
                                                     Algorithme et programme
                                                     Importance des commentaires


Deux sortes de programmes


      Le syst`me d’exploitation : ensemble des programmes qui
             e
      g`rent les ressources mat´rielles et logicielles ; il propose une
       e                         e
      aide au dialogue entre l’utilisateur et l’ordinateur : l’interface
      textuelle (interpr`te de commande) ou graphique (gestionnaire
                         e
      de fenˆtres). Il est souvent multitˆche et parfois
            e                            a
      multiutilisateur ;
      les programmes applicatifs d´di´s ` des tˆches particuli`res. Ils
                                  e e a        a              e
      sont form´s d’une s´rie de commandes contenues dans un
                e        e
      programme source ´crit dans un langage « compris » par
                         e
      l’ordinateur.


     Bob Cordeau   robert.cordeau@onera.fr           Notes de cours Python 2007–2008 - v 1.3
Environnement mat´riel
                                                                        e
                                                     Environnement logiciel
                                                     Langages
                     Introduction ` l’informatique
                                  a                  Production des programmes
                                                     M´thodologie
                                                       e
                                                     Algorithme et programme
                                                     Importance des commentaires


Des langages de diff´rents niveaux
                   e

      Chaque processeur poss`de un langage propre, directement
                              e
      ex´cutable : le langage machine. Il est form´ de 0 et de 1 et
        e                                           e
      n’est pas portable, mais c’est le seul que l’ordinateur
      « comprend » ;




     Bob Cordeau   robert.cordeau@onera.fr           Notes de cours Python 2007–2008 - v 1.3
Environnement mat´riel
                                                                        e
                                                     Environnement logiciel
                                                     Langages
                     Introduction ` l’informatique
                                  a                  Production des programmes
                                                     M´thodologie
                                                       e
                                                     Algorithme et programme
                                                     Importance des commentaires


Des langages de diff´rents niveaux
                   e

      Chaque processeur poss`de un langage propre, directement
                              e
      ex´cutable : le langage machine. Il est form´ de 0 et de 1 et
        e                                           e
      n’est pas portable, mais c’est le seul que l’ordinateur
      « comprend » ;
      le langage d’assemblage est un codage alphanum´rique du
                                                         e
      langage machine. Il est plus lisible que le langage machine,
      mais n’est toujours pas portable. On le traduit en langage
      machine par un assembleur ;




     Bob Cordeau   robert.cordeau@onera.fr           Notes de cours Python 2007–2008 - v 1.3
Environnement mat´riel
                                                                        e
                                                     Environnement logiciel
                                                     Langages
                     Introduction ` l’informatique
                                  a                  Production des programmes
                                                     M´thodologie
                                                       e
                                                     Algorithme et programme
                                                     Importance des commentaires


Des langages de diff´rents niveaux
                   e

      Chaque processeur poss`de un langage propre, directement
                              e
      ex´cutable : le langage machine. Il est form´ de 0 et de 1 et
        e                                           e
      n’est pas portable, mais c’est le seul que l’ordinateur
      « comprend » ;
      le langage d’assemblage est un codage alphanum´rique du
                                                         e
      langage machine. Il est plus lisible que le langage machine,
      mais n’est toujours pas portable. On le traduit en langage
      machine par un assembleur ;
      les langages de haut niveau. Souvent normalis´s, ils
                                                   e
      permettent le portage d’une machine ` l’autre. Ils sont
                                           a
      traduits en langage machine par un compilateur ou un
      interpr´teur.
             e
     Bob Cordeau   robert.cordeau@onera.fr           Notes de cours Python 2007–2008 - v 1.3
Environnement mat´riel
                                                                        e
                                                     Environnement logiciel
                                                     Langages
                     Introduction ` l’informatique
                                  a                  Production des programmes
                                                     M´thodologie
                                                       e
                                                     Algorithme et programme
                                                     Importance des commentaires


Bref historique des langages

      Ann´es 50 (approches exp´rimentales) : FORTRAN, LISP,
         e                    e
      COBOL. . .




  Des centaines de langages ont ´t´ cr´´s, mais l’industrie n’en
                                e e ee
  utilise qu’une minorit´.
                        e

     Bob Cordeau   robert.cordeau@onera.fr           Notes de cours Python 2007–2008 - v 1.3
Environnement mat´riel
                                                                        e
                                                     Environnement logiciel
                                                     Langages
                     Introduction ` l’informatique
                                  a                  Production des programmes
                                                     M´thodologie
                                                       e
                                                     Algorithme et programme
                                                     Importance des commentaires


Bref historique des langages

      Ann´es 50 (approches exp´rimentales) : FORTRAN, LISP,
         e                    e
      COBOL. . .
      Ann´es 60 (langages universels) : ALGOL, PL/1, PASCAL. . .
         e




  Des centaines de langages ont ´t´ cr´´s, mais l’industrie n’en
                                e e ee
  utilise qu’une minorit´.
                        e

     Bob Cordeau   robert.cordeau@onera.fr           Notes de cours Python 2007–2008 - v 1.3
Environnement mat´riel
                                                                        e
                                                     Environnement logiciel
                                                     Langages
                     Introduction ` l’informatique
                                  a                  Production des programmes
                                                     M´thodologie
                                                       e
                                                     Algorithme et programme
                                                     Importance des commentaires


Bref historique des langages

      Ann´es 50 (approches exp´rimentales) : FORTRAN, LISP,
         e                    e
      COBOL. . .
      Ann´es 60 (langages universels) : ALGOL, PL/1, PASCAL. . .
         e
      Ann´es 70 (g´nie logiciel) : C, MODULA-2, ADA. . .
         e        e




  Des centaines de langages ont ´t´ cr´´s, mais l’industrie n’en
                                e e ee
  utilise qu’une minorit´.
                        e

     Bob Cordeau   robert.cordeau@onera.fr           Notes de cours Python 2007–2008 - v 1.3
Environnement mat´riel
                                                                        e
                                                     Environnement logiciel
                                                     Langages
                     Introduction ` l’informatique
                                  a                  Production des programmes
                                                     M´thodologie
                                                       e
                                                     Algorithme et programme
                                                     Importance des commentaires


Bref historique des langages

      Ann´es 50 (approches exp´rimentales) : FORTRAN, LISP,
         e                    e
      COBOL. . .
      Ann´es 60 (langages universels) : ALGOL, PL/1, PASCAL. . .
         e
      Ann´es 70 (g´nie logiciel) : C, MODULA-2, ADA. . .
         e        e
      Ann´es 80–90 (programmation objet) : C++, LabView, Eiffel,
         e
      Matlab. . .




  Des centaines de langages ont ´t´ cr´´s, mais l’industrie n’en
                                e e ee
  utilise qu’une minorit´.
                        e

     Bob Cordeau   robert.cordeau@onera.fr           Notes de cours Python 2007–2008 - v 1.3
Environnement mat´riel
                                                                        e
                                                     Environnement logiciel
                                                     Langages
                     Introduction ` l’informatique
                                  a                  Production des programmes
                                                     M´thodologie
                                                       e
                                                     Algorithme et programme
                                                     Importance des commentaires


Bref historique des langages

      Ann´es 50 (approches exp´rimentales) : FORTRAN, LISP,
         e                    e
      COBOL. . .
      Ann´es 60 (langages universels) : ALGOL, PL/1, PASCAL. . .
         e
      Ann´es 70 (g´nie logiciel) : C, MODULA-2, ADA. . .
         e        e
      Ann´es 80–90 (programmation objet) : C++, LabView, Eiffel,
         e
      Matlab. . .
      Ann´es 90–2000 (langages interpr´t´s objet) : Java, Perl,
          e                           ee
      tcl/Tk, Ruby, Python. . .

  Des centaines de langages ont ´t´ cr´´s, mais l’industrie n’en
                                e e ee
  utilise qu’une minorit´.
                        e

     Bob Cordeau   robert.cordeau@onera.fr           Notes de cours Python 2007–2008 - v 1.3
Environnement mat´riel
                                                                        e
                                                     Environnement logiciel
                                                     Langages
                     Introduction ` l’informatique
                                  a                  Production des programmes
                                                     M´thodologie
                                                       e
                                                     Algorithme et programme
                                                     Importance des commentaires


Deux techniques de production des programmes
      La compilation est la traduction du source en langage objet.
      Elle comprend au moins quatre phases (trois phases d’analyse
      — lexicale, syntaxique et s´mantique — et une phase de
                                 e
      production de code objet). Pour g´n´rer le langage machine il
                                         e e
      faut encore une phase particuli`re : l’´dition de liens. La
                                     e       e
      compilation est contraignante mais offre une grande vitesse
      d’ex´cution ;
           e




     Bob Cordeau   robert.cordeau@onera.fr           Notes de cours Python 2007–2008 - v 1.3
Environnement mat´riel
                                                                        e
                                                     Environnement logiciel
                                                     Langages
                     Introduction ` l’informatique
                                  a                  Production des programmes
                                                     M´thodologie
                                                       e
                                                     Algorithme et programme
                                                     Importance des commentaires


Deux techniques de production des programmes
      La compilation est la traduction du source en langage objet.
      Elle comprend au moins quatre phases (trois phases d’analyse
      — lexicale, syntaxique et s´mantique — et une phase de
                                  e
      production de code objet). Pour g´n´rer le langage machine il
                                         e e
      faut encore une phase particuli`re : l’´dition de liens. La
                                      e      e
      compilation est contraignante mais offre une grande vitesse
      d’ex´cution ;
           e
      dans la technique de l’interpr´tation chaque ligne du source
                                    e
      analys´ est traduite au fur et ` mesure en instructions
             e                       a
      directement ex´cut´es. Aucun programme objet n’est g´n´r´.
                     e e                                        e ee
      Cette technique est tr`s souple mais les codes g´n´r´s sont
                            e                            e ee
      peu performants : l’interpr´teur doit ˆtre utilis´ ` chaque
                                 e           e         ea
      ex´cution. . .
        e
     Bob Cordeau   robert.cordeau@onera.fr           Notes de cours Python 2007–2008 - v 1.3
Environnement mat´riel
                                                                        e
                                                     Environnement logiciel
                                                     Langages
                     Introduction ` l’informatique
                                  a                  Production des programmes
                                                     M´thodologie
                                                       e
                                                     Algorithme et programme
                                                     Importance des commentaires


Techniques de production de Python


      Technique mixte : l’interpr´tation du bytecode compil´. Bon
                                 e                         e
      compromis entre la facilit´ de d´veloppement et la rapidit´
                                e      e                        e
      d’ex´cution ;
          e




     Bob Cordeau   robert.cordeau@onera.fr           Notes de cours Python 2007–2008 - v 1.3
Environnement mat´riel
                                                                        e
                                                     Environnement logiciel
                                                     Langages
                     Introduction ` l’informatique
                                  a                  Production des programmes
                                                     M´thodologie
                                                       e
                                                     Algorithme et programme
                                                     Importance des commentaires


Techniques de production de Python


      Technique mixte : l’interpr´tation du bytecode compil´. Bon
                                 e                         e
      compromis entre la facilit´ de d´veloppement et la rapidit´
                                e      e                        e
      d’ex´cution ;
          e
      le bytecode (forme interm´diaire) est portable sur tout
                               e
      ordinateur muni de la machine virtuelle Python.




     Bob Cordeau   robert.cordeau@onera.fr           Notes de cours Python 2007–2008 - v 1.3
Environnement mat´riel
                                                                        e
                                                     Environnement logiciel
                                                     Langages
                     Introduction ` l’informatique
                                  a                  Production des programmes
                                                     M´thodologie
                                                       e
                                                     Algorithme et programme
                                                     Importance des commentaires


La construction des programmes : le g´nie logiciel
                                     e
  Plusieurs mod`les sont envisageables, par exemple :
               e

      la m´thodologie proc´durale. On emploie l’analyse
          e                 e
      descendante et remontante qui proc`de par raffinements
                                         e
      successifs : on s’efforce de d´composer un probl`me complexe
                                   e                 e
      en sous-programmes plus simples. Ce mod`le structure
                                               e
      d’abord les actions ;




     Bob Cordeau   robert.cordeau@onera.fr           Notes de cours Python 2007–2008 - v 1.3
Environnement mat´riel
                                                                        e
                                                     Environnement logiciel
                                                     Langages
                     Introduction ` l’informatique
                                  a                  Production des programmes
                                                     M´thodologie
                                                       e
                                                     Algorithme et programme
                                                     Importance des commentaires


La construction des programmes : le g´nie logiciel
                                     e
  Plusieurs mod`les sont envisageables, par exemple :
               e

      la m´thodologie proc´durale. On emploie l’analyse
           e                e
      descendante et remontante qui proc`de par raffinements
                                          e
      successifs : on s’efforce de d´composer un probl`me complexe
                                   e                 e
      en sous-programmes plus simples. Ce mod`le structure
                                                e
      d’abord les actions ;
      la m´thodologie objet. On con¸oit des fabriques (classes) qui
           e                         c
      servent ` produire des composants (objets) qui contiennent
              a
      des donn´es (attributs) et des actions (m´thodes). Les classes
               e                               e
      d´rivent (h´ritage et polymorphisme) de classes de base dans
        e         e
      une construction hi´rarchique.
                          e


     Bob Cordeau   robert.cordeau@onera.fr           Notes de cours Python 2007–2008 - v 1.3
Environnement mat´riel
                                                                        e
                                                     Environnement logiciel
                                                     Langages
                     Introduction ` l’informatique
                                  a                  Production des programmes
                                                     M´thodologie
                                                       e
                                                     Algorithme et programme
                                                     Importance des commentaires


La construction des programmes : le g´nie logiciel
                                     e
  Plusieurs mod`les sont envisageables, par exemple :
               e

      la m´thodologie proc´durale. On emploie l’analyse
           e                e
      descendante et remontante qui proc`de par raffinements
                                          e
      successifs : on s’efforce de d´composer un probl`me complexe
                                   e                 e
      en sous-programmes plus simples. Ce mod`le structure
                                                e
      d’abord les actions ;
      la m´thodologie objet. On con¸oit des fabriques (classes) qui
           e                         c
      servent ` produire des composants (objets) qui contiennent
              a
      des donn´es (attributs) et des actions (m´thodes). Les classes
               e                               e
      d´rivent (h´ritage et polymorphisme) de classes de base dans
        e         e
      une construction hi´rarchique.
                          e

  Python offre les deux techniques.
     Bob Cordeau   robert.cordeau@onera.fr           Notes de cours Python 2007–2008 - v 1.3
Environnement mat´riel
                                                                        e
                                                     Environnement logiciel
                                                     Langages
                     Introduction ` l’informatique
                                  a                  Production des programmes
                                                     M´thodologie
                                                       e
                                                     Algorithme et programme
                                                     Importance des commentaires


Programme et algorithme

  Algorithme
  Moyen d’atteindre un but en r´p´tant un nombre fini de fois un
                               e e
  nombre fini d’instructions.




     Bob Cordeau   robert.cordeau@onera.fr           Notes de cours Python 2007–2008 - v 1.3
Environnement mat´riel
                                                                        e
                                                     Environnement logiciel
                                                     Langages
                     Introduction ` l’informatique
                                  a                  Production des programmes
                                                     M´thodologie
                                                       e
                                                     Algorithme et programme
                                                     Importance des commentaires


Programme et algorithme

  Algorithme
  Moyen d’atteindre un but en r´p´tant un nombre fini de fois un
                               e e
  nombre fini d’instructions.
  Donc, un algorithme se termine en un temps fini.




     Bob Cordeau   robert.cordeau@onera.fr           Notes de cours Python 2007–2008 - v 1.3
Environnement mat´riel
                                                                        e
                                                     Environnement logiciel
                                                     Langages
                     Introduction ` l’informatique
                                  a                  Production des programmes
                                                     M´thodologie
                                                       e
                                                     Algorithme et programme
                                                     Importance des commentaires


Programme et algorithme

  Algorithme
  Moyen d’atteindre un but en r´p´tant un nombre fini de fois un
                               e e
  nombre fini d’instructions.
  Donc, un algorithme se termine en un temps fini.


  Programme
  Un programme est la traduction d’un algorithme en un langage
  compilable ou interpr´table par un ordinateur.
                       e




     Bob Cordeau   robert.cordeau@onera.fr           Notes de cours Python 2007–2008 - v 1.3
Environnement mat´riel
                                                                         e
                                                      Environnement logiciel
                                                      Langages
                      Introduction ` l’informatique
                                   a                  Production des programmes
                                                      M´thodologie
                                                        e
                                                      Algorithme et programme
                                                      Importance des commentaires


Programme et algorithme

  Algorithme
  Moyen d’atteindre un but en r´p´tant un nombre fini de fois un
                               e e
  nombre fini d’instructions.
  Donc, un algorithme se termine en un temps fini.


  Programme
  Un programme est la traduction d’un algorithme en un langage
  compilable ou interpr´table par un ordinateur.
                       e
  Il est souvent ´crit en plusieurs parties, dont une qui pilote les
                 e
  autres, le programme principal.

      Bob Cordeau   robert.cordeau@onera.fr           Notes de cours Python 2007–2008 - v 1.3
Environnement mat´riel
                                                                        e
                                                     Environnement logiciel
                                                     Langages
                     Introduction ` l’informatique
                                  a                  Production des programmes
                                                     M´thodologie
                                                       e
                                                     Algorithme et programme
                                                     Importance des commentaires


La pr´sentation des programmes
     e

  Un programme source est destin´ ` l’ˆtre humain. Pour en faciliter
                                     ea e
  la lecture, il doit ˆtre judicieusement comment´.
                      e                          e




     Bob Cordeau   robert.cordeau@onera.fr           Notes de cours Python 2007–2008 - v 1.3
Environnement mat´riel
                                                                        e
                                                     Environnement logiciel
                                                     Langages
                     Introduction ` l’informatique
                                  a                  Production des programmes
                                                     M´thodologie
                                                       e
                                                     Algorithme et programme
                                                     Importance des commentaires


La pr´sentation des programmes
     e

  Un programme source est destin´ ` l’ˆtre humain. Pour en faciliter
                                     ea e
  la lecture, il doit ˆtre judicieusement comment´.
                      e                          e

  La signification de parties non triviales doit ˆtre expliqu´e par un
                                                e           e
  commentaire.
  Un commentaire commence par le caract`re # et s’´tend jusqu’`
                                            e           e           a
  la fin de la ligne :

  #---------------------
  # Voici un commentaire
  #---------------------

  9 + 2   # En voici un autre


     Bob Cordeau   robert.cordeau@onera.fr           Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les expressions bool´ennes
                    e

      Deux valeurs possibles : False, True.




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les expressions bool´ennes
                    e

      Deux valeurs possibles : False, True.
      Op´rateurs de comparaison : ==, !=, >, >=, <, <=
        e
      2 > 8       # False
      2 <= 8 < 15 # True




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les expressions bool´ennes
                    e

      Deux valeurs possibles : False, True.
      Op´rateurs de comparaison : ==, !=, >, >=, <, <=
        e
      2 > 8       # False
      2 <= 8 < 15 # True

      Op´rateurs logiques (concept de shortcut) : not, or, and
        e
      (3 == 3) or (9 > 24)                    # True (d`s le premier membre)
                                                       e
      (9 > 24) and (3 == 3)                   # False (d`s le premier membre)
                                                        e




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les expressions bool´ennes
                    e

      Deux valeurs possibles : False, True.
      Op´rateurs de comparaison : ==, !=, >, >=, <, <=
        e
      2 > 8       # False
      2 <= 8 < 15 # True

      Op´rateurs logiques (concept de shortcut) : not, or, and
        e
      (3 == 3) or (9 > 24)                    # True (d`s le premier membre)
                                                       e
      (9 > 24) and (3 == 3)                   # False (d`s le premier membre)
                                                        e

      Les op´rateurs logiques et de comparaisons sont ` valeurs
            e                                         a
      dans False, True


     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Le type entier (1/2)



      Op´rations arithm´tiques
        e              e
      20   + 3        #   23
      20   - 3        #   17
      20   * 3        #   60
      20   ** 3       #   8000
      20   / 3        #   6 (division enti`re)
                                          e
      20   % 3        #   2 (modulo)




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Le type entier (2/2)


      Les entiers longs (seulement limit´s par la RAM)
                                        e
      2 ** 40         # 1099511627776L
      3 * 72L         # 216L




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Le type entier (2/2)


      Les entiers longs (seulement limit´s par la RAM)
                                        e
      2 ** 40         # 1099511627776L
      3 * 72L         # 216L

      Op´rations sur les bases
        e
      07 + 01                 #   8
      oct(7+1)                #   ’010’ (octal)
      0x9 + 0x2               #   11
      hex(9+2)                #   ’0xb’ (hexad´cimal)
                                              e
      int(’10110’, 2)         #   22




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Le type flottant
      Les flottants sont not´s avec un « point d´cimal » ou en
                            e                  e
      notation exponentielle :
      2.718
      3e8
      6.023e23




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Le type flottant
      Les flottants sont not´s avec un « point d´cimal » ou en
                            e                  e
      notation exponentielle :
      2.718
      3e8
      6.023e23

      Ils supportent les mˆmes op´rations que les entiers, sauf :
                          e      e
      20.0 / 3 # 6.666666666666667
      20.0 // 3 # 6 (division enti`re forc´e)
                                  e       e




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Le type flottant
      Les flottants sont not´s avec un « point d´cimal » ou en
                            e                  e
      notation exponentielle :
      2.718
      3e8
      6.023e23

      Ils supportent les mˆmes op´rations que les entiers, sauf :
                          e      e
      20.0 / 3 # 6.666666666666667
      20.0 // 3 # 6 (division enti`re forc´e)
                                  e       e

      L’import du module « math » autorise toutes les op´rations
                                                        e
      math´matiques usuelles :
           e
      from math import sin, pi
      print sin(pi/4) # 0.70710678118654746

     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Le type complexe


      Les complexes sont ´crits en notation cart´sienne, form´e de
                         e                      e            e
      deux flottants.




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Le type complexe


      Les complexes sont ´crits en notation cart´sienne, form´e de
                         e                      e            e
      deux flottants.
      La partie imaginaire est suffix´e par j :
                                   e
      1j                      #   1j
      (2+3j) + (4-7j)         #   (6-4j)
      (9+5j).real             #   9.0
      (9+5j).imag             #   5.0
      (abs(3+4j)              #   5.0 : module




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les donn´es et les variables
        e


  Variable
  C’est un nom donn´ ` une valeur.
                   ea




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les donn´es et les variables
        e


  Variable
  C’est un nom donn´ ` une valeur.
                    ea
  Informatiquement, c’est une r´f´rence ` une adresse m´moire.
                               ee       a              e




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les donn´es et les variables
        e


  Variable
  C’est un nom donn´ ` une valeur.
                    ea
  Informatiquement, c’est une r´f´rence ` une adresse m´moire.
                               ee       a              e


      Les noms des variables sont conventionnellement ´crits en
                                                          e
      minuscule. Ils commencent par une lettre ou le caract`ree
      soulign´ ( ), puis ´ventuellement, des lettres, des chiffres ou le
             e           e
      caract`re soulign´.
            e           e




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les donn´es et les variables
        e


  Variable
  C’est un nom donn´ ` une valeur.
                    ea
  Informatiquement, c’est une r´f´rence ` une adresse m´moire.
                               ee       a              e


      Les noms des variables sont conventionnellement ´crits en
                                                          e
      minuscule. Ils commencent par une lettre ou le caract`ree
      soulign´ ( ), puis ´ventuellement, des lettres, des chiffres ou le
             e           e
      caract`re soulign´.
            e           e
      Ils doivent ˆtre diff´rents des mots r´serv´s de Python.
                  e       e                e    e


     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les mots r´serv´s de Python 2.5
          e    e


   and             def             finally         in               print             yield
   as              del             for             is               raise
   assert          elif            from            lambda           return
   break           else            global          not              try
   class           except          if              or               while
   continue        exec            import          pass             with




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les mots r´serv´s de Python 2.5
          e    e


   and             def             finally         in               print             yield
   as              del             for             is               raise
   assert          elif            from            lambda           return
   break           else            global          not              try
   class           except          if              or               while
   continue        exec            import          pass             with

  Remarques :
  Ne pas red´finir les constantes None, True et False.
            e



     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


L’affectation

  Affectation
  On affecte une variable par une valeur en utilisant le signe = (qui
  n’a rien ` voir avec l’´galit´ en math !).
           a             e     e




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


L’affectation

  Affectation
  On affecte une variable par une valeur en utilisant le signe = (qui
  n’a rien ` voir avec l’´galit´ en math !).
           a             e     e
  Dans une affectation, le membre de gauche re¸oit le membre de
                                                c
  droite (ce qui n´cessite deux temps d’horloge diff´rents).
                   e                               e

  a = 2               # a "re¸oit" 2
                             c




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


L’affectation

  Affectation
  On affecte une variable par une valeur en utilisant le signe = (qui
  n’a rien ` voir avec l’´galit´ en math !).
           a             e     e
  Dans une affectation, le membre de gauche re¸oit le membre de
                                                c
  droite (ce qui n´cessite deux temps d’horloge diff´rents).
                   e                               e

  a = 2               # a "re¸oit" 2
                             c

  La valeur d’une variable peut ´voluer au cours du temps (la valeur
                                e
  ant´rieure est perdue) :
     e
  a = a + 1 # 3 (incr´mentation)
                     e
  a = a - 1 # 2 (d´cr´mentation)
                  e e

     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Formes des instructions d’affectation


  Outre l’affectation simple, on peut aussi utiliser les formes
  suivantes :

  a = 4   # forme de base
  a += 2 # idem ` : a = a + 2 si a est d´j` r´f´renc´
                  a                      e a e e     e
  c = d = 8 # cibles multiples (affectation de droite ` gauche)
                                                       a
  e, f = 2.7, 5.1   # affectation de tuple (par position)
  e, f = f, e       # ´change les valeurs de e et f
                      e
  g, h = [’G’, ’H’] # affectation de liste (par position)




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les entr´es
        e

      L’instruction input() permet se saisir une entr´e au clavier.
                                                     e
      Elle effectue un typage dynamique. Elle permet ´galement
                                                     e
      d’afficher une invite :
      n = input("Entrez un entier : ")




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les entr´es
        e

      L’instruction input() permet se saisir une entr´e au clavier.
                                                     e
      Elle effectue un typage dynamique. Elle permet ´galement
                                                     e
      d’afficher une invite :
      n = input("Entrez un entier : ")

      L’instruction raw input() force une saisie en mode texte que
      l’on peut ensuite transtyper :
      f1 = raw_input("Entrez un flottant : ")
      f1 = float(f1) # transtypage en flottant

      f2 = float(raw_input("Entrez un autre flottant : "))



     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les sorties


      L’instruction print permet d’afficher des sorties ` l’´cran :
                                                      a e
      a = 2
      b = 5
      print   a       # 2
      print   "Somme :", a + b    # 7
      print   "Diff´rence :", a - b, # -3
                   e
      print   "produit :", a * b # 10




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les sorties


      L’instruction print permet d’afficher des sorties ` l’´cran :
                                                      a e
      a = 2
      b = 5
      print   a       # 2
      print   "Somme :", a + b    # 7
      print   "Diff´rence :", a - b, # -3
                   e
      print   "produit :", a * b # 10

      Le s´parateur virgule (,) permet d’empˆcher le retour ` la
          e                                 e               a
      ligne.



     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Qu’est-ce qu’une s´quence ?
                  e


  D´finition
    e
  Une s´quence est un conteneur ordonn´ d’´l´ments, indic´s par des
        e                             e ee               e
  entiers positifs ou nuls.




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Qu’est-ce qu’une s´quence ?
                  e


  D´finition
    e
  Une s´quence est un conteneur ordonn´ d’´l´ments, indic´s par des
        e                             e ee               e
  entiers positifs ou nuls.

  Python dispose de trois types pr´d´finis de s´quences :
                                  e e         e
      les chaˆ
             ınes (normales, brutes et en Unicode) ;
      les listes ;
      les tuples.



     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les chaˆ
       ınes de caract`res : notations
                     e
  Trois notations disponibles :
      Les guillemets permettent d’inclure des apostrophes :
      c1 = "L’eau vive"




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les chaˆ
       ınes de caract`res : notations
                     e
  Trois notations disponibles :
      Les guillemets permettent d’inclure des apostrophes :
      c1 = "L’eau vive"

      Les apostrophes permettent d’inclure des guillemets :
      c2 = ’ est "froide" !’




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les chaˆ
       ınes de caract`res : notations
                     e
  Trois notations disponibles :
      Les guillemets permettent d’inclure des apostrophes :
      c1 = "L’eau vive"

      Les apostrophes permettent d’inclure des guillemets :
      c2 = ’ est "froide" !’

      Les triples guillemets ou triples apostrophes conservent la
      mise en page (lignes multiples) :
      c3 = """Usage :
          -h : help
          -q : quit"""


     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les chaˆ
       ınes de caract`res : op´rations
                     e        e

      Longueur :
      s = "abcde"
      len(s) # 5




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les chaˆ
       ınes de caract`res : op´rations
                     e        e

      Longueur :
      s = "abcde"
      len(s) # 5

      Concat´nation :
            e
      s1 = "abc"
      s2 = "defg"
      s3 = s1 + s2 # ’abcdefg’




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les chaˆ
       ınes de caract`res : op´rations
                     e        e

      Longueur :
      s = "abcde"
      len(s) # 5

      Concat´nation :
            e
      s1 = "abc"
      s2 = "defg"
      s3 = s1 + s2 # ’abcdefg’

      R´p´tition :
       e e
      s4 = "Fi! "
      s5 = s4 * 3 # ’Fi! Fi! Fi! ’


     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les chaˆ
       ınes de caract`res : m´thodes (1/3)
                     e       e

      split() : scinde une chaˆ en une liste de mots :
                              ıne
      ’ab*cd’.split(’*’) # [’ab’, ’cd’] (on indique le s´parateur)
                                                        e




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les chaˆ
       ınes de caract`res : m´thodes (1/3)
                     e       e

      split() : scinde une chaˆ en une liste de mots :
                              ıne
      ’ab*cd’.split(’*’) # [’ab’, ’cd’] (on indique le s´parateur)
                                                        e

      join() : concat`ne une liste de chaˆ
                     e                   ınes en une chaˆ :
                                                        ıne
      ’-’.join([’ci’, ’joint’]) # ’ci-joint’




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les chaˆ
       ınes de caract`res : m´thodes (1/3)
                     e       e

      split() : scinde une chaˆ en une liste de mots :
                              ıne
      ’ab*cd’.split(’*’) # [’ab’, ’cd’] (on indique le s´parateur)
                                                        e

      join() : concat`ne une liste de chaˆ
                     e                   ınes en une chaˆ :
                                                        ıne
      ’-’.join([’ci’, ’joint’]) # ’ci-joint’

      find() : donne la position d’une sous-chaˆ dans la chaˆ :
                                               ıne          ıne
      ’abracadabra’.find(’bra’) # 1 (le premier indice vaut 0)




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les chaˆ
       ınes de caract`res : m´thodes (1/3)
                     e       e

      split() : scinde une chaˆ en une liste de mots :
                              ıne
      ’ab*cd’.split(’*’) # [’ab’, ’cd’] (on indique le s´parateur)
                                                        e

      join() : concat`ne une liste de chaˆ
                     e                   ınes en une chaˆ :
                                                        ıne
      ’-’.join([’ci’, ’joint’]) # ’ci-joint’

      find() : donne la position d’une sous-chaˆ dans la chaˆ :
                                               ıne          ıne
      ’abracadabra’.find(’bra’) # 1 (le premier indice vaut 0)

      count() : donne le nombre de sous-chaˆ
                                           ınes dans la chaˆ :
                                                           ıne
      ’abracadabra’.count(’bra’) # 2


     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les chaˆ
       ınes de caract`res : m´thodes (2/3)
                     e       e

      lower() : convertit en minuscules :
      ’PETIT’.lower() # ’petit’




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les chaˆ
       ınes de caract`res : m´thodes (2/3)
                     e       e

      lower() : convertit en minuscules :
      ’PETIT’.lower() # ’petit’

      upper() : convertit en majuscules :
      ’grand’.upper() # ’GRAND’




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les chaˆ
       ınes de caract`res : m´thodes (2/3)
                     e       e

      lower() : convertit en minuscules :
      ’PETIT’.lower() # ’petit’

      upper() : convertit en majuscules :
      ’grand’.upper() # ’GRAND’

      capitalize() : convertit la premi`re lettre en majuscule :
                                       e
      ’michelle’.capitalize() # ’Michelle’




     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Les types simples
                                                   Donn´es, variables et affectation
                                                        e
                                                   Les entr´es-sorties
                                                           e
                      La « calculatrice » Python   Les s´quences
                                                        e
                                                   Retour sur les r´f´rences
                                                                   ee
                                                   Les dictionnaires
                                                   Les ensembles


Les chaˆ
       ınes de caract`res : m´thodes (2/3)
                     e       e

      lower() : convertit en minuscules :
      ’PETIT’.lower() # ’petit’

      upper() : convertit en majuscules :
      ’grand’.upper() # ’GRAND’

      capitalize() : convertit la premi`re lettre en majuscule :
                                       e
      ’michelle’.capitalize() # ’Michelle’

      title() : la premi`re lettre de tous les mots en majuscule :
                        e
      ’un beau titre !’.title() # ’Un Beau Titre !’


     Bob Cordeau   robert.cordeau@onera.fr         Notes de cours Python 2007–2008 - v 1.3
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python
Cours python

Contenu connexe

Tendances

Python avancé : Classe et objet
Python avancé : Classe et objetPython avancé : Classe et objet
Python avancé : Classe et objet
ECAM Brussels Engineering School
 
Atelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniAtelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El Hassani
Shellmates
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage Python
Aziz Darouichi
 
Initiation au langage python
Initiation au langage python Initiation au langage python
Initiation au langage python
Sarah
 
Formation python
Formation pythonFormation python
Formation python
j_lipaz
 
FormationPython2019.pptx
FormationPython2019.pptxFormationPython2019.pptx
FormationPython2019.pptx
LamissGhoul1
 
Chap4 Récursivité en python
Chap4 Récursivité en pythonChap4 Récursivité en python
Chap4 Récursivité en python
Mariem ZAOUALI
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
Chahrawoods Dmz
 
Présentation python
Présentation pythonPrésentation python
Présentation python
Sarah
 
TP C++ : Correction
TP C++ : CorrectionTP C++ : Correction
Python avancé : Tuple et objet
Python avancé : Tuple et objetPython avancé : Tuple et objet
Python avancé : Tuple et objet
ECAM Brussels Engineering School
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objets
Aziz Darouichi
 
Cours : les listes chainées Prof. KHALIFA MANSOURI
Cours : les listes chainées  Prof. KHALIFA MANSOURI Cours : les listes chainées  Prof. KHALIFA MANSOURI
Cours : les listes chainées Prof. KHALIFA MANSOURI
Mansouri Khalifa
 
Python.pptx
Python.pptxPython.pptx
Python.pptx
Jaouad Rachek
 
resume algo 2023.pdf
resume algo 2023.pdfresume algo 2023.pdf
resume algo 2023.pdf
salah fenni
 
Chapitre iv algorithmes de tri
Chapitre iv algorithmes de triChapitre iv algorithmes de tri
Chapitre iv algorithmes de tri
Sana Aroussi
 
Cours algorithme: structures répétitives
Cours algorithme: structures répétitivesCours algorithme: structures répétitives
Cours algorithme: structures répétitives
InforMatica34
 
Chap7 simulation numérique
Chap7 simulation numériqueChap7 simulation numérique
Chap7 simulation numérique
Mariem ZAOUALI
 
Chap1: Cours en C++
Chap1: Cours en C++Chap1: Cours en C++
Chap1: Cours en C++
Aziz Darouichi
 

Tendances (20)

Python avancé : Classe et objet
Python avancé : Classe et objetPython avancé : Classe et objet
Python avancé : Classe et objet
 
Atelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniAtelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El Hassani
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage Python
 
Initiation au langage python
Initiation au langage python Initiation au langage python
Initiation au langage python
 
Formation python
Formation pythonFormation python
Formation python
 
FormationPython2019.pptx
FormationPython2019.pptxFormationPython2019.pptx
FormationPython2019.pptx
 
Chap4 Récursivité en python
Chap4 Récursivité en pythonChap4 Récursivité en python
Chap4 Récursivité en python
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
Présentation python
Présentation pythonPrésentation python
Présentation python
 
TP C++ : Correction
TP C++ : CorrectionTP C++ : Correction
TP C++ : Correction
 
Python avancé : Tuple et objet
Python avancé : Tuple et objetPython avancé : Tuple et objet
Python avancé : Tuple et objet
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objets
 
python
pythonpython
python
 
Cours : les listes chainées Prof. KHALIFA MANSOURI
Cours : les listes chainées  Prof. KHALIFA MANSOURI Cours : les listes chainées  Prof. KHALIFA MANSOURI
Cours : les listes chainées Prof. KHALIFA MANSOURI
 
Python.pptx
Python.pptxPython.pptx
Python.pptx
 
resume algo 2023.pdf
resume algo 2023.pdfresume algo 2023.pdf
resume algo 2023.pdf
 
Chapitre iv algorithmes de tri
Chapitre iv algorithmes de triChapitre iv algorithmes de tri
Chapitre iv algorithmes de tri
 
Cours algorithme: structures répétitives
Cours algorithme: structures répétitivesCours algorithme: structures répétitives
Cours algorithme: structures répétitives
 
Chap7 simulation numérique
Chap7 simulation numériqueChap7 simulation numérique
Chap7 simulation numérique
 
Chap1: Cours en C++
Chap1: Cours en C++Chap1: Cours en C++
Chap1: Cours en C++
 

En vedette

Base NoSql et Python
Base NoSql et PythonBase NoSql et Python
Base NoSql et Python
yboussard
 
Python et les bases de données non sql
Python et les bases de données non sqlPython et les bases de données non sql
Python et les bases de données non sql
bchesneau
 
Rendez votre code Python plus beau !
Rendez votre code Python plus beau !Rendez votre code Python plus beau !
Rendez votre code Python plus beau !
Ronan Amicel
 
Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2
Emeric Tapachès
 
Chap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonChap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec python
Mohammed TAMALI
 
Python après 15 ans de JAVA
Python après 15 ans de JAVAPython après 15 ans de JAVA
Python après 15 ans de JAVA
Pierre-Alban DEWITTE
 
Python et son intégration avec Odoo
Python et son intégration avec OdooPython et son intégration avec Odoo
Python et son intégration avec Odoo
Hassan WAHSISS
 
Présentation des IoT
Présentation des IoTPrésentation des IoT
Présentation des IoT
Lakhdar Meftah
 
Theme1 (1)
Theme1 (1)Theme1 (1)
Theme1 (1)
salmazen
 
Exemples while
Exemples whileExemples while
Exemples while
salmazen
 
Exemples for
Exemples forExemples for
Exemples for
salmazen
 
Exemples if
Exemples ifExemples if
Exemples if
salmazen
 
Cypyth formation-programmation-objet-en-langage-python
Cypyth formation-programmation-objet-en-langage-pythonCypyth formation-programmation-objet-en-langage-python
Cypyth formation-programmation-objet-en-langage-python
CERTyou Formation
 
OpenStack Havana, tour d'horizon
OpenStack Havana, tour d'horizonOpenStack Havana, tour d'horizon
OpenStack Havana, tour d'horizon
Yannick Foeillet
 
La sabiduría
La sabiduríaLa sabiduría
La sabiduría
anny zapata
 

En vedette (20)

Base NoSql et Python
Base NoSql et PythonBase NoSql et Python
Base NoSql et Python
 
Python et les bases de données non sql
Python et les bases de données non sqlPython et les bases de données non sql
Python et les bases de données non sql
 
Rendez votre code Python plus beau !
Rendez votre code Python plus beau !Rendez votre code Python plus beau !
Rendez votre code Python plus beau !
 
Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2
 
Chap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonChap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec python
 
Python après 15 ans de JAVA
Python après 15 ans de JAVAPython après 15 ans de JAVA
Python après 15 ans de JAVA
 
Python et son intégration avec Odoo
Python et son intégration avec OdooPython et son intégration avec Odoo
Python et son intégration avec Odoo
 
Theme 10
Theme 10Theme 10
Theme 10
 
Présentation des IoT
Présentation des IoTPrésentation des IoT
Présentation des IoT
 
Theme1 (1)
Theme1 (1)Theme1 (1)
Theme1 (1)
 
Theme4
Theme4Theme4
Theme4
 
Exemples while
Exemples whileExemples while
Exemples while
 
Theme 10
Theme 10Theme 10
Theme 10
 
Exemples for
Exemples forExemples for
Exemples for
 
Theme2
Theme2Theme2
Theme2
 
Theme3
Theme3Theme3
Theme3
 
Exemples if
Exemples ifExemples if
Exemples if
 
Cypyth formation-programmation-objet-en-langage-python
Cypyth formation-programmation-objet-en-langage-pythonCypyth formation-programmation-objet-en-langage-python
Cypyth formation-programmation-objet-en-langage-python
 
OpenStack Havana, tour d'horizon
OpenStack Havana, tour d'horizonOpenStack Havana, tour d'horizon
OpenStack Havana, tour d'horizon
 
La sabiduría
La sabiduríaLa sabiduría
La sabiduría
 

Plus de salmazen

Theme 9(bis)
Theme 9(bis)Theme 9(bis)
Theme 9(bis)
salmazen
 
Theme 8(suite)
Theme 8(suite)Theme 8(suite)
Theme 8(suite)
salmazen
 
Theme 7 (suite)
Theme 7 (suite)Theme 7 (suite)
Theme 7 (suite)
salmazen
 
Exemples for1
Exemples for1Exemples for1
Exemples for1
salmazen
 
Exemples while2
Exemples while2Exemples while2
Exemples while2
salmazen
 

Plus de salmazen (13)

Theme 9(bis)
Theme 9(bis)Theme 9(bis)
Theme 9(bis)
 
Theme 9
Theme 9Theme 9
Theme 9
 
Theme 8(suite)
Theme 8(suite)Theme 8(suite)
Theme 8(suite)
 
Theme 8
Theme 8Theme 8
Theme 8
 
Theme 7 (suite)
Theme 7 (suite)Theme 7 (suite)
Theme 7 (suite)
 
Theme 7
Theme 7Theme 7
Theme 7
 
Theme 6
Theme 6Theme 6
Theme 6
 
Theme 5
Theme 5Theme 5
Theme 5
 
Exemples for1
Exemples for1Exemples for1
Exemples for1
 
Exemples while2
Exemples while2Exemples while2
Exemples while2
 
Theme3
Theme3Theme3
Theme3
 
Exercice0
Exercice0Exercice0
Exercice0
 
Theme2
Theme2Theme2
Theme2
 

Cours python

  • 1. Avant-propos Sommaire Notes de cours Python 2007–2008 - v 1.3 Bob Cordeau robert.cordeau@onera.fr Mesures Physiques IUT d’Orsay www.iut-orsay.fr/dptmphy/Pedagogie/Welcome.html 12 juillet 2007 Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 2. Avant-propos Sommaire Avant-propos Ces notes reposent sur deux partis pris : le choix du langage Python ; le choix de logiciels libres : Python (www.python.org) PyScripter (mmm-experts.com/) gnuplot (sourceforge.net/projects/gnuplot) ... Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 3. Avant-propos Sommaire Avant-propos Ces notes reposent sur deux partis pris : le choix du langage Python ; le choix de logiciels libres : Python (www.python.org) PyScripter (mmm-experts.com/) gnuplot (sourceforge.net/projects/gnuplot) ... Remerciements : Cette version a b´n´fici´ des lectures attentives de Laurent e e e Pointal (LIMSI) et Georges Vincents (IUT d’Orsay). Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 4. Chapitre 1 Chapitre 2 Chapitre 3 Avant-propos Chapitre 4 Sommaire Chapitre 5 Chapitre 6 Chapitre 7 Sommaire du chapitre 1 1 Introduction ` l’informatique a Environnement mat´riel e Environnement logiciel Langages Production des programmes M´thodologie e Algorithme et programme Importance des commentaires Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 5. Chapitre 1 Chapitre 2 Chapitre 3 Avant-propos Chapitre 4 Sommaire Chapitre 5 Chapitre 6 Chapitre 7 Sommaire du chapitre 2 2 La « calculatrice » Python Les types simples Donn´es, variables et affectation e Les entr´es-sorties e Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 6. Chapitre 1 Chapitre 2 Chapitre 3 Avant-propos Chapitre 4 Sommaire Chapitre 5 Chapitre 6 Chapitre 7 Sommaire du chapitre 3 3 Le contrˆle du flux d’instructions o Les instructions compos´es e Choisir Boucler Parcourir Listes en compr´hension e Ruptures de s´quences e Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 7. Chapitre 1 Chapitre 2 Chapitre 3 Avant-propos Chapitre 4 Sommaire Chapitre 5 Chapitre 6 Chapitre 7 Sommaire du chapitre 4 4 Fonctions–Espaces de noms–Modules D´finition et exemple e Passage des arguments Espaces de noms Modules Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 8. Chapitre 1 Chapitre 2 Chapitre 3 Avant-propos Chapitre 4 Sommaire Chapitre 5 Chapitre 6 Chapitre 7 Sommaire du chapitre 5 5 Les fichiers Ouverture – Fermeture M´thodes d’´criture e e M´thodes de lecture e Le module « pickle » Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 9. Chapitre 1 Chapitre 2 Chapitre 3 Avant-propos Chapitre 4 Sommaire Chapitre 5 Chapitre 6 Chapitre 7 Sommaire du chapitre 6 6 La programmation « OO » Classes et instanciation d’objets M´thodes e M´thodes sp´ciales e e H´ritage et polymorphisme e Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 10. Chapitre 1 Chapitre 2 Chapitre 3 Avant-propos Chapitre 4 Sommaire Chapitre 5 Chapitre 6 Chapitre 7 Sommaire du chapitre 7 7 La programmation « OO » graphique Programmes pilot´s par des ´v´nements e e e Les biblioth`ques graphiques e Les classes de widgets de Tkinter Le positionnement des widgets Un exemple Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 11. Environnement mat´riel e Environnement logiciel Langages Introduction ` l’informatique a Production des programmes M´thodologie e Algorithme et programme Importance des commentaires L’ordinateur D´finition e Automate d´terministe ` composants ´lectroniques. e a e Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 12. Environnement mat´riel e Environnement logiciel Langages Introduction ` l’informatique a Production des programmes M´thodologie e Algorithme et programme Importance des commentaires L’ordinateur D´finition e Automate d´terministe ` composants ´lectroniques. e a e L’ordinateur comprend entre autres : un microprocesseur avec une UC (Unit´ de Contrˆle), une e o UAL (Unit´ Arithm´tique et Logique), une horloge, une e e m´moire cache rapide ; e Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 13. Environnement mat´riel e Environnement logiciel Langages Introduction ` l’informatique a Production des programmes M´thodologie e Algorithme et programme Importance des commentaires L’ordinateur D´finition e Automate d´terministe ` composants ´lectroniques. e a e L’ordinateur comprend entre autres : un microprocesseur avec une UC (Unit´ de Contrˆle), une e o UAL (Unit´ Arithm´tique et Logique), une horloge, une e e m´moire cache rapide ; e de la m´moire vive (RAM), contenant les instructions et les e donn´es. La RAM est form´e de cellules binaires (bits) e e organis´es en mots de 8 bits (octets) ; e Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 14. Environnement mat´riel e Environnement logiciel Langages Introduction ` l’informatique a Production des programmes M´thodologie e Algorithme et programme Importance des commentaires L’ordinateur D´finition e Automate d´terministe ` composants ´lectroniques. e a e L’ordinateur comprend entre autres : un microprocesseur avec une UC (Unit´ de Contrˆle), une e o UAL (Unit´ Arithm´tique et Logique), une horloge, une e e m´moire cache rapide ; e de la m´moire vive (RAM), contenant les instructions et les e donn´es. La RAM est form´e de cellules binaires (bits) e e organis´es en mots de 8 bits (octets) ; e des p´riph´riques : entr´es/sorties, m´moires mortes (disque e e e e dur, CD-ROM. . . ), r´seau. . . e Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 15. Environnement mat´riel e Environnement logiciel Langages Introduction ` l’informatique a Production des programmes M´thodologie e Algorithme et programme Importance des commentaires Deux sortes de programmes Le syst`me d’exploitation : ensemble des programmes qui e g`rent les ressources mat´rielles et logicielles ; il propose une e e aide au dialogue entre l’utilisateur et l’ordinateur : l’interface textuelle (interpr`te de commande) ou graphique (gestionnaire e de fenˆtres). Il est souvent multitˆche et parfois e a multiutilisateur ; Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 16. Environnement mat´riel e Environnement logiciel Langages Introduction ` l’informatique a Production des programmes M´thodologie e Algorithme et programme Importance des commentaires Deux sortes de programmes Le syst`me d’exploitation : ensemble des programmes qui e g`rent les ressources mat´rielles et logicielles ; il propose une e e aide au dialogue entre l’utilisateur et l’ordinateur : l’interface textuelle (interpr`te de commande) ou graphique (gestionnaire e de fenˆtres). Il est souvent multitˆche et parfois e a multiutilisateur ; les programmes applicatifs d´di´s ` des tˆches particuli`res. Ils e e a a e sont form´s d’une s´rie de commandes contenues dans un e e programme source ´crit dans un langage « compris » par e l’ordinateur. Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 17. Environnement mat´riel e Environnement logiciel Langages Introduction ` l’informatique a Production des programmes M´thodologie e Algorithme et programme Importance des commentaires Des langages de diff´rents niveaux e Chaque processeur poss`de un langage propre, directement e ex´cutable : le langage machine. Il est form´ de 0 et de 1 et e e n’est pas portable, mais c’est le seul que l’ordinateur « comprend » ; Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 18. Environnement mat´riel e Environnement logiciel Langages Introduction ` l’informatique a Production des programmes M´thodologie e Algorithme et programme Importance des commentaires Des langages de diff´rents niveaux e Chaque processeur poss`de un langage propre, directement e ex´cutable : le langage machine. Il est form´ de 0 et de 1 et e e n’est pas portable, mais c’est le seul que l’ordinateur « comprend » ; le langage d’assemblage est un codage alphanum´rique du e langage machine. Il est plus lisible que le langage machine, mais n’est toujours pas portable. On le traduit en langage machine par un assembleur ; Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 19. Environnement mat´riel e Environnement logiciel Langages Introduction ` l’informatique a Production des programmes M´thodologie e Algorithme et programme Importance des commentaires Des langages de diff´rents niveaux e Chaque processeur poss`de un langage propre, directement e ex´cutable : le langage machine. Il est form´ de 0 et de 1 et e e n’est pas portable, mais c’est le seul que l’ordinateur « comprend » ; le langage d’assemblage est un codage alphanum´rique du e langage machine. Il est plus lisible que le langage machine, mais n’est toujours pas portable. On le traduit en langage machine par un assembleur ; les langages de haut niveau. Souvent normalis´s, ils e permettent le portage d’une machine ` l’autre. Ils sont a traduits en langage machine par un compilateur ou un interpr´teur. e Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 20. Environnement mat´riel e Environnement logiciel Langages Introduction ` l’informatique a Production des programmes M´thodologie e Algorithme et programme Importance des commentaires Bref historique des langages Ann´es 50 (approches exp´rimentales) : FORTRAN, LISP, e e COBOL. . . Des centaines de langages ont ´t´ cr´´s, mais l’industrie n’en e e ee utilise qu’une minorit´. e Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 21. Environnement mat´riel e Environnement logiciel Langages Introduction ` l’informatique a Production des programmes M´thodologie e Algorithme et programme Importance des commentaires Bref historique des langages Ann´es 50 (approches exp´rimentales) : FORTRAN, LISP, e e COBOL. . . Ann´es 60 (langages universels) : ALGOL, PL/1, PASCAL. . . e Des centaines de langages ont ´t´ cr´´s, mais l’industrie n’en e e ee utilise qu’une minorit´. e Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 22. Environnement mat´riel e Environnement logiciel Langages Introduction ` l’informatique a Production des programmes M´thodologie e Algorithme et programme Importance des commentaires Bref historique des langages Ann´es 50 (approches exp´rimentales) : FORTRAN, LISP, e e COBOL. . . Ann´es 60 (langages universels) : ALGOL, PL/1, PASCAL. . . e Ann´es 70 (g´nie logiciel) : C, MODULA-2, ADA. . . e e Des centaines de langages ont ´t´ cr´´s, mais l’industrie n’en e e ee utilise qu’une minorit´. e Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 23. Environnement mat´riel e Environnement logiciel Langages Introduction ` l’informatique a Production des programmes M´thodologie e Algorithme et programme Importance des commentaires Bref historique des langages Ann´es 50 (approches exp´rimentales) : FORTRAN, LISP, e e COBOL. . . Ann´es 60 (langages universels) : ALGOL, PL/1, PASCAL. . . e Ann´es 70 (g´nie logiciel) : C, MODULA-2, ADA. . . e e Ann´es 80–90 (programmation objet) : C++, LabView, Eiffel, e Matlab. . . Des centaines de langages ont ´t´ cr´´s, mais l’industrie n’en e e ee utilise qu’une minorit´. e Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 24. Environnement mat´riel e Environnement logiciel Langages Introduction ` l’informatique a Production des programmes M´thodologie e Algorithme et programme Importance des commentaires Bref historique des langages Ann´es 50 (approches exp´rimentales) : FORTRAN, LISP, e e COBOL. . . Ann´es 60 (langages universels) : ALGOL, PL/1, PASCAL. . . e Ann´es 70 (g´nie logiciel) : C, MODULA-2, ADA. . . e e Ann´es 80–90 (programmation objet) : C++, LabView, Eiffel, e Matlab. . . Ann´es 90–2000 (langages interpr´t´s objet) : Java, Perl, e ee tcl/Tk, Ruby, Python. . . Des centaines de langages ont ´t´ cr´´s, mais l’industrie n’en e e ee utilise qu’une minorit´. e Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 25. Environnement mat´riel e Environnement logiciel Langages Introduction ` l’informatique a Production des programmes M´thodologie e Algorithme et programme Importance des commentaires Deux techniques de production des programmes La compilation est la traduction du source en langage objet. Elle comprend au moins quatre phases (trois phases d’analyse — lexicale, syntaxique et s´mantique — et une phase de e production de code objet). Pour g´n´rer le langage machine il e e faut encore une phase particuli`re : l’´dition de liens. La e e compilation est contraignante mais offre une grande vitesse d’ex´cution ; e Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 26. Environnement mat´riel e Environnement logiciel Langages Introduction ` l’informatique a Production des programmes M´thodologie e Algorithme et programme Importance des commentaires Deux techniques de production des programmes La compilation est la traduction du source en langage objet. Elle comprend au moins quatre phases (trois phases d’analyse — lexicale, syntaxique et s´mantique — et une phase de e production de code objet). Pour g´n´rer le langage machine il e e faut encore une phase particuli`re : l’´dition de liens. La e e compilation est contraignante mais offre une grande vitesse d’ex´cution ; e dans la technique de l’interpr´tation chaque ligne du source e analys´ est traduite au fur et ` mesure en instructions e a directement ex´cut´es. Aucun programme objet n’est g´n´r´. e e e ee Cette technique est tr`s souple mais les codes g´n´r´s sont e e ee peu performants : l’interpr´teur doit ˆtre utilis´ ` chaque e e ea ex´cution. . . e Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 27. Environnement mat´riel e Environnement logiciel Langages Introduction ` l’informatique a Production des programmes M´thodologie e Algorithme et programme Importance des commentaires Techniques de production de Python Technique mixte : l’interpr´tation du bytecode compil´. Bon e e compromis entre la facilit´ de d´veloppement et la rapidit´ e e e d’ex´cution ; e Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 28. Environnement mat´riel e Environnement logiciel Langages Introduction ` l’informatique a Production des programmes M´thodologie e Algorithme et programme Importance des commentaires Techniques de production de Python Technique mixte : l’interpr´tation du bytecode compil´. Bon e e compromis entre la facilit´ de d´veloppement et la rapidit´ e e e d’ex´cution ; e le bytecode (forme interm´diaire) est portable sur tout e ordinateur muni de la machine virtuelle Python. Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 29. Environnement mat´riel e Environnement logiciel Langages Introduction ` l’informatique a Production des programmes M´thodologie e Algorithme et programme Importance des commentaires La construction des programmes : le g´nie logiciel e Plusieurs mod`les sont envisageables, par exemple : e la m´thodologie proc´durale. On emploie l’analyse e e descendante et remontante qui proc`de par raffinements e successifs : on s’efforce de d´composer un probl`me complexe e e en sous-programmes plus simples. Ce mod`le structure e d’abord les actions ; Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 30. Environnement mat´riel e Environnement logiciel Langages Introduction ` l’informatique a Production des programmes M´thodologie e Algorithme et programme Importance des commentaires La construction des programmes : le g´nie logiciel e Plusieurs mod`les sont envisageables, par exemple : e la m´thodologie proc´durale. On emploie l’analyse e e descendante et remontante qui proc`de par raffinements e successifs : on s’efforce de d´composer un probl`me complexe e e en sous-programmes plus simples. Ce mod`le structure e d’abord les actions ; la m´thodologie objet. On con¸oit des fabriques (classes) qui e c servent ` produire des composants (objets) qui contiennent a des donn´es (attributs) et des actions (m´thodes). Les classes e e d´rivent (h´ritage et polymorphisme) de classes de base dans e e une construction hi´rarchique. e Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 31. Environnement mat´riel e Environnement logiciel Langages Introduction ` l’informatique a Production des programmes M´thodologie e Algorithme et programme Importance des commentaires La construction des programmes : le g´nie logiciel e Plusieurs mod`les sont envisageables, par exemple : e la m´thodologie proc´durale. On emploie l’analyse e e descendante et remontante qui proc`de par raffinements e successifs : on s’efforce de d´composer un probl`me complexe e e en sous-programmes plus simples. Ce mod`le structure e d’abord les actions ; la m´thodologie objet. On con¸oit des fabriques (classes) qui e c servent ` produire des composants (objets) qui contiennent a des donn´es (attributs) et des actions (m´thodes). Les classes e e d´rivent (h´ritage et polymorphisme) de classes de base dans e e une construction hi´rarchique. e Python offre les deux techniques. Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 32. Environnement mat´riel e Environnement logiciel Langages Introduction ` l’informatique a Production des programmes M´thodologie e Algorithme et programme Importance des commentaires Programme et algorithme Algorithme Moyen d’atteindre un but en r´p´tant un nombre fini de fois un e e nombre fini d’instructions. Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 33. Environnement mat´riel e Environnement logiciel Langages Introduction ` l’informatique a Production des programmes M´thodologie e Algorithme et programme Importance des commentaires Programme et algorithme Algorithme Moyen d’atteindre un but en r´p´tant un nombre fini de fois un e e nombre fini d’instructions. Donc, un algorithme se termine en un temps fini. Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 34. Environnement mat´riel e Environnement logiciel Langages Introduction ` l’informatique a Production des programmes M´thodologie e Algorithme et programme Importance des commentaires Programme et algorithme Algorithme Moyen d’atteindre un but en r´p´tant un nombre fini de fois un e e nombre fini d’instructions. Donc, un algorithme se termine en un temps fini. Programme Un programme est la traduction d’un algorithme en un langage compilable ou interpr´table par un ordinateur. e Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 35. Environnement mat´riel e Environnement logiciel Langages Introduction ` l’informatique a Production des programmes M´thodologie e Algorithme et programme Importance des commentaires Programme et algorithme Algorithme Moyen d’atteindre un but en r´p´tant un nombre fini de fois un e e nombre fini d’instructions. Donc, un algorithme se termine en un temps fini. Programme Un programme est la traduction d’un algorithme en un langage compilable ou interpr´table par un ordinateur. e Il est souvent ´crit en plusieurs parties, dont une qui pilote les e autres, le programme principal. Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 36. Environnement mat´riel e Environnement logiciel Langages Introduction ` l’informatique a Production des programmes M´thodologie e Algorithme et programme Importance des commentaires La pr´sentation des programmes e Un programme source est destin´ ` l’ˆtre humain. Pour en faciliter ea e la lecture, il doit ˆtre judicieusement comment´. e e Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 37. Environnement mat´riel e Environnement logiciel Langages Introduction ` l’informatique a Production des programmes M´thodologie e Algorithme et programme Importance des commentaires La pr´sentation des programmes e Un programme source est destin´ ` l’ˆtre humain. Pour en faciliter ea e la lecture, il doit ˆtre judicieusement comment´. e e La signification de parties non triviales doit ˆtre expliqu´e par un e e commentaire. Un commentaire commence par le caract`re # et s’´tend jusqu’` e e a la fin de la ligne : #--------------------- # Voici un commentaire #--------------------- 9 + 2 # En voici un autre Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 38. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les expressions bool´ennes e Deux valeurs possibles : False, True. Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 39. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les expressions bool´ennes e Deux valeurs possibles : False, True. Op´rateurs de comparaison : ==, !=, >, >=, <, <= e 2 > 8 # False 2 <= 8 < 15 # True Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 40. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les expressions bool´ennes e Deux valeurs possibles : False, True. Op´rateurs de comparaison : ==, !=, >, >=, <, <= e 2 > 8 # False 2 <= 8 < 15 # True Op´rateurs logiques (concept de shortcut) : not, or, and e (3 == 3) or (9 > 24) # True (d`s le premier membre) e (9 > 24) and (3 == 3) # False (d`s le premier membre) e Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 41. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les expressions bool´ennes e Deux valeurs possibles : False, True. Op´rateurs de comparaison : ==, !=, >, >=, <, <= e 2 > 8 # False 2 <= 8 < 15 # True Op´rateurs logiques (concept de shortcut) : not, or, and e (3 == 3) or (9 > 24) # True (d`s le premier membre) e (9 > 24) and (3 == 3) # False (d`s le premier membre) e Les op´rateurs logiques et de comparaisons sont ` valeurs e a dans False, True Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 42. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Le type entier (1/2) Op´rations arithm´tiques e e 20 + 3 # 23 20 - 3 # 17 20 * 3 # 60 20 ** 3 # 8000 20 / 3 # 6 (division enti`re) e 20 % 3 # 2 (modulo) Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 43. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Le type entier (2/2) Les entiers longs (seulement limit´s par la RAM) e 2 ** 40 # 1099511627776L 3 * 72L # 216L Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 44. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Le type entier (2/2) Les entiers longs (seulement limit´s par la RAM) e 2 ** 40 # 1099511627776L 3 * 72L # 216L Op´rations sur les bases e 07 + 01 # 8 oct(7+1) # ’010’ (octal) 0x9 + 0x2 # 11 hex(9+2) # ’0xb’ (hexad´cimal) e int(’10110’, 2) # 22 Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 45. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Le type flottant Les flottants sont not´s avec un « point d´cimal » ou en e e notation exponentielle : 2.718 3e8 6.023e23 Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 46. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Le type flottant Les flottants sont not´s avec un « point d´cimal » ou en e e notation exponentielle : 2.718 3e8 6.023e23 Ils supportent les mˆmes op´rations que les entiers, sauf : e e 20.0 / 3 # 6.666666666666667 20.0 // 3 # 6 (division enti`re forc´e) e e Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 47. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Le type flottant Les flottants sont not´s avec un « point d´cimal » ou en e e notation exponentielle : 2.718 3e8 6.023e23 Ils supportent les mˆmes op´rations que les entiers, sauf : e e 20.0 / 3 # 6.666666666666667 20.0 // 3 # 6 (division enti`re forc´e) e e L’import du module « math » autorise toutes les op´rations e math´matiques usuelles : e from math import sin, pi print sin(pi/4) # 0.70710678118654746 Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 48. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Le type complexe Les complexes sont ´crits en notation cart´sienne, form´e de e e e deux flottants. Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 49. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Le type complexe Les complexes sont ´crits en notation cart´sienne, form´e de e e e deux flottants. La partie imaginaire est suffix´e par j : e 1j # 1j (2+3j) + (4-7j) # (6-4j) (9+5j).real # 9.0 (9+5j).imag # 5.0 (abs(3+4j) # 5.0 : module Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 50. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les donn´es et les variables e Variable C’est un nom donn´ ` une valeur. ea Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 51. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les donn´es et les variables e Variable C’est un nom donn´ ` une valeur. ea Informatiquement, c’est une r´f´rence ` une adresse m´moire. ee a e Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 52. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les donn´es et les variables e Variable C’est un nom donn´ ` une valeur. ea Informatiquement, c’est une r´f´rence ` une adresse m´moire. ee a e Les noms des variables sont conventionnellement ´crits en e minuscule. Ils commencent par une lettre ou le caract`ree soulign´ ( ), puis ´ventuellement, des lettres, des chiffres ou le e e caract`re soulign´. e e Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 53. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les donn´es et les variables e Variable C’est un nom donn´ ` une valeur. ea Informatiquement, c’est une r´f´rence ` une adresse m´moire. ee a e Les noms des variables sont conventionnellement ´crits en e minuscule. Ils commencent par une lettre ou le caract`ree soulign´ ( ), puis ´ventuellement, des lettres, des chiffres ou le e e caract`re soulign´. e e Ils doivent ˆtre diff´rents des mots r´serv´s de Python. e e e e Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 54. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les mots r´serv´s de Python 2.5 e e and def finally in print yield as del for is raise assert elif from lambda return break else global not try class except if or while continue exec import pass with Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 55. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les mots r´serv´s de Python 2.5 e e and def finally in print yield as del for is raise assert elif from lambda return break else global not try class except if or while continue exec import pass with Remarques : Ne pas red´finir les constantes None, True et False. e Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 56. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles L’affectation Affectation On affecte une variable par une valeur en utilisant le signe = (qui n’a rien ` voir avec l’´galit´ en math !). a e e Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 57. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles L’affectation Affectation On affecte une variable par une valeur en utilisant le signe = (qui n’a rien ` voir avec l’´galit´ en math !). a e e Dans une affectation, le membre de gauche re¸oit le membre de c droite (ce qui n´cessite deux temps d’horloge diff´rents). e e a = 2 # a "re¸oit" 2 c Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 58. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles L’affectation Affectation On affecte une variable par une valeur en utilisant le signe = (qui n’a rien ` voir avec l’´galit´ en math !). a e e Dans une affectation, le membre de gauche re¸oit le membre de c droite (ce qui n´cessite deux temps d’horloge diff´rents). e e a = 2 # a "re¸oit" 2 c La valeur d’une variable peut ´voluer au cours du temps (la valeur e ant´rieure est perdue) : e a = a + 1 # 3 (incr´mentation) e a = a - 1 # 2 (d´cr´mentation) e e Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 59. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Formes des instructions d’affectation Outre l’affectation simple, on peut aussi utiliser les formes suivantes : a = 4 # forme de base a += 2 # idem ` : a = a + 2 si a est d´j` r´f´renc´ a e a e e e c = d = 8 # cibles multiples (affectation de droite ` gauche) a e, f = 2.7, 5.1 # affectation de tuple (par position) e, f = f, e # ´change les valeurs de e et f e g, h = [’G’, ’H’] # affectation de liste (par position) Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 60. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les entr´es e L’instruction input() permet se saisir une entr´e au clavier. e Elle effectue un typage dynamique. Elle permet ´galement e d’afficher une invite : n = input("Entrez un entier : ") Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 61. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les entr´es e L’instruction input() permet se saisir une entr´e au clavier. e Elle effectue un typage dynamique. Elle permet ´galement e d’afficher une invite : n = input("Entrez un entier : ") L’instruction raw input() force une saisie en mode texte que l’on peut ensuite transtyper : f1 = raw_input("Entrez un flottant : ") f1 = float(f1) # transtypage en flottant f2 = float(raw_input("Entrez un autre flottant : ")) Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 62. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les sorties L’instruction print permet d’afficher des sorties ` l’´cran : a e a = 2 b = 5 print a # 2 print "Somme :", a + b # 7 print "Diff´rence :", a - b, # -3 e print "produit :", a * b # 10 Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 63. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les sorties L’instruction print permet d’afficher des sorties ` l’´cran : a e a = 2 b = 5 print a # 2 print "Somme :", a + b # 7 print "Diff´rence :", a - b, # -3 e print "produit :", a * b # 10 Le s´parateur virgule (,) permet d’empˆcher le retour ` la e e a ligne. Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 64. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Qu’est-ce qu’une s´quence ? e D´finition e Une s´quence est un conteneur ordonn´ d’´l´ments, indic´s par des e e ee e entiers positifs ou nuls. Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 65. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Qu’est-ce qu’une s´quence ? e D´finition e Une s´quence est un conteneur ordonn´ d’´l´ments, indic´s par des e e ee e entiers positifs ou nuls. Python dispose de trois types pr´d´finis de s´quences : e e e les chaˆ ınes (normales, brutes et en Unicode) ; les listes ; les tuples. Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 66. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les chaˆ ınes de caract`res : notations e Trois notations disponibles : Les guillemets permettent d’inclure des apostrophes : c1 = "L’eau vive" Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 67. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les chaˆ ınes de caract`res : notations e Trois notations disponibles : Les guillemets permettent d’inclure des apostrophes : c1 = "L’eau vive" Les apostrophes permettent d’inclure des guillemets : c2 = ’ est "froide" !’ Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 68. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les chaˆ ınes de caract`res : notations e Trois notations disponibles : Les guillemets permettent d’inclure des apostrophes : c1 = "L’eau vive" Les apostrophes permettent d’inclure des guillemets : c2 = ’ est "froide" !’ Les triples guillemets ou triples apostrophes conservent la mise en page (lignes multiples) : c3 = """Usage : -h : help -q : quit""" Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 69. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les chaˆ ınes de caract`res : op´rations e e Longueur : s = "abcde" len(s) # 5 Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 70. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les chaˆ ınes de caract`res : op´rations e e Longueur : s = "abcde" len(s) # 5 Concat´nation : e s1 = "abc" s2 = "defg" s3 = s1 + s2 # ’abcdefg’ Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 71. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les chaˆ ınes de caract`res : op´rations e e Longueur : s = "abcde" len(s) # 5 Concat´nation : e s1 = "abc" s2 = "defg" s3 = s1 + s2 # ’abcdefg’ R´p´tition : e e s4 = "Fi! " s5 = s4 * 3 # ’Fi! Fi! Fi! ’ Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 72. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les chaˆ ınes de caract`res : m´thodes (1/3) e e split() : scinde une chaˆ en une liste de mots : ıne ’ab*cd’.split(’*’) # [’ab’, ’cd’] (on indique le s´parateur) e Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 73. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les chaˆ ınes de caract`res : m´thodes (1/3) e e split() : scinde une chaˆ en une liste de mots : ıne ’ab*cd’.split(’*’) # [’ab’, ’cd’] (on indique le s´parateur) e join() : concat`ne une liste de chaˆ e ınes en une chaˆ : ıne ’-’.join([’ci’, ’joint’]) # ’ci-joint’ Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 74. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les chaˆ ınes de caract`res : m´thodes (1/3) e e split() : scinde une chaˆ en une liste de mots : ıne ’ab*cd’.split(’*’) # [’ab’, ’cd’] (on indique le s´parateur) e join() : concat`ne une liste de chaˆ e ınes en une chaˆ : ıne ’-’.join([’ci’, ’joint’]) # ’ci-joint’ find() : donne la position d’une sous-chaˆ dans la chaˆ : ıne ıne ’abracadabra’.find(’bra’) # 1 (le premier indice vaut 0) Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 75. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les chaˆ ınes de caract`res : m´thodes (1/3) e e split() : scinde une chaˆ en une liste de mots : ıne ’ab*cd’.split(’*’) # [’ab’, ’cd’] (on indique le s´parateur) e join() : concat`ne une liste de chaˆ e ınes en une chaˆ : ıne ’-’.join([’ci’, ’joint’]) # ’ci-joint’ find() : donne la position d’une sous-chaˆ dans la chaˆ : ıne ıne ’abracadabra’.find(’bra’) # 1 (le premier indice vaut 0) count() : donne le nombre de sous-chaˆ ınes dans la chaˆ : ıne ’abracadabra’.count(’bra’) # 2 Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 76. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les chaˆ ınes de caract`res : m´thodes (2/3) e e lower() : convertit en minuscules : ’PETIT’.lower() # ’petit’ Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 77. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les chaˆ ınes de caract`res : m´thodes (2/3) e e lower() : convertit en minuscules : ’PETIT’.lower() # ’petit’ upper() : convertit en majuscules : ’grand’.upper() # ’GRAND’ Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 78. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les chaˆ ınes de caract`res : m´thodes (2/3) e e lower() : convertit en minuscules : ’PETIT’.lower() # ’petit’ upper() : convertit en majuscules : ’grand’.upper() # ’GRAND’ capitalize() : convertit la premi`re lettre en majuscule : e ’michelle’.capitalize() # ’Michelle’ Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3
  • 79. Les types simples Donn´es, variables et affectation e Les entr´es-sorties e La « calculatrice » Python Les s´quences e Retour sur les r´f´rences ee Les dictionnaires Les ensembles Les chaˆ ınes de caract`res : m´thodes (2/3) e e lower() : convertit en minuscules : ’PETIT’.lower() # ’petit’ upper() : convertit en majuscules : ’grand’.upper() # ’GRAND’ capitalize() : convertit la premi`re lettre en majuscule : e ’michelle’.capitalize() # ’Michelle’ title() : la premi`re lettre de tous les mots en majuscule : e ’un beau titre !’.title() # ’Un Beau Titre !’ Bob Cordeau robert.cordeau@onera.fr Notes de cours Python 2007–2008 - v 1.3