TD Python ∼ Cryptographie Listes 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]