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 ] )
<-- --> |