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
fin_chaine("barycentre", 3)
fin_chaine("intégrale", 1)
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
mots = ['abracadabra', 'entourloupe', 'machination', 'escroquerie', 'passe-passe']
mots2 = ['permettre', 'autoriser', 'légitimer', 'accepter', 'tolérer']
fin_en('e', mots)
fin_en('er', mots)
fin_en('er', mots2)