Bonjour à tous et à toute ,
je viens vers vous un peu en dernier recours, cela fait 4h maintant que je suis sur un tp et force de constater que je suis un peu bloqué .
Donc voila , je suis étudiant en première année de Licence Informatique et on as un tp à finir chez nous , le tp s'appelle Anagramme et on nous fait découvrir en entête de celui ci les méthodes split join et sort .
http://www.fil.univ-lille1.fr/~L1S2A...ionnaires.html voici le lien du tp pour ceux qui voudrais le voir de leur propre yeux .
Donc on nous demande gentiment de programmez une fonction sort qui s'appliquerais à une chaîne de caractère .
>>> sort ('timoleon')
'eilmnoot'
Pour cela, vous pourrez utiliser avec profit la fonction de conversion list, la méthode sort des listes et la méthode join des chaînes.
Donc j'ai suivi dans un premier temps les directives en utilisant list sort et join . Bon ici rien de très compliquer même pour un élève moyen comme moi ^^. je l'ai fait en 30 secondes.
voici un screen de mon code .
Et en fait je me suis dit , c'est idiot de programmer sort en utilisant sort. Du coup je me suis dit je vais faire du travail suplémentaire et essayer de programmer la même chose mais sans utiliser sort .
Et la cela fait deux heures que je traîne dessus et la je suis bloqué, je ne comprends pas mon erreur pour moi tout est correct
voila le screen avec les commentaire qui explique ma vision de voir les choses avec une précision sur l'endroit où cela coince .
par avance merci, je vais continuer à chercher en attendant ,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 assert type(x)==str l= list (x) L=[] L+=l[0] i=0 j=0 k=0 while i<=len(l)-1: if ord(l[i+1])>= ord(L[i]): L+=l[i+1] i+=1 print("i=",i) else: while j<len(L): if ord(l[i+1])< ord(L[j]): k=j L.insert(k,l[i+1]) j+=1 else: j+=1 print("j=",j) i+=1 print("i=",i) return "".join(L)
Cordialement
ps : jai changé le elif par else, et notre prof nous interdit d'utiliser break ^^
Partager