On a découvert de vieilles archives au sein de la bibliothèque, de nombreux manuscrits écrits dans diverses langues. On souhaite étudier plus en détail ces manuscrits mais comme tous les bibliothécaires ne parlent pas toutes ces langues, il faut d’abord déterminer la langue pour pouvoir choisir le bon bibliothécaire.
Pour déterminer la langue de manière automatique, un des bibliothécaires vous propose de déterminer la lettre la plus fréquente dans chaque texte, mais vous savez que cette technique n’est pas assez précise pour donner de bon résultats.
Vous décidez donc plutôt de regarder à quelles fréquences apparaissent chacune des lettres de l’alphabet.
La ligne de texte contient moins de 10 000 caractères.
Une seule ligne de texte, ne contenant pas de lettres accentuées, mais pouvant contenir des signes de ponctuation ou des chiffres.
Pour chacune des lettres de l’alphabet, il faut afficher, sur une ligne, sa fréquence d’apparition dans le texte définie comme le nombre de fois où la lettre est présente, divisé par le nombre total de lettres du texte (et pas le nombre total de caractères).
entrée :
Le francais est une langue romane, de la famille des langues indo-europeennes.
sortie :
0.109375 0.000000 0.015625 0.046875 0.203125 0.031250 0.031250 0.000000 0.046875 0.000000 0.000000 0.093750 0.031250 0.125000 0.046875 0.015625 0.000000 0.046875 0.078125 0.015625 0.062500 0.000000 0.000000 0.000000 0.000000 0.000000
def main(): effectifs = [0] * 26 ligne = input().lower() for lettre in ligne: if 'a' <= lettre <= 'z': effectifs[ord(lettre) - ord('a')] += 1 effectif_total = sum(effectifs) for nb in effectifs: print(nb / effectif_total) main()
for nb in effectifs: print(nb / effectif_total)
Remplace avantageusement :
for i_effectif in range(len(effectifs)): print(effectifs[i_effectif] / effectif_total)