XD blog

blog page

ensae, exercice, programmation, python


2013-12-12 Quelques exercices de préparation à l'examen (2)

On veut écrire une fonction qui compte le nombre de voyelles dans un mot.

def compte_voyelles(mot):
    ...
    return le nombre de voyelles
    
print (compte_voyelles("oui"))  # doit afficher 3
print (compte_voyelles("non"))  # doit afficher 1

Solution proposée

On utilise la fonction de l'article précédent : 2013-12-11_nojs.html.

def est_voyelle(c):
    d = { "a":1, "e":1, "i":1, "o":1, "u":1, "y":1 }
    return d.get(c, 0)
    
def compte_voyelles(mot):
    nb = 0
    for c in mot :
        if est_voyelle(c): nb += 1
    return nb
     
print (compte_voyelles("oui"))  # afficher 3
print (compte_voyelles("non"))  # afficher 1

Comme la fonction est_voyelle retourne un entier. On peut simplifier la fonction précédente :

def compte_voyelles(mot):
    nb = 0
    for c in mot :
        nb += est_voyelle(c)
    return nb

Pour l'écrire de façon agrégée :

def compte_voyelles(mot):
    return sum ( [ est_voyelle(c) for c in mot ] )    

<-- -->

Xavier Dupré