PYTHON. 2 Feuille n°9 QUARTO

                     PYTHON . 2.7       FEUILLE      n° 9   Quatro   ALGO

       Thème:

               COURS:     CRYPTOGRAPHIE 

             • Utilisation de  chaîne.find( lettre  )

                          Soit la chaîne:        alphabet="abcdefghijklmnopqrstuvwxyz"

                         Soit la chaîne:         mot = " maison"

                 On peut pour chaque lettre de "maison" donner, dans 

                 alphabet, son indice.

                   Par exemple:     La lettre s de   mot = " maison"  est  d'indice 18 dans l'alphabet.

                                               Pour avoir cet indice 18 on utilise:

                              alphabet.find(mot[3]) 

                                               3 étant l'indice de s dans  mot = " maison"

                            Le verbe to find anglais est trouver.

                            Il s'agit de trouver dans  alphabet="abcdefghijklmnopqrstuvwxyz"

                            l'indice de la lettre d'indice 3  de  mot="maison"

                • Codage comme Jules César.

                         Dans un message chaque lettre est décalée de 3 .

                          Par exemple :

                                       Prenons   maison

                                    a b c d e f g h i j k l m n o p q r s t u v w x y z

                                    a b c d e f g h i j k l m n o p q r s t u v w x y z

                                    Il sera remplacé par:              dlpqrv

                                   Il suffit d'ajouter 3 à l'indice de la lettre de l'alphabet.

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

      EXERCICE 1 :

              Ecrire un script qui demande d'entrer une chaîne et

              qui donne alors l'indice dans l'alphabet de la seconde

               lettre de la chaîne.

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

           REPONSE :

              On peut envisager: 

def alpha():
      Alphabet="abcdefghijklmnopqrstuvwxyz"
      mot=raw_input("Donner un mot ")
      print  "On veut dans l'alphabet l'indice de la deuxième lettre de",mot
      j=Alphabet.find(mot[1])
                        # mot[1] est la deuxième lettre de votre mot
                       # Alphabet.find(mot[1]) donne l'indice j de la lettre mot[1] de mot qui figure dans l'alphabet

      print " la",2,"ième lettre de",mot,"qui est",Alphabet[j]," est dans l'alphabet d'indice",j

                   On obtient par exemple:

>>> alpha()
Donner un mot maison
On veut dans l'alphabet l'indice de la deuxième lettre de maison
0 est l'indice de la lettre a dans l'alphabet

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

    EXERCICE 2

          Reprendre le même objectif mais pour chaque lettre de la chaîne.

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

     REPONSE :

                          On peut considérer:

from random import*
def cas():
       Alphabet="abcdefghijklmnopqrstuvwxyz"
       mot=raw_input("Donner un mot ")
       print  "Pour chaque lettre de ce mot nous voulons avoir son indice dans l'alphabet"
       longueur=len(mot)
       for i in range(longueur):
                               j=Alphabet.find(mot[i])
                               print  " la",i+1,"ième lettre de",mot,"qui est",Alphabet[j]," est dans l'alphabet d'indice",j
                                    # Alphabet.find(mot[i]) donne l'indice j de la lettre mot[i] qui figure dans l'alphabet

                          On obtient par exemple: 

>>> cas()
Donner un mot bonjour
Pour chaque lettre de ce mot nous voulons avoir son indice dans l'alphabet
la 1 ième lettre de bonjour qui est b est dans l'alphabet d'indice 1
la 2 ième lettre de bonjour qui est o est dans l'alphabet d'indice 14
la 3 ième lettre de bonjour qui est n est dans l'alphabet d'indice 13
la 4 ième lettre de bonjour qui est j est dans l'alphabet d'indice 9
la 5 ième lettre de bonjour qui est o est dans l'alphabet d'indice 14
la 6 ième lettre de bonjour qui est u est dans l'alphabet d'indice 20
la 7 ième lettre de bonjour qui est r est dans l'alphabet d'indice 17

>>>   

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

         EXERCICE 3

          Donner un script qui demande une chaîne puis qui 

         la code suivant le procédé de Jules César.

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

    REPONSE:

              On peut considérer:

 

from random import*

def etude():
             #  Nous voulons coder un mot comme Jules César
           #  Chaque lettre du mot est remplacée par la lettre
      Alphabet="abcdefghijklmnopqrstuvwxyzabc"
                   # On a rajouté abc à la fin de l'alphabet pour pouvoir coder xyz"
      mot=raw_input("Donner un mot  ")
      longueur=len(mot)
      for i in range(longueur):
                              j=Alphabet.find(mot[i])
                                 # j est pour chaque lettre mot[i]de ce mot son indice dans l'alphabet"
                                 # On augment de 3 l'indice j
                              print " "+Alphabet[j+3]

                    Par exemple cela donne:

>>> etude()
Donner un mot  bonjour
Pour chaque lettre de ce mot nous voulons avoir son indice dans l'alphabet
e
r
q
m
r
x
u
>>>

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