Files
1ereNSI/representation_construits/chapitre_2/td/TD.ipynb
2024-01-25 16:45:26 +01:00

280 lines
7.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"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é à Lyon.\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
}