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
>>>
---------------------------------------------------------------------------