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())]).
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 = ['-', '.-.', '-.--', '-..-.', '..-', '…', '.', '-..-.', '-', '….', '..', '…', '-..-.', '.-..', '..', '…', '-', '-..-.', '---', '..-.', '-..-.', '-.', '..-', '--', '-…', '.', '.-.', '…', '-..-.', '..', '-.', '-..-.', '-.--', '.', '…', '-', '.', '.-.', '-..', '.-', '-.--', '…', '-..-.', '.--.', '.-.', '---', '--.', '.-.', '.-', '--', '--..--', '-.--.', '---..', '-----', '--..--', '-..-.', '.----', '.----', '…..', '--..--', '-..-.', '.----', '.----', '…..', '--..--', '-..-.', '.----', '.----', '.----', '--..--', '-..-.', '----.', '..---', '--..--', '-..-.', '.----', '..---', '.----', '--..--', '-..-.', '.----', '.----', '….-', '--..--', '-..-.', '.----', '-----', '….-', '--..--', '-..-.', '.----', '-----', '…..', '--..--', '-..-.', '.----', '.----', '---..', '--..--', '-..-.', '----.', '..---', '--..--', '-..-.', '----.', '----.', '--..--', '-..-.', '.----', '.----', '…..', '--..--', '-..-.', '.----', '..---', '.----', '--..--', '-..-.', '.----', '.----', '---..', '--..--', '-..-.', '----.', '..---', '--..--', '-..-.', '.----', '.----', '----.', '--..--', '-..-.', '.----', '-----', '…--', '--..--', '-..-.', '.----', '.----', '---..', '--..--', '-..-.', '.----', '-----', '…..', '--..--', '-..-.', '.----', '-----', '…..', '--..--', '-..-.', '.----', '.----', '….-', '--..--', '-..-.', '….-', '-….', '--..--', '-..-.', '----.', '..---', '--..--', '-..-.', '--…', '--…', '--..--', '-..-.', '.----', '-----', '-….', '--..--', '-..-.', '----.', '..---', '--..--', '-..-.', '----.', '----.', '--..--', '-..-.', '.----', '.----', '…..', '--..--', '-..-.', '.----', '..---', '.----', '--..--', '-..-.', '----.', '..---', '--..--', '-..-.', '.----', '.----', '----.', '--..--', '-..-.', '.----', '.----', '…..', '--..--', '-..-.', '.----', '.----', '..---', '--..--', '-..-.', '.----', '..---', '..---', '--..--', '-..-.', '.----', '-----', '…..', '--..--', '-..-.', '----.', '..---', '--..--', '-..-.', '.----', '..---', '-----', '--..--', '-..-.', '.----', '-----', '---..', '--..--', '-..-.', '.----', '-----', '----.', '--..--', '-..-.', '.----', '.----', '----.', '--..--', '-..-.', '----.', '..---', '--..--', '-..-.', '.----', '-----', '..---', '--..--', '-..-.', '----.', '----.', '--..--', '-..-.', '----.', '..---', '--..--', '-..-.', '…..', '…..', '--..--', '-..-.', '.----', '.----', '-….', '--..--', '-..-.', '.----', '.----', '…--', '--..--', '-..-.', '----.', '..---', '--..--', '-..-.', '----.', '.----', '--..--', '-..-.', '.----', '-----', '…..', '--..--', '-..-.', '.----', '-----', '….-', '--..--', '-..-.', '.----', '.----', '….-', '--..--', '-..-.', '.----', '-----', '…..', '--..--', '-..-.', '.----', '.----', '----.', '--..--', '-..-.', '.----', '-----', '….-', '--..--', '-..-.', '.----', '-----', '.----', '--..--', '-..-.', '----.', '----.', '--..--', '-..-.', '….-', '---..', '--..--', '-..-.', '----.', '..---', '--..--', '-..-.', '----.', '----.', '--..--', '-..-.', '.----', '.----', '…..', '--..--', '-..-.', '.----', '..---', '.----', '--..--', '-..-.', '----.', '..---', '--..--', '-..-.', '.----', '..---', '…--', '--..--', '-..-.', '.----', '-----', '----.', '--..--', '-..-.', '.----', '.----', '..---', '--..--', '-..-.', '.----', '.----', '..---', '--..--', '-..-.', '----.', '..---', '--..--', '-..-.', '.----', '-----', '--…', '--..--', '-..-.', '.----', '-----', '…..', '--..--', '-..-.', '.----', '..---', '-----', '--..--', '-..-.', '----.', '..---', '--..--', '-..-.', '.----', '..---', '-----', '--..--', '-..-.', '.----', '-----', '---..', '--..--', '-..-.', '.----', '-----', '…..', '--..--', '-..-.', '----.', '..---', '--..--', '-..-.', '.----', '.----', '-….', '--..--', '-..-.', '.----', '.----', '---..', '--..--', '-..-.', '.----', '-----', '----.', '--..--', '-..-.', '.----', '-----', '-----', '--..--', '-..-.', '.----', '-----', '…..', '-.--.-']
# Pour commencer
Posté par lolop (site web personnel) . Évalué à 3.
(on ne vas pas coder l'exercice pour toi…)
Tu as une liste de codes morse, pour trouver la correspondance il faut que tu aies un mapping code morse → alphabet. Donc il faut le construire à partir du mapping alphabet → code morse que tu as déjà.
Ensuite, il va falloir que tu appliques la transformation code morse vers alphabet pour chacun des codes de ta liste, ce qui implique une boucle ou une liste en compréhension (qui est une boucle).
Après, une fois que tu auras la liste des caractères alphabétiques du message, zieute la méthode join() des chaînes.
Bon exercice.
Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN
[^] # Re: Pour commencer
Posté par helpneeded1 . Évalué à 1.
Hello et merci pour la reponse. Voici ce que j ai essaye de faire sur vos conseils :
dico_inv ={}
for key in MORSE_CODE_DICT:
item = MORSE_CODE_DICT[key]
dico_inv[item] = key
print(dico_inv)
for key in (encodedmess):
print(list(encodedmess.keys())[list(encodedmess.values())])
Ca permet bien de trouver la correspondance, mais la derniere partie ne fait pas la traduction :/
[^] # Re: Pour commencer
Posté par gaaaaaAab . Évalué à 2.
pour poster du code, essaie d'utiliser les balises décrites dans l'aider mémoire en dessous de la boite de rédaction. Pour ton code, la partie de création d'un nouveau dictionnaire m'a l'air correcte
la suite, par contre, ça coince. Regarde ce que donne le code suivant:
ce n'est probablement pas ce que tu voulais faire. encodedmess est déjà une liste.
Et ta ligne de print, je n'ai pas regardé dans le détail, mais le fait que tu n'utilises pas dico_inv que tu viens de créer est un bon indice que c'est probablement pas ça.
# Solution
Posté par mxt . Évalué à 5.
Voici la solution (il manque des caractères dans l'alphabet morse proposé)
["'", "'", '.-.-.-', '.---', '---', '..', '-.', '(', '-.--.', '-..', '..', '-.-.', '-', '(', '-.--.', '(', '-.-.', '-.--.', '--..', '-.--.-', '--..--', '--..', ')', '-..-.', '..-.', '---', '.-.', '-..-.', '--..', '-..-.', '..', '-.', '-..-.', '--', '---', '.-.', '…', '.', '_', '-.-.', '---', '-..', '.', '-.--.-', ')', '-.--.', '-..-', '-.--.-', '-..-.', '..-.', '---', '.-.', '-..-.', '-..-', '-..-.', '..', '-.', '-..-.', '.', '-.', '-.-.', '---', '-..', '.', '-..', '--', '.', '…', '…', '-.--.-', ')']
[^] # Re: Solution
Posté par gaaaaaAab . Évalué à 3.
list comprehension et dict comprehension, du bon python comme on aime :)
En dehors des problèmes de majuscules/minuscules, un petit bug quand même, il faut remplacer C[Z] par MORSE_CODE[Z]
[^] # Re: Solution
Posté par Hotshot92 . Évalué à 1.
Bonjour,
créer le dictionnaire pour chaque évaluation d'un code Morse, c'est payer un peu cher.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.