Sans les voyelles

Contexte

Les chaines de caractères sont constituées de différentes familles de caractères. Dans les langues latines : les consonnes, les voyelles, les caractères accentués. On traitera ici les deux premières. Pour ne garder que l’essentiel de la démarche, on ne traite pas ici le cas des lettres accentuées.

Environnement de travail

Pour cet exercice, vous devez utiliser en priorité le fichier squelette ex05-voyelles.py. IMPORTANT : Enregistrez le avec Right Click + Save Link As... pour conserver l’encodage.

Selon la convention de structuration des modules, ce fichier sera structuré en quatre parties :

  1. Imports et définition des variables globales ;
  2. Définition des fonctions secondaires ;
  3. Définition de la fonction principale ;
  4. Appel protégé de la fonction principale.

Objectifs

L’objectif est d’écrire la fonction récursive remove_vowels_rec().

On portera attention :

Vérifier le bon fonctionnement de la fonction en effectuant un appel depuis main() et en affichant la valeur de retour (les doctests de la fonction donnent des exemples d’appel et les valeurs de retour correspondantes).

Informations complémentaires

L’algorithme itératif réalisant la même opération est implémenté dans la fonction remove_vowels_it() :

    def remove_vowels_it(s):
        out = ""
        for c in s:
            if c in "aeiouy": continue
            out += c
        return out

Doctests

Une fois la fonction opérationnelle pour quelques arguments, ET SEULEMENT DANS CE CAS, lancer les doctests dans un terminal:

$ python -m doctest ex05_voyelles.py -v

La totalité des doctests doivent réussir.