TP2 Méthode sort
This commit is contained in:
parent
00c1ef23a2
commit
f8f2507ded
|
@ -21,6 +21,8 @@ def question(numero):
|
|||
|
||||
partie('Quelques méthodes sur les listes et les chaînes') # Geoffrey
|
||||
|
||||
# TODO fonction → méthode
|
||||
|
||||
section('Méthode split')
|
||||
|
||||
question(1)
|
||||
|
@ -133,12 +135,40 @@ def join(chaine, sequence):
|
|||
print(">>> join('.', ['raymond', 'calbuth', 'ronchin', 'fr'])")
|
||||
print(join('.', ['raymond', 'calbuth', 'ronchin', 'fr']))
|
||||
|
||||
section('Méthode sort')http://www.fil.univ-lille1.fr/~L1S2API/CoursTP/tp2_dictionnaires.html
|
||||
section('Méthode sort')
|
||||
|
||||
question(1)
|
||||
|
||||
# TODO utf-8
|
||||
# TODO en print
|
||||
|
||||
##>>> l = list ('timoleon')
|
||||
##>>> l.sort()
|
||||
##>>> l
|
||||
##['e', 'i', 'l', 'm', 'n', 'o', 'o', 't']
|
||||
|
||||
print('La méthode sort semble trier les lettres par ordre alphabétique')
|
||||
|
||||
##>>> s = "Je n'ai jamais joué de flûte."
|
||||
##>>> l = list (s)
|
||||
##>>> l.sort()
|
||||
##>>> l
|
||||
##[' ', ' ', ' ', ' ', ' ', "'", '.', 'J', 'a', 'a', 'a', 'd', 'e', 'e', 'e', 'f', 'i', 'i', 'j', 'j', 'l', 'm', 'n', 'o', 's', 't', 'u', '\xa9', '\xbb', '\xc3', '\xc3']
|
||||
|
||||
print('La méthode sort trie aussi les caractères spéciaux : ponctuation au début, accents à la fin')
|
||||
|
||||
print('Il semblerait que la fonction sort trie les caractères de s selon l\'ordre croissant de leur numéro de code ASCII (ou tout encodage utilisé)')
|
||||
|
||||
question(2)
|
||||
|
||||
# TODO en print
|
||||
|
||||
##>>> l = ['a', 1]
|
||||
##>>> l.sort()
|
||||
##>>> l
|
||||
##[1, 'a']
|
||||
|
||||
print('On remarque que 1 se place avant \'a\'. Si nous étions correct dans la question précédente, les éléments de liste sont triés selon leur valeur, ou leur numéro de code pour les caractères. \'a\' ayant pour numéro de code 97 (`ord(\'a\') == 97`), et 1 < 97, il est normal qu\'il se retrouve après le 1.')
|
||||
|
||||
section('Une fonction sort pour les chaînes')
|
||||
|
||||
|
@ -149,62 +179,10 @@ partie('Anagrammes') # Jean-loup
|
|||
|
||||
question(1)
|
||||
|
||||
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
|
||||
|
||||
question(2)
|
||||
|
||||
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
|
||||
|
||||
question(3)
|
||||
|
||||
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
|
||||
|
||||
|
||||
section('Casse et accentuation')
|
||||
|
||||
|
|
Reference in a new issue