Section accents et casse, questions 1,2 et 3
This commit is contained in:
parent
00c1ef23a2
commit
adca0b9bb5
|
@ -188,7 +188,7 @@ def sont_anagrammes2(chaine1, chaine2):
|
||||||
|
|
||||||
question(3)
|
question(3)
|
||||||
|
|
||||||
def sont_anagrammes2(chaine1, chaine2):
|
def sont_anagrammes3(chaine1, chaine2):
|
||||||
""" Prédicat, renvoie True si chaine1 et chaine2 sont des anagrammes, False sinon
|
""" Prédicat, renvoie True si chaine1 et chaine2 sont des anagrammes, False sinon
|
||||||
str, str -> bool
|
str, str -> bool
|
||||||
CU: chaine1 et chaine2 sont des str
|
CU: chaine1 et chaine2 sont des str
|
||||||
|
@ -210,10 +210,48 @@ section('Casse et accentuation')
|
||||||
|
|
||||||
question(1)
|
question(1)
|
||||||
|
|
||||||
|
EQUIV_NON_ACCENTUE = {'é':'e', 'è':'e', 'à':'a', 'ç':'c', 'ï':'i', 'î':'i', 'ô':'o', 'ë':'e', 'ê':'e', 'â':'a', 'û':'u'}
|
||||||
|
|
||||||
question(2)
|
question(2)
|
||||||
|
|
||||||
|
def bas_casse_sans_accent(chaine):
|
||||||
|
""" str -> str, renvoie une chaine qui est l'équivalent non accentuée et minuscule de la chaine passée en paramètre
|
||||||
|
CU: chaine est un str
|
||||||
|
"""
|
||||||
|
|
||||||
|
assert(type(chaine)==str)
|
||||||
|
|
||||||
|
chaineCpy=chaine.lower()
|
||||||
|
|
||||||
|
ret = ""
|
||||||
|
|
||||||
|
for i in chaineCpy:
|
||||||
|
if i in EQUIV_NON_ACCENTUE:
|
||||||
|
ret += EQUIV_NON_ACCENTUE[i]
|
||||||
|
else:
|
||||||
|
ret += i
|
||||||
|
|
||||||
|
return ret
|
||||||
|
|
||||||
question(3)
|
question(3)
|
||||||
|
|
||||||
|
def sont_anagrammes_sans_casse_ni_accent(chaine1, chaine2):
|
||||||
|
""" Prédicat, renvoie True si chaine1 et chaine2 sont des anagrammes, False sinon, ne tient pas compte de la casse ou des accents
|
||||||
|
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
|
||||||
|
|
||||||
|
chaine1Cpy = bas_casse_sans_accent(chaine1)
|
||||||
|
chaine2Cpy = bas_casse_sans_accent(chaine2)
|
||||||
|
|
||||||
|
return sont_anagrammes2(chaine1Cpy, chaine2Cpy)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
partie('Recherche d\'anagrammes') # Jean-loup
|
partie('Recherche d\'anagrammes') # Jean-loup
|
||||||
|
|
||||||
|
|
Reference in a new issue