PYTHON 2 INFOFEUILLE 7 EX

                           PYTHON.2          INFO FEUILLE n° 7    PYTHON 2                    BTS SIO

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

  COURS:

           Thème :

    • A=[]    

                     (  Cela veut dire que A est une liste vide)

     •   for x in range():

                  ( Cela répète ce qui est en dessous autant de fois que l'entier entre parenthèse.

                   La lettre x peut être emplacée par tout autre lettre  )

    •     A[i -1][j-1]

                 (   C'est  le terme de rang ( i ; j) de la matrice A )

     •         nom de liste.append( )  

                 (  le contenu entre parenthèse est rajouté au bout de la liste comme terme )

      •    for line in A:

                print line

                      ( Cela affiche la matrice A verticalement.)

        •    [[0 for x in range(3)]for x in range(2)]

                   ( Cela donne une matrice à 2 lignes et 3 colonnes avec uniquement des 0)

    [0 for x in range(3)]  donne [0,0,0]     puis    [ [0,0,0]for x in range(2) ] donne

                [[0,0,0],[0,0,0]]

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

   EXERCICE 0

         1.  Que donne le script suivant? 

     def ger():   

           li1=[ 'julien','andre','marc'] 

           li2=['omega','triangle','losange'] 

           mt=[]   

           mt.append([li1,li2]) 

           print mt

    2. Ecrire un script qui demande deux listes L1 et L2 à l'aide de input( "   ... " ) 

         puis qui donne la liste [L1 , L2 ] . 

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

      REPONSE:

     1.     On obtient la matrice de type ( 2 ; 3 ) , c'est-à-dire la liste:

             [ ['julien','andre','marc'],['omega','triangle','losange'] ]

     2.  Le script suivant répond;

def fer():   

       L1=input("Donner une liste de trois termes  ") 

       L2=input("Donner une liste de trois termes ")

       mt=[]   

       mt.append(L1)

       mt.append(L2) 

       print mt

         On obtient une liste dont les deux termes sont L1 et L2.

         C'est une matrice de type ( 2 ; 3 )

         Par exemple:

>>> fer()
Donner une liste de trois termes [1,2,3]
Donner une liste de trois termes [4,5,6]
[[1, 2, 3], [4, 5, 6]]
>>>

              Attention si l'on remplace :     

                                                               mt.append(L1)

                                                               mt.append(L2) 

            par mt.append([L1,L2] )

            on obtient une liste dont la liste de listes [L1,L2] 

            est l'élément

                       Par exemple:

>>> fer()
Donner une liste de trois termes [1,2,3]
Donner une liste de trois termes [4,5,6]
[[[1, 2, 3], [4, 5, 6]]]
>>> 

               Attention:    mt.append(L1,L2)    ne donne rien  

                      car     .append( ... )   est à un argument (c-à-d  à une place )   

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

          EXERCICE 1 bis

          Soit la matrice A de type ( 3 ;3) donnée:

   / 1 2 3 \
A  =  | 2 4 6  |
   \ 7 8 0 /

         déjà introduite sous la forme

          A=[ [ 1,2,3],[2,4,6],[7,8,0] ]

       1. Comment obtenir le terme de A de rang ( 2;3)

           qui est 6?

       2. Comment remplacer le terme de A de rang ( 2;3 )

           par 44 ?

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

 Réponse:

    1.  Ecrire le terme 6 de A de rang ( 2 ; 3 ).  

    Voici un script possible. 

def exemple():
      A=[[1,2,3],[2,4, 6 ],[7,8,0]]

      print A[1][2]

 On obtient:

>>> exemple()
6

>>>

     Explication:

6 est dans le second terme [2,4,6] de A.

Or le second terme de A est d'indice 1.

6 est le troisième terme de la liste  [2,4,6].

Or le troisième terme de la liste [2,4,6] est d'indice

A[1][2]  est donc le terme de rang ( 2 ; 3 ) de A.

c-à-d      A[2 -1][3-1]  est 6

  Cela donne:

>>> exemple()
6

>>>

    2.  Remplacement dans A de 6 par 44

     Voici un script possible

def exemple():
      A=[[1,2,3],[2,4, 6 ],[7,8,0]]

      A[1][2]=44

      print A

On obtient:

>>> exemple()

[[1, 2, 3], [2, 4, 44], [7, 8, 0]]
>>>

 On a bien remplacer 6 par 44.

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

         EXERCICE 1 ter        

  Soit la matrice A de type ( 3 ;3) donnée:

   / 1 2 3 \
A  =  | 2 4 6  |
   \ 7 8 0 /

         déjà introduite sous la forme

          A=[ [ 1,2,3],[2,4,6],[7,8,0] ]

        Comment demander un affichage vertical 

        des lignes de A ?

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

  Réponse:

    Voici un script qui répond:

def exemple():

      A=[[1,2,3],[2,4,6],[7,8,0]]

      for line in A:

          print line

On obtient :

>>> exemple()
[1, 2, 3]
[2, 4, 6]
[7, 8, 0]
>>>

Cela a d'avantage l'apparence de A.

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

     EXERCICE quatro

             Que donne le script suivant?

def exemple():

      B=[[0 for x in range(3)]for x in range(2)]

      print B

 2.Que donne le script suivant?

def exemple():

       B=[[0 for x in range(3)]for x in range(2)]

       for line in B:

             print line

  ( la lettre x peut être remplacée par une autre lettre .On peut prendre y 

     pour le second x si l'on veut.)

  3. Que donne le script suivant?

def exemple():
       B=[[0 for x in range(3)]for x in range(3)]
       for i in range(3):
             B[i][i]=1
       for line in B:
             print line

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

  REPONSE:

  1. On obtient la matrice nulle de type ( 2;3) :

>>> exemple()

[[0, 0, 0], [0, 0, 0]]

>>> 

   2. On obtient la matrice nulle de type ( 2;3)

       disposée verticalement.

>>> exemple()
[0, 0, 0]
[0, 0, 0]
>>>

3. On obtient ma matrice unité d'ordre 3 disposée verticalement.

>>> exemple()
[1, 0, 0]
[0, 1, 0]
[0, 0, 1]
>>>

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

         EXERCICE 1

           Obtenir un tableau à deux dimensions formé à partir de deux listes de deux termes 0. 

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

        Réponse :

   def tb():        

         tableau=[]                                              #   La liste appelée tableau est vide 

         for x in range(2):                                   #     Affîche deux fois la ligne qui suit                           

              tableau.append([])    

              for y in range(2):   

                   tableau[x].append(0)     

          print tableau

                        Résultat du script

>>> tb() 

 [[0, 0], [0, 0]]

>>>

  En fait progressivement le résultat se construit ( pour le voir il suffit de 

  mettre print aligné avec tableau[x].append(0).    

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

      EXERCICE 2

      Soit le script suivant:

def tab(): 

       tableau=[] 

       for x in range(3):

             tableau.append([]) 

             for y in range(4):

                   tableau[x].append(1)

             print tableau

                                   Que donne-t-il ?

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

     REPONSE:

         Le scrip donne le tableau suivant à 3 lignes et 4 colonnes.

 >>> tab()

        [ [ 1,1,1,1] , [ 1,1,1,1] , [ 1,1,1,1]  ]

>>> 

        En fait cela  se présente comme une liste de 3 listes de quatre termes 

 

       tous égaux à 1.

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

     EXERCICE 3 

         Que produit le script suivant?

def  jan():

       for i in range( 5 ):

             print 'a'

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

   REPONSE:

         Cela affîche 5 fois le a à la ligne sur cinq lignes    

>>> jan()

a

a

a

a

a

>>> 

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

       EXERCICE 4

            Soit le script suivant:

def tab():

       tableau=[]

       for x in range(3):

             tableau.append([])

             for y in range(4):

                   tableau[x].append(' bien' )

       print tableau

                                                Que donne-t-il ?

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

   REPONSE:    

         Le script donne la matrice 3 ligne et 4 colonnes :

>>> tab() 

     [ [ bien,bien,bien, bien] , [ bien,bien,bien, bien] , [ bien,bien,bien, bien] ]

>>> 

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

      EXERCICE 5

                     Créer un script qui donne la matrice

/1 5 6 \
|0 7 5  |
\ 5 4 2 /

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

   Réponse:        

                 On peut considérer :

     def tb():

           L1 = [1 , 5 , 6 ]

           L2 = [0 ,7 , 5 ]

           L3 = [ 5 , 4 ,2]

           mat= [L1,L2,L3]

           print mat

             On obtient quand le script tourne:

>>> tab() 

[[1, 5, 6], [0, 7, 5], [5, 4, 2]]

>>> 

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

       EXERCICE 6

        Ecrire un script qui échange à la demande deux termes désignés d'une liste,

       par exemple dans une liste de quatre termes.   

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

 Réponse:      

         On peut considérer:

def perm():   

       lis=[' p','u','e','r']    

       print lis 

       print (" lis est une liste de 4 termes")    

       i=input(" Donner l'indice du premier terme à permuter")   

       j =input(" Donner l'indice du second terme à permuter")    

       t=lis[i]   

       lis[i]=lis[j] 

       lis[j]=t   

       print lis 

                           On obtient quand on fait tourner le scrip: 

  >>> perm()

       [' p', 'u', 'e', 'r'] 

       lis est une liste de 4 termes   

       Donner l'indice du premier terme à permuter   2   

       Donner   l'indice du second terme à permuter  3    

       [' p', 'u', 'r', 'e']

>>>  

          On a obtenu la permutation de e et r. 

     Remarque :

                     On peut remplacer   

            def perm():     par    def perm(a,b):

           pour indiquer qu'il y a deux variables

             mais alors pour faire tourner  le programme 

               il faudra mettre par exemple

>>>perm(1,2)     pour que le programme se lance 

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