# question 2 def lit_fichier (file) : f = open (file, "r") # ouverture du fichier en mode lecture "r" li = f.readlines () # lecture des lignes du fichier texte f.close () # fermeture du fichier, l'acces est libre pour d'autres applications # on enleve les separateurs de fin de lignes, # caracteres invisibles qui permettent aux editeurs de texte (Scite, Notepad) # de se retrouver dans les lignes res = [] for l in li : s = l.replace ("\n", "") res.append (s) return res # question 3 def compte_A (li) : nb = 0 for l in li : if l [0] == "A" : nb += 1 return nb # question 4 def compte (li, lettre) : nb = 0 for l in li : if l [0] == lettre : nb += 1 return nb # question 5 def compte_toute (li) : alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" res = [] for a in alpha : n = compte (li, a) res.append (n) return res # question 6 def compte_dico (li) : res = { } for l in li : a = l [0] if a in res : res [a] += 1 else : res [a] = 1 return res lis = lit_fichier ("td_note_texte.txt") a = compte_A (lis) print a # donne 65 a = compte (lis, "A") print a # donne 65 all = compte_toute (lis) print len (all), all # affiche 26 [65, 16, 69, 46, 53, 39, ... res = compte_dico (lis) print res # {'A': 65, 'C': 69, 'B': 16, 'E': 53, ... # question 7 """ cout fonction compte_toute : 26 * cout fonction compte = 26 * longueur de la liste cout fonction compte_dico : longueur de la liste * cout recherche dichotomique = longueur de la liste * ln(26)/len(2) """ # question 8 def compte_8 (li) : res = [ ] nb = 1 le = li [0][0] for i in range (1, len (li)) : if li [i][0] != li [i-1][0] : res.append ( (le, nb) ) nb = 1 le = li [i][0] else : nb += 1 res.append ( (le, nb) ) return res res = compte_8 (lis) print res # [('A', 65), ('B', 16), ('C', 69), ('D', 46), ('...