Pour aller plus loin

Création d'un annuaire

Par peur de perdre ses contacts, par exemple en cassant son téléphone, Alice a décidé de les sauvegarder sur son ordinateur.

Pour cela, elle pense utiliser un programme Python.

En plus de les sauvegarder, cela lui permettra aussi de les utiliser plus facilement.

Nous allons donc l'aider à écrire son programme.

Question

Tout d'abord, Alice doit choisir quelle structure de donnée elle va utiliser.

Au vu de vos connaissances, proposez une structure de données qui permet de stocker le nom et le numéro de téléphone des contacts.

Justifiez vos choix.

Question

Pour stocker ses contacts, Alice a besoin de pouvoir ajouter un·e ami·e dans son annuaire.

Écrivez une fonction ajout qui :

  • prend en paramètre :

    • annuaire : votre structure

    • nom : une string

    • numero : un entier ou une string (à votre convenance)

  • ajoute le couple nom, numero dans l'annuaire.

Question

Supposons qu'Alice a déjà 20 contacts dans son annuaire, combien d'opération va effectuer votre fonction ajout ?

Question

Maintenant qu'Alice a son annuaire, elle souhaite pouvoir rechercher le numéro d'un·e ami·e à partir de son nom.

Écrivez une fonction recherche qui :

  • prend en paramètre :

    • annuaire : votre structure

    • nom : une string

  • retourne le numéro de téléphone de l'ami·e s'iel existe et None sinon

Question

Supposons que l'annuaire d'Alice contient 20 contacts et que l'on cherche un contact qui n'existe pas.

Combien d'opération va effectuer votre fonction recherche ?

Question

Alice peut désormais vérifier si un·e ami·e est dans son annuaire. Elle souhaite donc que sa fonction ajout n’insère son ami·e que s'iel n'existe pas encore.

Modifiez votre fonction ajout en conséquence. Elle retournera désormais un booléen représentant si oui ou non, l'ami·e a été ajouté·e dans l'annuaire.

Question

Supposons que l'annuaire d'Alice contient 20 contacts et que l'on ajoute un contact qui n'existe pas.

Combien d'opération va effectuer votre fonction ajout ?

Question

Alice est déçue de la complexité (le nombre d'opération) de ses fonctions. Elle se dit qu'elle pourrait faire un système qui fonctionne plus vite.

Proposez un moyen d'obtenir des complexités plus intéressantes.