Laurentvidal.fr vous aide à trouver des réponses à toutes vos questions grâce à une communauté d'experts passionnés. Obtenez des solutions rapides et fiables à vos questions grâce à des professionnels expérimentés sur notre plateforme de questions-réponses complète. Obtenez des réponses immédiates et fiables à vos questions grâce à une communauté d'experts expérimentés sur notre plateforme.

Bonjour, j’aurais besoin d’aide pour cet exercice Python, je n’y arrive vraiment pas, j’espère que quelqu’un pourra m’aider merci d’avance.

Bonjour Jaurais Besoin Daide Pour Cet Exercice Python Je Ny Arrive Vraiment Pas Jespère Que Quelquun Pourra Maider Merci Davance class=

Sagot :

Bonjour

1) Compléter la fonction

Pour faire cet exercice il faut avoir bien compris tout ce qui a été spécifié ci-dessus.

Ci-joint tu trouveras la fonction complété et je vais ici simplement expliquer chaque ligne.

▌L = [s for s in montexte.lower()]
Ici on créé une liste appelée L qui contiendra toutes les lettres du texte rentré en argument de la fonction (montexte).
L'enseignant-e a choisi de mettre "s for s in" mais on aurait pu mettre "lettre for lettre in" ou "truc for truc in", c'est juste un nom qui fait comprendre à Python qu'on vaut passer sur chaque élément de la phrase (= chaque lettre)
.lower() permet de convertir le texte en minuscules (au cas où).

▌chiffrage = ""

C'est simplement la variable qui servira à stocker le résultat final, le message chiffré.

▌for s in L:

On passe sur chaque "s" (donc chaque lettre) de L (la liste créé plus haut)

▌    if (s != " "):

On vérifie si la lettre traité est différente d'un espace (!= veut dire différent de)

▌        chiffrage = chiffrage + str(ord(s) - N)

On ajoute à la variable chiffrage un nouvel élément qui viendra se coller à l'existant (pour l'instant rien: "").
ord(s) nous permet d'objectif le codage de la lettre et - N permet d'effectuer le "décalage" dont l'énoncé parle, qui sera la clé de déchiffrement.

▌    sinon:
▌        chiffrage = chiffrage + "00"

Comme demandé par l'énoncé, si c'est un espace (donc si la condition if, fixée plus haut, n'est pas respectée), on écrit 00 dans le chiffrage.

▌return chiffrage

On renvoie le message une fois chiffré

2) Chiffrer "avec cesar" clé 30

Si tu as refais le code chez toi tu vois que cela donnera:

678871006971856784

3) Écrire une fonction dechiffrer(chiffrage, N)

/!\ Limité par le nombre de caractère maximum des réponses, je ne peux pas t'expliquer le code ligne par ligne.


Je te l'ai tout de même mis en pièce-jointe mais si tu as besoin des explications : créé un nouveau devoir qui porte uniquement sur cette question et j'y réponds immédiatement.

Je peux tout de même te partager ma réflexion.

Réflexion

On sait que la fonction va recevoir 2 infos:

  • une string contenant des chiffres
  • une clef de déchiffrement.

Sauf que tous les numéros sont collés les uns aux autres, pas par duo ou trio facilement déchiffrables.

Il va donc falloir demander à la fonction de traiter les 2 premiers chiffres, ou les 3 premiers chiffres (Consigne: ca peut aller jusqu'à 122) puis de passer aux 2 ou 3 suivants, etc.

4) Déchiffrer le message, clef 28

Une fois que la fonction a été faite tu peux voir que ca donne:

▌je te salue

Si tu as mal compris quelque chose, les commentaires sont là :)

Bonne soirée !

View image ClementCg
View image ClementCg
View image ClementCg