def f(x):
return (3*x+5)%26
def chiffrement(m):
mcod=""
for 1 in m:
if l!=" ":
mcod+=chr(f(ord(1))+65)
else:
mcod+=1
return mcod
Bonjour, cette fonction python est censée servir pour chiffrer un message grâce au code ASCII (grâce aux fcts ord et chr).
Cependant, il semble contenir une erreur, je n'arrive pas à le faire tourner.
Avez-vous une idée ?
Bonjour,
même pas un "bon sang mais c'est bien sur " ni un merci ??
tu as résolu ou tu sèches ??
à part les évidentes confusions de caractères ( minuscule = l,
majuscule = I et 1 (un)
je l'appelle c le caractère extrait, ça évitera des confusions regrettables
ta formule chr(f(ord(c))+65) n'est pas bonne
prenons un 'A' par exemple, ord('A') renvoie 65, pas 0
et ord('a') va renvoyer 97 !
et si dans mon texte j'ai des accents ? ord('à') = 224 !
(ne parlons même pas de ord('Ǎ') = 461, restons en français)
enfin ne filtrer que les espaces ? et les autres signes de ponctuations ? et les nombres ?
bref ta procédure est presque bonne si on se limite au seul jeu de caractères A-Z espace
rien ne garantit qu'il n'y aura que ça dans le message à coder
et si on code un caractère pas dans ce jeu là le message codé sera indécodable (modulo 26 il ne doit y avoir que 26 caractères dans le jeu)
il faudrait à minima remplacer le if c!=" " par un test que le code est bien dans l'intervalle 'A' ... 'Z'
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :