Inscription / Connexion Nouveau Sujet
Niveau terminale
Partager :

Python - fonction de chiffrement

Posté par
remyTPN
08-04-21 à 13:26

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 ?

Posté par
alb12
re : Python - fonction de chiffrement 08-04-21 à 13:56

salut,
revoir les lignes 6 et 8

Posté par
mathafou Moderateur
re : Python - fonction de chiffrement 09-04-21 à 08:37

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 (L minuscule = l, i 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'

Posté par
alb12
re : Python - fonction de chiffrement 09-04-21 à 10:59

on peut aussi poser à remyTPN la question suivante:
Où as tu trouve ce code ?



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1675 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !