2021-11-15 16:41:55 +01:00
{
"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": {},
2026-01-13 09:23:56 +01:00
"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\n1. Qu'affiche le programme suivant ?\n```python\nfruits = {'pommes': 4, 'melons': 3, 'poires': 6, 'clémentines': 16}\nfor c in fruits.keys():\n print(c)\n```\n2. Qu'affiche le programme suivant ?\n```python\nfruits = {'pommes': 4, 'melons': 3, 'poires': 6, 'clémentines': 16}\nfor cle, valeur in fruits.items():\n print(cle, \"->\", valeur)\n```\n3. Qu'affiche le programme suivant ?\n```python\nfruits = {'pommes': 4, 'melons': 3, 'poires': 6, 'clémentines': 16}\nfor v in fruits.values():\n print(v)\n```\n\n4. Qu'affichent les instructions suivantes ? Que peut-on en déduire sur le comportement de `in` avec un dictionnaire ?\n```python\nfruits = {'pommes': 4, 'melons': 3, 'poires': 6, 'clémentines': 16}\nprint('pommes' in fruits)\nprint('bananes' in fruits)\nprint(4 in fruits)\n```"
2021-11-15 16:41:55 +01:00
},
{
"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",
2024-01-25 16:45:26 +01:00
"* Aymeric a 72 ans et est né à Lyon.\n",
2021-11-15 16:41:55 +01:00
"\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
2026-01-13 09:23:56 +01:00
}