PYTHON.2 INFO FEUILLE n° 9 D'EX. OPERATIONS DANS LES LISTES

                   PYTHON .2   INFO   FEUILLE n ° 9 d'ex.      10 Avril 2012    BTS1 SIO

   -------------------------------------------------------------------------------------------------------------------

      COURS:

      Thème :      • " list comprehension "

                                Multiplier par un même réel a tous les termes d'une liste

                                 à l'aide de la fonction elem*a de variable elem

                           •  liste.index(... terme de la liste ..)

                                  Cela donne l'indice du terme de la liste

                           • ord("caractère")

                                   cela donne le code ASCII du "caractère" 

                             Moyenne des valeurs deux à deux de deux listes .  

                             Bulletin trimestriel                                                 

-----------------------------------------------------------------------------------------------------------------------

   EXERCICE 0

                       Que donne le script suivant ?

def teuf():

      li = [ " Aude" , "Paris"," Lyon", "Champs"]

      print li.index("Paris")
------------------------------------------------------------------------------------------------------

  Réponse:

           Cela donne l'indice de "Paris" dans la liste li

>>>  teuf()

             1

>>>

----------------------------------------------------------------------------------------------------------------------

   EXERCICE 1

         Que donne le script suivant ?

def fan():
       ljk="figure"
       print ljk[1]

------------------------------------------------------------------------------

   Réponse:    On  obtient:

>>> fan()

           i

>>>

  Cela donne le caractère d'indice 1 de la chaîne.

  On a donc i qui est le second caractère de la chaîne.

 -------------------------------------------------------------------------------------

     EXERCICE 2 

  1. Code ASCII d'un caractère.

        Que donne le script suivant?     

def fut():
      print ord("z")

  2.  Caractrère de code ASCII un entier compris entre 0 et 255.

         Que donne le script suivant?     

def gat(): 
      print chr( 122)

------------------------------------------------------------------------------------

   Réponse : 

       1 .  On obtient :

>>> gat()

                 122

>>>

                     C'est le le code ASCII du caractère a.

      2.    On obtient:

                 z

         C'est le caractère de code ASCII  122. 

--------------------------------------------------------------------------------------

      EXERCICE 3

      Soit le script suivant     

def prd():
      li = [2, 7, 12, 5]
      li1= [elem*3 for elem in li]

      print li1

   Qu'obtient-on?

-------------------------------------------------------

   Réponse:

      On a la liste li1 dont les termes sont les triples 

      des termes de la liste li. 

      On obtient :      

>>> prd()
       [6, 21, 36, 15]
>>>

-------------------------------------------------------------------------

    EXERCICE 4

       Que donne le scrip suivant?  

def son():
      li = [2,7,12,5]
      li1= [elem+3 for elem in li]
      print li1

---------------------------------------------------------------------------

Réponse:      

  On a la liste li1 dont les termes sont les sommes de 3 avec chaque  

   terme de la liste li. 

      On obtient :      

>>> prd()
       [5, 10, 15, 8]
>>>

----------------------------------------------------------------------

   EXERCICE 5

      Que fait le script suivant ?

def plusgrand():
       li = [2,7,12,5]
       s=li[0]
       for element in li:
             if element > s:
                  s = element

       print s

 ---------------------------------------------------------------------------

  Réponse:

       On obtient :

>>> plusgrand()
                  12
>>>

     C'est le plus grand terme de la liste.

------------------------------------------------------------------------

   EXERCICE 6

        Que donne le script suivant: 

def bulletin():
       Nom=["Albert"," Cecile", "Barnabe","roger"]
       Dev1=[11,10,12,5]
       Dev2=[13,8,8,11]
       li=[]
       for i in range(4):
             c=float((Dev1[i]+Dev2[i])/2)
             li.append(c)
             M=[Nom,Dev1,Dev2,li]
       print M

------------------------------------------------------------------------------------------------------

    Réponse:

   On obtient un tableau qui donne les moyennes de chacun des

   quatre élèves.

>>> bulletin()
[['Albert', ' Cecile', 'Barnabe', 'roger'], [11, 10, 12, 5], [13, 8, 8, 11], [12.0, 9.0, 10.0, 8.0]]
>>>

  -------------------------------------------------------------------------------------------------

  EXERCICE 7 

    Reprendre le thème de l'exercice précédent en demandant à quatre 

    étudiants les notes de maths aux deux devoirs surveillés.

    Après que s'affiche le bulletin indiquer la meilleure moyenne

    et donner un étudiant qui l'a.

-------------------------------------------------------------------------------------------------------

 Réponse:

         On peut considérer le script suivant:

def bulletin():
      Nom=["Albert"," Cecile", "Barnabe","roger"]
      Dev1=input( "Albert, Cecile, Barnabe,roger donnez moi la liste de vos notes du DS n° 1 " )
      Dev2=input( "Albert, Cecile, Barnabe,roger donnez moi la liste de vos notes du DS n° 2 " )
      li=[]
      for i in range(4):
           c=float((Dev1[i]+Dev2[i])/2)
           li.append(c)
           M=[Nom,Dev1,Dev2,li]
      print M
      s=li[0]
      for element in li:
            if element > s:
                s = element

      print ("La meilleure note est :"),s

      k=li.index(s)

      print (" C'est la note de: " ) , Nom[k]

                             ----------------------------------------

    Voici ce que cela peut donner 

>>> bulltin()
Albert, Cecile, Barnabe,roger donnez moi la liste de vos notes du DS n° 1    [14,12,16,10]
Albert, Cecile, Barnabe,roger donnez moi la liste de vos notes du DS n° 2    [8,12,9,5]
       [['Albert', ' Cecile', 'Barnabe', 'roger'], [14, 12, 16, 10], [8, 12, 9, 5], [11.0, 12.0, 12.0, 7.0]]
       La meilleure note est : 12.0
       C'est la note de Cecile
>>>

------------------------------------------------------------------------------------------------------------------------------------

 Mutation de listes: LIST COMPREHENSION

                     Une des caractéristiques les plus puissantes de Python est

                     la list comprehension (création fonctionnelle de listes)

                   qui fournit un moyen concis d'appliquer une fonction sur chaque élément

                  d'une liste afin d'en produire une nouvelle.

     Exemple: Présentation des list comprehensions

>>> li = [1, 9, 8, 4]
 >>> [elem*2 for elem in li]      
 1 
[2, 18, 16, 8]
 >>> li        
 
[1, 9, 8, 4] 
>>> li = [elem*2 for elem in li] 
 3 
>>> li [2, 18, 16, 8]

 

Pour comprendre cette ligne, lisez là de droite à gauche.

 li est la liste que vous appliquez. 

Python la parcourt un élément à la fois, en assignant temporairement la valeur de chacun

des éléments à la variable elem

Python applique ensuite la fonction elem*2 et ajoute le résultat à la liste retournée.

 

 2 

 

Notez que les list comprehensions ne modifient pas la liste initiale.

 

 3 

Vous pouvez assigner le résultat d'une list comprehension à la variable que vous traitez. 

Python assemble la nouvelle liste en mémoire et assigne le résultat à la variable une

fois la transformation terminée.