Programme occurences.py


# 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), ('...
    


créé avec py2html version:0.62