On considère un texte donné.
Le but de cette activité est de créer un programme qui donne la fréquence d’apparition dans ce texte de chaque lettre de l’alphabet.
I. Fonctions annexes
- Créer une fonction
somme
prenant une liste de nombres en paramètre et retournant la somme de ces nombres. - Créer une fonction
frequence
prenant une liste de nombres en paramètre et retournant une liste composée du quotient de chaque nombre par la somme des nombres. -
Créer la fonction qui enlève les accents en écrivant:
import unicodedata def enleveAccents(texte): texteFinal = ''.join((c for c in unicodedata.normalize('NFD', texte) if unicodedata.category(c) != 'Mn')) return texteFinal
- Créer une fonction
occurenceLettre
qui prend en paramètre une chaîne de caractèrestexte
et un caractèrecaract
. Cette fonction retourne le nombre d’occurence de ce caractère dans la chaîne de caractères.
II. La fonction principale
- Créer une fonction nommée
frequenceTexte
ayant pour paramètre une chaîne de caractèrestexte
. - Dans cette fonction, créer une liste
alphabet
des caractères représentant les lettres de l’alphabet écrites en minuscules. - Créer la variable
minuscule
dont la valeur est le texte écrit en minuscules. - Créer la variable
texte_a_etudier
dont la valeur est le texte écrit en minuscules et sans accents. - Créer une variable
listeOccurences
dont la valeur est la liste des 26 nombres d’occurences dans le texte correspondant au 26 lettres de l’alphabet. - Créer la variable
res
dont la valeur est la liste des 26 fréquences d’apparition dans le texte des lettres de l’alphabet. - Finir la fonction.
III. Fonction affichage
Créer la fonction d’affichage des fréquences en tapant:
def affichage(texte):
alphabet=["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n",
"o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y" ,"z"]
freq=frequenceTexte(texte)
for i in range(len(alphabet)):
print("La fréquence d'apparition de la lettre "+alphabet[i]+" est "+str(freq[i])+".")