TD Python ∼ CryptographieListes
Observer et exécuter le programme suivant et dire ce que représente len et ce que permet de faire l'instruction L[i] avec i un entier.
L = [13,-9,9,8,7]
print(len(L))
print(L[0])
print(L[1])
Chaîne de caractères
Observer et exécuter le programme suivant et dire ce que représente len et ce que permet de faire l'instruction mot[i].
mot="underscore"
print(len(mot))
for i in range(0,len(mot)):
print(mot[i])
Code ASCII
Le code ASCII, American Standard Code for Information Interchange est un système de codage qui permet à un ordinateur de stocker et d'afficher les caractères (lettres, chiffres, etc.).
À chaque lettre par exemple correspond un numéro et réciproquement. Voici un programme Python qui permet de connaître le numéro de la lettre a et de connaître le caractère associé au numéro 98 dans le code ASCII.
print(ord('a'))
print(chr(98))
Voici un programme qui permet d'afficher une partie de la table ASCII.
for i in range(32,256):
print(i,chr(i))
Conversion d'une chaîne de caractères en une liste de nombre
Expliquer ce que fait le programme ci-dessous.
mot = "underscore"
L = []
for i in range(0,len(mot)):
L.append(ord(mot[i]))
print(L)
Expliquer l'avantage d'utiliser une fonction à partir de l'exemple suivant.
def l2a(mot):
L = []
for i in range(0,len(mot)):
L.append(ord(mot[i]))
return L
print(l2a("voiture"))
print(l2a("catastrophe"))
print(l2a("Un ours brun sauvage"))
Modification d'une liste de nombres
Expliquer ce que fait le programme suivant.
def l2l(liste):
L = []
for i in range(0,len(liste)):
L.append( 3*liste[i]-5)
return L
print(l2l([0,1,2,3,4]))
Chiffrage d'un message
Le programme suivant permet de chiffrer un message "secret".
def l2a(mot):
L = []
for i in range(0,len(mot)):
L.append(ord(mot[i]))
return L
def l2l(liste):
L = []
for i in range(0,len(liste)):
L.append( 3*liste[i]-5)
return L
def chiffre(mot):
return l2l( l2a(mot) )
print(chiffre("Motus et bouche cousue !"))
Écrire un programme Python permettant de déchiffrer le message :
[190, 91, 313, 286, 322, 286, 310, 340, 91, 319, 298, 340, 91, 331, 337, 298, 322, 310, 298, 337, 340, 91, 94]