def encoder(phrase: str)-> str:
    """
    traduit un texte en majuscules en Morse
    avec un triple espace entre chaque lettre
    et un esperluète entre chaque mot.
    """
    phrase_codee = ""
    debut_mot = True         # booléen qui sert à gérer l'ajout d'un triple espace entre deux caractères.
    for lettre in phrase:
        if debut_mot:        # cas d'une première lettre d'un mot
            phrase_codee = phrase_codee  + ...
            debut_mot = False
        else:
            if lettre ==" ": # cas d'un espace séparant deux mots
                phrase_codee = ...
                debut_mot = True
            else:            # cas d'une lettre majuscule
                phrase_codee = phrase_codee  + ...
    return phrase_codee

def dico_inverse(dico_morse)-> dict:
    """
    retourne un dictionnaire 
    dont les clés sont des caractères morses 
    et les valeurs sont les lettres associées
    """
    dico_inv = {}
    for ...:
        ...
    return dico_inv

def decoder(code:str)->str:
    """
    code est une chaîne de caractères formés d'éléments du code Morse.
    La fonction renvoie sous forme de chaîne de caractères le texte décodé correspondant à l'argument saisi.
    """
    morse_dico = dico_inverse(dico_morse)
    decode = ""
    liste_mots = code.split("&")  # permet d'obtenir dans liste_mots la liste des mots de la phrase code.
    for elt in liste_mots:
        liste_lettres = elt.split("   ") # permet d'obtenir dans liste_lettres la liste des lettres du mot elt.
        for lettre in liste_lettres:
            if lettre != '':
                decode = decode + morse_dico[lettre]
        decode = decode + ...
    return decode