Salut.
Je débute en Python et j'ai un problème avec cet exercice :
"I.Écrivez un script qui crée un mini-système de base de données fonctionnant à l'aide d'un dictionnaire, dans lequel vous mémoriserez les noms d'une série de copains, leur âge et leur taille. Votre script devra comporter deux fonctions : la première pour le remplissage du dictionnaire, et la seconde pour sa consultation. Dans la fonction de remplissage, utilisez une boucle pour accepter les données entrées par l'utilisateur.
Dans le dictionnaire, le nom de l'élève servira de clé d'accès, et les valeurs seront constituées de tuples (âge, taille), dans lesquels l'âge sera exprimé en années (donnée de type entier), et la taille en mètres (donnée de type réel).
II.Complétez l'exercice (mini-système de base de données) en lui ajoutant deux fonctions : l'une pour enregistrer le dictionnaire résultant dans un fichier texte, et l'autre pour reconstituer ce dictionnaire à partir du fichier correspondant.
Chaque ligne de votre fichier texte correspondra à un élément du dictionnaire. Elle sera formatée de manière à bien séparer :
- la clé et la valeur (c'est-à-dire le nom de la personne, d'une part, et l'ensemble : « âge + taille », d'autre part ;
- dans l'ensemble « âge + taille », ces deux données numériques.
Vous utiliserez donc deux caractères séparateurs différents, par exemple « @ » pour séparer la clé et la valeur, et « # » pour séparer les données constituant cette valeur :
Juliette@18#1.67
Jean-Pierre@17#1.78
Delphine@19#1.71
Anne-Marie@17#1.63etc."
Pour la première partie c'est fait, mais avec la deuxième je rencontre un petit problème... Voici mon code:
http://pastebin.com/8HCFw7sm
J'arrive à enregistrer les données (ils sont bien là dans le fichier) mais quand j'essaie de les consulter j'ai un bug. Parfois ça marche pas, j'ai une IndexError dans la ligne '
1
L2=L1[1].split('#')
Et je ne comprends pas pourquoi, vu que la liste L1 est de la forme [NOM,AGE#TAILLE], donc pourquoi je peux pas couper la deuxième partie en âge et taille ?
... Et parfois j'arrive à consulter que quelques noms noms (on me renvoie que les autres n'existent pas).
Quelqu'un pourrait m'aider ? Merci d'avance. 