{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# TD - Les dictionnaires" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercice 1 - Fruits\n", "\n", "On considère le dictionnaire suivant qui contient différents fruits ainsi que leurs quantités." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "fruits = {\"pommes\": 8, \"melons\": 3, \"poires\": 6}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. Quelle instruction permet d'accéder au nombre de melons ?" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2. On a acheté 16 clémentines et utilisé 4 pommes pour faire une tarte. Quelles instructions permettent de mettre à jour le dictionnaire ?" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercice 2 - Encore des fruits" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Répondez aux questions suivantes __sans exécuter les scripts proposés__. \n", "\n", "_Vous les exécuterez pour vérifier vos réponses._\n", "\n", "1. Qu'affiche le programme suivant ?\n", "```python\n", "fruits = {'pommes': 4, 'melons': 3, 'poires': 6, 'clémentines': 16}\n", "for c in fruits.keys():\n", " print(c)\n", "```\n", "2. Qu'affiche le programme suivant ?\n", "```python\n", "fruits = {'pommes': 4, 'melons': 3, 'poires': 6, 'clémentines': 16}\n", "for cle, valeur in fruits.items():\n", " print(cle, \"->\", valeur)\n", "```\n", "3. Qu'affiche le programme suivant ?\n", "```python\n", "fruits = {'pommes': 4, 'melons': 3, 'poires': 6, 'clémentines': 16}\n", "for v in fruits.values():\n", " print(v)\n", "```" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercice 3 - Agenda\n", "\n", "Dans un agenda, un contact est modélisé par un dictionnaire :\n", "\n", "- La clé du dictionnaire est le nom des contacts. \n", "- La valeur du dictionnaire est un tuple dont la première valeur est leur âge (type int) et la seconde leur ville natale (str).\n", "\n", "Voici une petite liste de contact :\n", "\n", "* Pierre a 37 ans et est né à Lille.\n", "* Zoé a 21 ans et est née à Nice.\n", "* Ali a 54 ans et est né à Bordeaux.\n", "* Aymeric a 72 ans et est né à Nice.\n", "\n", "\n", "1. Définissez le dictionnaire de contacts.\n", "2. Donnez les commandes pour :\n", " 1. accéder à l'âge de Zoé\n", " 2. accéder à la ville natale d'Ali.\n", " 3. décider si 'Jean' est dans le dictionnaire ou pas.\n", "3. Écrire le prédicat `est_present(dic, nom)` qui renvoie `True` si le _nom_ est présent dans le dictionnaire _dic_ e t`False` sinon.\n", "\n", "4. Écrire la fonction `renvoyer_age(dic, nom)` qui, si le _nom_ est présent dans le dictionnaire _dic_, renvoie son âge.\n", "\n", "5. Écrire la fonction `renvoyer_ville(dic, nom)` qui, si le _nom_ est présent dans le dictionnaire _dic_, renvoie sa ville natale.\n", "\n", "6. Écrire la fonction `renvoyer_noms(dic, ville)` qui renvoie un tableau de tous les noms dont la ville de naissance est _ville_.\n", "\n", "7. Écrire la procédure `ajouter(dic, nom, age, ville)` qui, si le _nom_ est n'est pas présent dans le dictionnaire _dic_, l'y ajoute.\n", "\n", "> _Remarques :_\n", ">\n", "> * Documentez les fonction\n", "> * Réalisez les doctests significatifs." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Question 1\n", "\n", "# Question 2.A\n", "\n", "# Question 2.B\n", "\n", "# Question 2.C\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Question 3" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Question 4" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Question 5" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Question 6" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Question 7" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercice 4 - le SCRABBLE\n", "\n", "Voici un descriptif des valeurs des lettres au scrabble français. \n", "\n", "- 0 point : **Joker** ×2 (appelés en français *jokers* ou *lettres blanches*)\n", "- *1 point* : **E** ×15, **A** ×9, **I** ×8, **N** ×6, **O** ×6, **R** ×6, **S** ×6, **T** ×6, **U** ×6, **L** ×5\n", "- *2 points* : **D** ×3, **M** ×3, **G** ×2\n", "- *3 points* : **B** ×2, **C** ×2, **P** ×2\n", "- *4 points* : **F** ×2, **H** ×2, **V** ×2\n", "- *8 points* : **J** ×1, **Q** ×1\n", "- *10 points* : **K** ×1, **W** ×1, **X** ×1, **Y** ×1, **Z** ×1\n", "\n", "\n", "1. Définissez un dictionnaire _score_ qui prend les lettres majuscules en clés et leur score en valeur\n", "2. Écrire une fonction `calculer_score` qui prend une chaîne de caractère _mot_ en paramètre et renvoie le score du mot s'il est possible de l'écrire avec les lettres du scrabble et `None` sinon.\n", "3. Écrire une fonction `calculer_scores` qui prend un tableau de _mots_ et renvoie un tableau de score de chaque mot.\n", "\n", "> _Remarques :_\n", ">\n", "> * Documentez la fonction\n", "> * Réalisez les doctests significatifs.\n", "> * Pour tester vos fonctions, il est possible d'utiliser la liste de mots suivante :\n", "\n", "```python\n", "liste_mots = ['extenue', 'ligner', 'serier', 'delasse', 'doperas', 'drapes', 'gelee', 'doucir', 'lamparo', 'salee', 'gueri', 'mulots', 'trolley', 'houppe', 'hesitez', 'vogues', 'embelli', 'etonnez', 'mers', 'riviere', 'risquer', 'grogner', 'postale', 'beler', 'lofer', 'rincent', 'boni', 'charter', 'censeur', 'glaise','sauts', 'striee', 'perclus', 'dessous', 'tireras', 'gommant', 'cooptes', 'bombyx', 'gauches', 'filiere', 'devoree', 'viriez', 'murit', 'miteux', 'empenne', 'soudez', 'cochers', 'dejoua', 'tuer', 'present']\n", "```" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Question 1" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Question 2" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Question 3" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.7" } }, "nbformat": 4, "nbformat_minor": 2 }