In [8]:
def fin_chaine(chaine, longueur):
    """
    chaine -- chaine de caractères
    longueur -- entier naturel 
    précondition: 1 <= longueur <= len(chaine)
    
    renvoie la chaîne constituée des longueur derniers caractères
    de chaine.
    
    >>> fin_chaine("barycentre", 3)
    'tre'
    >>> fin_chaine("intégrale", 1)
    'e'
    """
    lg = len(chaine)
    assert 1 <= longueur <= lg, "Attention, longueur doit être compris entre 1 et len(chaine)."
    fin = ''
    for i in range(lg-longueur, lg):
        fin = fin + chaine[i]
    return fin
In [9]:
fin_chaine("barycentre", 3)
Out[9]:
'tre'
In [10]:
fin_chaine("intégrale", 1)
Out[10]:
'e'
In [16]:
def fin_en(syllabe, liste_mots):
    """
    liste_mots -- liste de chaînes de caractères
    syllabe -- chaîne de caractères
    
    renvoie le nombre de chaînes dans liste_mots terminant par syllabe
    
    >>> fin_en('e', ['abracadabra', 'entourloupe', 'machination', 'escroquerie', 'passe-passe'])
    3
    >>> fin_en('er', ['abracadabra', 'entourloupe', 'machination', 'escroquerie', 'passe-passe'])
    0
    >>> fin_en('er', ['permettre', 'autoriser', 'légitimer', 'accepter', 'tolérer'])
    4
    """
    # longueur de la syllabe:
    lg_syllabe = len(syllabe)
    compteur = 0
    for mot in liste_mots:
        fin_mot = fin_chaine(mot, lg_syllabe)
        if fin_mot == syllabe:
            compteur += 1
    return compteur
In [1]:
mots = ['abracadabra', 'entourloupe', 'machination', 'escroquerie', 'passe-passe']
In [12]:
mots2 = ['permettre', 'autoriser', 'légitimer', 'accepter', 'tolérer']
In [13]:
fin_en('e', mots)
Out[13]:
3
In [14]:
fin_en('er', mots)
Out[14]:
0
In [15]:
fin_en('er', mots2)
Out[15]:
4
In [ ]: