Décryptage python

Fermé
pauline20105 - Modifié le 19 mai 2021 à 21:59
yg_be Messages postés 22729 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 - 28 mai 2021 à 16:45
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

Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
28 mai 2021 à 13:19
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
yg_be Messages postés 22729 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
20 mai 2021 à 09:07
bonjour,
le point de départ, avant de programmer, est de parfaitement comprendre ce que le programme doit faire.
tiens aussi compte de ces deux éléments:
https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
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.
0
yg_be Messages postés 22729 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
28 mai 2021 à 16:45
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.
0