2015-01-26 23:06:46 +01:00
|
|
|
|
# PREUD'HOMME Geoffrey
|
|
|
|
|
# BEAUSSART Jean-loup
|
|
|
|
|
# Donné le 27/01/201question(5)
|
|
|
|
|
|
|
|
|
|
# TP2 Anagrammes - Dictionnaires
|
|
|
|
|
|
|
|
|
|
# http://www.fil.univ-lille1.fr/~L1S2API/CoursTP/tp2_dictionnaires.html
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def partie(nom):
|
|
|
|
|
print('\n\n\n###', nom, '###')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def section(nom):
|
|
|
|
|
print('\n\n===', nom, '===')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def question(numero):
|
|
|
|
|
print('\n***', 'Question', numero, '***')
|
|
|
|
|
|
|
|
|
|
|
2015-01-27 10:32:05 +01:00
|
|
|
|
partie('Quelques méthodes sur les listes et les chaînes') # Geoffrey
|
2015-01-26 23:06:46 +01:00
|
|
|
|
|
|
|
|
|
question(1)
|
|
|
|
|
|
|
|
|
|
question(2)
|
|
|
|
|
|
|
|
|
|
question(3)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
section('Méthode split')
|
|
|
|
|
|
|
|
|
|
question(1)
|
|
|
|
|
|
|
|
|
|
question(2)
|
|
|
|
|
|
|
|
|
|
question(3)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
section('Méthode join')
|
|
|
|
|
|
|
|
|
|
question(1)
|
|
|
|
|
|
|
|
|
|
question(2)
|
|
|
|
|
|
|
|
|
|
question(3)
|
|
|
|
|
|
|
|
|
|
question(4)
|
|
|
|
|
|
|
|
|
|
|
2015-01-27 11:02:24 +01:00
|
|
|
|
section('Méthode sort')http://www.fil.univ-lille1.fr/~L1S2API/CoursTP/tp2_dictionnaires.html
|
2015-01-26 23:06:46 +01:00
|
|
|
|
|
|
|
|
|
question(1)
|
|
|
|
|
|
|
|
|
|
question(2)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
section('Une fonction sort pour les chaînes')
|
|
|
|
|
|
|
|
|
|
question(1)
|
|
|
|
|
|
|
|
|
|
|
2015-01-27 10:32:05 +01:00
|
|
|
|
partie('Anagrammes') # Jean-loup
|
2015-01-26 23:06:46 +01:00
|
|
|
|
|
|
|
|
|
question(1)
|
|
|
|
|
|
2015-01-27 11:02:24 +01:00
|
|
|
|
def sont_anagrammes1(chaine1, chaine2):
|
|
|
|
|
""" Prédicat, renvoie True si chaine1 et chaine2 sont des anagrammes, False sinon
|
|
|
|
|
str, str -> bool
|
|
|
|
|
CU: chaine1 et chaine2 sont des str
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
assert(type(chaine1)==str and type(chaine2)==str)
|
|
|
|
|
|
|
|
|
|
if len(chaine1) != len(chaine2): # Si la longueur est différente ca ne peut pas être des anagrammes
|
|
|
|
|
return False
|
|
|
|
|
|
|
|
|
|
l1 = list(chaine1)
|
|
|
|
|
l2 = list(chaine2)
|
|
|
|
|
|
|
|
|
|
l1.sort()
|
|
|
|
|
l2.sort()
|
|
|
|
|
|
|
|
|
|
return l1 == l2
|
|
|
|
|
|
2015-01-26 23:06:46 +01:00
|
|
|
|
question(2)
|
|
|
|
|
|
2015-01-27 11:02:24 +01:00
|
|
|
|
def sont_anagrammes2(chaine1, chaine2):
|
|
|
|
|
""" Prédicat, renvoie True si chaine1 et chaine2 sont des anagrammes, False sinon
|
|
|
|
|
str, str -> bool
|
|
|
|
|
CU: chaine1 et chaine2 sont des str
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
assert(type(chaine1)==str and type(chaine2)==str)
|
|
|
|
|
|
|
|
|
|
if len(chaine1) != len(chaine2): # Si la longueur est différente ca ne peut pas être des anagrammes
|
|
|
|
|
return False
|
|
|
|
|
|
|
|
|
|
occu1 = dict((i,chaine1.count(i)) for i in chaine1)
|
|
|
|
|
occu2 = dict((i,chaine2.count(i)) for i in chaine2)
|
|
|
|
|
|
|
|
|
|
return occu1 == occu2
|
|
|
|
|
|
2015-01-26 23:06:46 +01:00
|
|
|
|
question(3)
|
|
|
|
|
|
2015-01-27 11:02:24 +01:00
|
|
|
|
def sont_anagrammes2(chaine1, chaine2):
|
|
|
|
|
""" Prédicat, renvoie True si chaine1 et chaine2 sont des anagrammes, False sinon
|
|
|
|
|
str, str -> bool
|
|
|
|
|
CU: chaine1 et chaine2 sont des str
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
assert(type(chaine1)==str and type(chaine2)==str)
|
|
|
|
|
|
|
|
|
|
if len(chaine1) != len(chaine2): # Si la longueur est différente ca ne peut pas être des anagrammes
|
|
|
|
|
return False
|
|
|
|
|
|
|
|
|
|
for i in chaine1:
|
|
|
|
|
if chaine1.count(i) != chaine2.count(i):
|
|
|
|
|
return False
|
|
|
|
|
|
|
|
|
|
return True
|
|
|
|
|
|
2015-01-26 23:06:46 +01:00
|
|
|
|
|
|
|
|
|
section('Casse et accentuation')
|
|
|
|
|
|
|
|
|
|
question(1)
|
|
|
|
|
|
|
|
|
|
question(2)
|
|
|
|
|
|
|
|
|
|
question(3)
|
|
|
|
|
|
|
|
|
|
|
2015-01-27 10:32:05 +01:00
|
|
|
|
partie('Recherche d\'anagrammes') # Jean-loup
|
2015-01-26 23:06:46 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
section('Le lexique')
|
|
|
|
|
|
|
|
|
|
question(1)
|
|
|
|
|
|
|
|
|
|
question(2)
|
|
|
|
|
|
|
|
|
|
question(3)
|
|
|
|
|
|
|
|
|
|
question(4)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
section('Anagrammes d’un mot : première méthode')
|
|
|
|
|
|
|
|
|
|
question(1)
|
|
|
|
|
|
|
|
|
|
question(2)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
section('Anagrammes d’un mot : seconde méthode')
|
|
|
|
|
|
|
|
|
|
question(1)
|
|
|
|
|
|
|
|
|
|
question(2)
|
|
|
|
|
|
|
|
|
|
question(3)
|
|
|
|
|
|
|
|
|
|
question(4)
|
|
|
|
|
|
|
|
|
|
question(5)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
section('Comparaison des deux méthodes')
|
|
|
|
|
|
|
|
|
|
question(1)
|
|
|
|
|
|
|
|
|
|
|
2015-01-27 10:32:05 +01:00
|
|
|
|
partie('Phrases d\'anagrammes') # Geoffrey
|
2015-01-26 23:06:46 +01:00
|
|
|
|
|
|
|
|
|
question(1)
|
|
|
|
|
|