Décryptage python

Bonjour,

Pour mon cours d'informatique, je dois modifier ce programme pour pouvoir décrypter un message:

message="cettematinéed’hiverestparticulièrementensoleillée"
n=len(message)
listk=[4,0,2,6,1,3,5]
maxi=len(listk)
for k in listk:
p=0
while k+p*maxi<=n-1:
print(message[k+p*maxi],end="")
p=p+1

Je sais qu'il faut commencer par la fin mais je ne vois absolument pas comment faire.

Merci d'avance.

3 réponses

  1. Bonjour,

    Pour les balises de code, tu n'as pas tout lu
    Visuellement, ça doit ressembler à ceci (avec la coloration syntaxique) :

    def test():
        print('test')
    
    test()
    
    1. Bonjour,

      Merci pour votre réponse. J'ai bien compris ce que fais le programme.

      <code>message="soleil"
      n=len(message)
      listk=[2, 0, 1]
      maxi=len(listk)
      for k in listk:
          p=0
          while k+p*maxi<=n-1:
              print(message[k+p*maxi],end="")
              p=p+1
      </code>

      le k+p*maxi consiste à prendre le premier chiffre de la clé+ p (un compteur qui commence à 0) x la longueur de la liste :
      on numérote le message de 0 à 5

      S O L E I L
      0 1 2 3 4 5

      2+ 0x3 = 2 -> L
      2+ 1x3 = 4 -> L on arrive à la fin du message donc on change de chiffre dans la clé : 0
      0+ 0x3 = 0 -> S
      0+ 1x3 = 3 -> E on est à la fin du message donc on passe à 1
      1+ 0x3 = 1 -> O
      1+ 1x3 = 4 -> I

      On obtient: LLSEOI

      J'arrive à crypter et décryter le message à la mais, mais je ne vois pas trop comment le mettre dans le programme.
      1. Contributeur
        le point de départ, avant de programmer le programme de décryptage, est de parfaitement comprendre ce qu'il faut faire pour décrypter.