HOWTO · Python

Compter les syllabes en Python

Ce tutoriel montre comment compter les syllabes en python

Sur cette page

Python permet de compter les lettres voyelles d’un mot ou d’une phrase, mais ce résultat ne fournit qu’une estimation approximative du nombre de syllabes. Les exemples ci-dessous présentent quatre façons de compter les lettres a, e, i, o et u, notamment de normaliser la casse et d’examiner le nombre d’occurrences de chaque voyelle. L’une des méthodes utilise set() pour stocker les voyelles distinctes et vérifier leur présence. Ces exemples ne déterminent pas le nombre de syllabes prononcées.

Compter les lettres voyelles avec une boucle et une instruction if

Une boucle examine chaque caractère, et une instruction if ajoute un au total lorsque ce caractère figure dans la chaîne des voyelles. Appeler casefold() au préalable permet à la même vérification de reconnaître les voyelles anglaises majuscules et minuscules. C’est l’approche la plus directe pour obtenir un total.

Exécutez cet exemple : le code et le résultat affiché sont conservés à l’identique ; le mot d’exemple Beautiful reste en anglais.

word = "Beautiful"
vowels = "aeiou"
count = 0

for letter in word.casefold():
    if letter in vowels:
        count += 1

print(count)
5

Le résultat affiché est cinq lettres voyelles correspondantes. Le u répété est compté deux fois, car la boucle compte les occurrences et non les lettres distinctes.

Compter les voyelles avec une compréhension de dictionnaire

Utilisez un dictionnaire pour obtenir séparément le nombre d’occurrences de chaque voyelle. La compréhension parcourt les voyelles pour créer les clés, puis additionne, pour chaque valeur, les caractères correspondants dans le mot normalisé. Dans la comparaison, la variable doit désigner le caractère du mot ; comparer la clé permet d’obtenir le décompte voulu pour chaque voyelle.

Le code et les libellés ou sorties affichés dans cette section restent en anglais.

word = "Beautiful".casefold()
vowel_counts = {
    vowel: sum(1 for letter in word if letter == vowel)
    for vowel in "aeiou"
}
print(vowel_counts)
{'a': 1, 'e': 1, 'i': 1, 'o': 0, 'u': 2}

Ce dictionnaire indique la fréquence des lettres, et non le nombre de syllabes. Une voyelle sans correspondance reste présente avec la valeur zéro.

Compter les voyelles avec dict.fromkeys()

dict.fromkeys() crée une clé pour chaque voyelle et leur attribue la même valeur initiale. Ici, chaque valeur commence à zéro ; la boucle incrémente ensuite l’entrée correspondant à chaque caractère reconnu. Cette approche est utile pour distinguer clairement les étapes d’initialisation et d’accumulation.

Le code et les libellés ou sorties affichés dans cette section restent en anglais.

word = "Beautiful".casefold()
vowel_counts = dict.fromkeys("aeiou", 0)

for letter in word:
    if letter in vowel_counts:
        vowel_counts[letter] += 1

print(vowel_counts)
{'a': 1, 'e': 1, 'i': 1, 'o': 0, 'u': 2}

Les valeurs du dictionnaire sont des entiers : partager la valeur initiale ne pose donc pas de problème ici. Les clés sont les cinq lettres voyelles minuscules, et leur ordre d’itération suit celui de la chaîne fournie.

Compter les lettres voyelles avec un ensemble et une fonction

Un ensemble permet de vérifier l’appartenance à une collection de voyelles distinctes. Placez la logique dans une fonction pour pouvoir la réutiliser avec d’autres mots. La fonction renvoie un décompte ; l’appelant peut ensuite choisir de l’afficher ou de l’intégrer à un autre traitement.

Le code et les libellés ou sorties affichés dans cette section restent en anglais.

def count_vowel_letters(word):
    vowels = set("aeiou")
    return sum(1 for letter in word.casefold() if letter in vowels)


print(count_vowel_letters("Beautiful"))
5

Même si l’ensemble ne contient chaque voyelle qu’une fois, chaque occurrence correspondante dans le mot contribue une fois au total. Cette version met également les majuscules anglaises en minuscules avant de vérifier leur appartenance à l’ensemble.

Comprendre ce que compte le décompte des voyelles — et ce qu’il ne compte pas

Ces exemples comptent les occurrences des cinq lettres voyelles de base en anglais. Ils ne découpent pas les mots en syllabes prononcées : l’orthographe et la prononciation ne correspondent pas terme à terme, et une lettre voyelle peut être muette ou se combiner avec une autre lettre pour représenter un seul son. Par exemple, le code trouve cinq lettres voyelles dans Beautiful, alors que ce mot compte trois syllabes à l’oral. Cette différence montre pourquoi compter les lettres voyelles ne permet pas de dénombrer les syllabes de façon fiable.

Les exemples utilisent aussi un alphabet volontairement restreint. Ils ne prennent pas en compte les voyelles accentuées, y ni les règles orthographiques propres à chaque langue ; adaptez donc l’ensemble de caractères au texte traité. casefold() normalise la casse, mais ne supprime pas les accents et ne déduit pas la prononciation. Pour obtenir rapidement une estimation approximative sur un texte anglais, ces méthodes sont simples et transparentes. Pour compter de façon fiable les syllabes prononcées, le décompte des lettres voyelles ne suffit pas.