Morse vers python


#1

Bonjour,

Je dois decoder un message ecrit en morse grace a Python. Mon alphabet morse se presente sous la forne d un dictionnaire et mon message secret sous la forme d une liste.

J ai essaye plusieurs combinaisons pour recuperer les valeurs depuis les cles du dictionnaire, mais je seche.

J’ai essaye d imprimer les cles et les valeurs mais ca ne fonctionne pas :
(list(encodedmess.keys())[list(encodedmess.values())]).

Je pense pourtant que c est la bonne piste, et qu ensuite je dois creer une loop, mais je debute et je ne sais pas bien comment faire,

Pouvez vous m aider ?
Merci !

MORSE_CODE = { ‘A’:’.-’,
‘B’:’-…’,
‘C’:’-.-.’,
‘D’:’-…’,
‘E’:’.’,
‘F’:’…-.’,
‘G’:’–.’,
‘H’:’….’,
‘I’:’…’,
‘J’:’.—’,
‘K’:’-.-’,
‘L’:’.-…’,
‘M’:’–’,
‘N’:’-.’,
‘O’:’—’,
‘P’:’.–.’,
‘Q’:’–.-’,
‘R’:’.-.’,
‘S’:’…’,
‘T’:’-’,
‘U’:’…-’,
‘V’:’…-’,
‘W’:’.–’,
‘X’:’-…-’,
‘Y’:’-.–’,
‘Z’:’–…’,
‘1’:’.----’,
‘2’:’…—’,
‘3’:’…–’,
‘4’:’….-’,
‘5’:’……’,
‘6’:’-….’,
‘7’:’–…’,
‘8’:’—…’,
‘9’:’----.’,
‘0’:’-----’,
‘,’:’–…--’,
‘.’:’.-.-.-’,
‘?’:’…–…’,
’ ‘:’-…-.’,
‘-’:’-….-’,
‘[’:’-.–.’,
‘]’:’-.–.-’}

encodedmess = [’-’, ‘.-.’, ‘-.–’, ‘-…-.’, ‘…-’, ‘…’, ‘.’, ‘-…-.’, ‘-’, ‘….’, ‘…’, ‘…’, ‘-…-.’, ‘.-…’, ‘…’, ‘…’, ‘-’, ‘-…-.’, ‘—’, ‘…-.’, ‘-…-.’, ‘-.’, ‘…-’, ‘–’, ‘-…’, ‘.’, ‘.-.’, ‘…’, ‘-…-.’, ‘…’, ‘-.’, ‘-…-.’, ‘-.–’, ‘.’, ‘…’, ‘-’, ‘.’, ‘.-.’, ‘-…’, ‘.-’, ‘-.–’, ‘…’, ‘-…-.’, ‘.–.’, ‘.-.’, ‘—’, ‘–.’, ‘.-.’, ‘.-’, ‘–’, ‘–…--’, ‘-.–.’, ‘—…’, ‘-----’, ‘–…--’, ‘-…-.’, ‘.----’, ‘.----’, ‘……’, ‘–…--’, ‘-…-.’, ‘.----’, ‘.----’, ‘……’, ‘–…--’, ‘-…-.’, ‘.----’, ‘.----’, ‘.----’, ‘–…--’, ‘-…-.’, ‘----.’, ‘…—’, ‘–…--’, ‘-…-.’, ‘.----’, ‘…—’, ‘.----’, ‘–…--’, ‘-…-.’, ‘.----’, ‘.----’, ‘….-’, ‘–…--’, ‘-…-.’, ‘.----’, ‘-----’, ‘….-’, ‘–…--’, ‘-…-.’, ‘.----’, ‘-----’, ‘……’, ‘–…--’, ‘-…-.’, ‘.----’, ‘.----’, ‘—…’, ‘–…--’, ‘-…-.’, ‘----.’, ‘…—’, ‘–…--’, ‘-…-.’, ‘----.’, ‘----.’, ‘–…--’, ‘-…-.’, ‘.----’, ‘.----’, ‘……’, ‘–…--’, ‘-…-.’, ‘.----’, ‘…—’, ‘.----’, ‘–…--’, ‘-…-.’, ‘.----’, ‘.----’, ‘—…’, ‘–…--’, ‘-…-.’, ‘----.’, ‘…—’, ‘–…--’, ‘-…-.’, ‘.----’, ‘.----’, ‘----.’, ‘–…--’, ‘-…-.’, ‘.----’, ‘-----’, ‘…–’, ‘–…--’, ‘-…-.’, ‘.----’, ‘.----’, ‘—…’, ‘–…--’, ‘-…-.’, ‘.----’, ‘-----’, ‘……’, ‘–…--’, ‘-…-.’, ‘.----’, ‘-----’, ‘……’, ‘–…--’, ‘-…-.’, ‘.----’, ‘.----’, ‘….-’, ‘–…--’, ‘-…-.’, ‘….-’, ‘-….’, ‘–…--’, ‘-…-.’, ‘----.’, ‘…—’, ‘–…--’, ‘-…-.’, ‘–…’, ‘–…’, ‘–…--’, ‘-…-.’, ‘.----’, ‘-----’, ‘-….’, ‘–…--’, ‘-…-.’, ‘----.’, ‘…—’, ‘–…--’, ‘-…-.’, ‘----.’, ‘----.’, ‘–…--’, ‘-…-.’, ‘.----’, ‘.----’, ‘……’, ‘–…--’, ‘-…-.’, ‘.----’, ‘…—’, ‘.----’, ‘–…--’, ‘-…-.’, ‘----.’, ‘…—’, ‘–…--’, ‘-…-.’, ‘.----’, ‘.----’, ‘----.’, ‘–…--’, ‘-…-.’, ‘.----’, ‘.----’, ‘……’, ‘–…--’, ‘-…-.’, ‘.----’, ‘.----’, ‘…—’, ‘–…--’, ‘-…-.’, ‘.----’, ‘…—’, ‘…—’, ‘–…--’, ‘-…-.’, ‘.----’, ‘-----’, ‘……’, ‘–…--’, ‘-…-.’, ‘----.’, ‘…—’, ‘–…--’, ‘-…-.’, ‘.----’, ‘…—’, ‘-----’, ‘–…--’, ‘-…-.’, ‘.----’, ‘-----’, ‘—…’, ‘–…--’, ‘-…-.’, ‘.----’, ‘-----’, ‘----.’, ‘–…--’, ‘-…-.’, ‘.----’, ‘.----’, ‘----.’, ‘–…--’, ‘-…-.’, ‘----.’, ‘…—’, ‘–…--’, ‘-…-.’, ‘.----’, ‘-----’, ‘…—’, ‘–…--’, ‘-…-.’, ‘----.’, ‘----.’, ‘–…--’, ‘-…-.’, ‘----.’, ‘…—’, ‘–…--’, ‘-…-.’, ‘……’, ‘……’, ‘–…--’, ‘-…-.’, ‘.----’, ‘.----’, ‘-….’, ‘–…--’, ‘-…-.’, ‘.----’, ‘.----’, ‘…–’, ‘–…--’, ‘-…-.’, ‘----.’, ‘…—’, ‘–…--’, ‘-…-.’, ‘----.’, ‘.----’, ‘–…--’, ‘-…-.’, ‘.----’, ‘-----’, ‘……’, ‘–…--’, ‘-…-.’, ‘.----’, ‘-----’, ‘….-’, ‘–…--’, ‘-…-.’, ‘.----’, ‘.----’, ‘….-’, ‘–…--’, ‘-…-.’, ‘.----’, ‘-----’, ‘……’, ‘–…--’, ‘-…-.’, ‘.----’, ‘.----’, ‘----.’, ‘–…--’, ‘-…-.’, ‘.----’, ‘-----’, ‘….-’, ‘–…--’, ‘-…-.’, ‘.----’, ‘-----’, ‘.----’, ‘–…--’, ‘-…-.’, ‘----.’, ‘----.’, ‘–…--’, ‘-…-.’, ‘….-’, ‘—…’, ‘–…--’, ‘-…-.’, ‘----.’, ‘…—’, ‘–…--’, ‘-…-.’, ‘----.’, ‘----.’, ‘–…--’, ‘-…-.’, ‘.----’, ‘.----’, ‘……’, ‘–…--’, ‘-…-.’, ‘.----’, ‘…—’, ‘.----’, ‘–…--’, ‘-…-.’, ‘----.’, ‘…—’, ‘–…--’, ‘-…-.’, ‘.----’, ‘…—’, ‘…–’, ‘–…--’, ‘-…-.’, ‘.----’, ‘-----’, ‘----.’, ‘–…--’, ‘-…-.’, ‘.----’, ‘.----’, ‘…—’, ‘–…--’, ‘-…-.’, ‘.----’, ‘.----’, ‘…—’, ‘–…--’, ‘-…-.’, ‘----.’, ‘…—’, ‘–…--’, ‘-…-.’, ‘.----’, ‘-----’, ‘–…’, ‘–…--’, ‘-…-.’, ‘.----’, ‘-----’, ‘……’, ‘–…--’, ‘-…-.’, ‘.----’, ‘…—’, ‘-----’, ‘–…--’, ‘-…-.’, ‘----.’, ‘…—’, ‘–…--’, ‘-…-.’, ‘.----’, ‘…—’, ‘-----’, ‘–…--’, ‘-…-.’, ‘.----’, ‘-----’, ‘—…’, ‘–…--’, ‘-…-.’, ‘.----’, ‘-----’, ‘……’, ‘–…--’, ‘-…-.’, ‘----.’, ‘…—’, ‘–…--’, ‘-…-.’, ‘.----’, ‘.----’, ‘-….’, ‘–…--’, ‘-…-.’, ‘.----’, ‘.----’, ‘—…’, ‘–…--’, ‘-…-.’, ‘.----’, ‘-----’, ‘----.’, ‘–…--’, ‘-…-.’, ‘.----’, ‘-----’, ‘-----’, ‘–…--’, ‘-…-.’, ‘.----’, ‘-----’, ‘……’, ‘-.–.-’]


#2

Bonjour,

On peut éventuellement apporter de l’aide (quand on a les compétences ou des idées sur le sujet), mais pas faire le tout le boulot à ta place.
Quelle version de Python ?
Peux-tu poster ton code ?
Quels sont les messages d’erreur ?

Premier conseil, faire simple pour commencer, un alphabet avec 2 ou trois lettres et un message avec 2 ou 3 caratères à décrypter seulement. Peut être même pour que ce soit plus lisible commencer par décrypter un message avec le code de César.

EDIT: J’allais oublier le plus important le topic sur le liens Pythons

N.B : Dans ton cas, ce serait vraiment plus simple si le dictionnaire était inversé au niveau des clés/valeurs. Exemple : MORSE_CODE = { ’.-’:‘A’,’-…’:‘B’}

A+


#3

Bonjour,

Merci pour la reponse. J ai reussi a inverser les valeurs et les keys, mais je n arrive pas a construire une correspondance pour aller faire correspondre les valeurs de la liste a celle du dictionnaire.

Voici mon code, et j utilise Python 3,

dico_inv ={}
for key in MORSE_CODE_DICT:
item = MORSE_CODE_DICT[key]
dico_inv[item] = key

print(dico_inv)

for dico_inv in encodedmess:
print(values)

Merci


#4

Bonjour,

Pour décrypter le contenu d’une liste, il faut la parcourir avec une boucle for, en affectant une variable portant toujours le même nom à chaque valeur.
Dans cette boucle tu recherche dans le dictionnaire la valeur correspondant à chaque itération.

Le code tient en 2 lignes (après l’inversion du dictionnaire) !

A+