diff --git a/representation_construits/chapitre_2/README.md b/representation_construits/chapitre_2/README.md index 1f0ca31..3d5c220 100644 --- a/representation_construits/chapitre_2/README.md +++ b/representation_construits/chapitre_2/README.md @@ -23,7 +23,7 @@ Les dictionnaires sont des conteneurs, comme les listes et tuples, vus précéde Par contre, contrairement aux types de conteneurs précédémment étudiés, on ne peut pas accéder au contenu d'un dictionnaire à l'aide d'un indice : un dictionnaire n'est pas une séquence. -Si on peut bien modifier les valeurs dans un dictionnaire, chaque clé est *unique et non mutable*. Elle peut être une chaîne de caractères, un nombre, un tuple de nombres... +Si on peut bien modifier les valeurs dans un dictionnaire, chaque clé est *unique et non mutable*. Elle peut être une chaîne de caractères, un nombre, un tuple de nombres... On dit que les clés doivent être **hashables** : c'est pourquoi une liste, qui est mutable, ne peut pas servir de clé. Enfin, les valeurs, quant à elles, peuvent être quelconques. @@ -56,6 +56,17 @@ perso["taille"] KeyError "taille" ``` +Pour éviter cette erreur lorsqu'on n'est pas sûr que la clé existe, on peut utiliser la méthode ***get()*** qui renvoie une valeur par défaut si la clé n'existe pas : + +```python +perso.get("prenom", "Inconnu") +'Bilbo' +perso.get("taille", 0) +0 +``` + +Le premier argument est la clé recherchée, le second est la valeur renvoyée si la clé n'existe pas. Cette méthode est très utile pour éviter les erreurs `KeyError`. + Tout comme les listes, on peut utiliser la fonction ***len*** pour connaître le nombre de couples stockés. ```python diff --git a/representation_construits/chapitre_2/exercices/README.md b/representation_construits/chapitre_2/exercices/README.md index 2ffb918..3ae1075 100644 --- a/representation_construits/chapitre_2/exercices/README.md +++ b/representation_construits/chapitre_2/exercices/README.md @@ -132,7 +132,7 @@ Exemples : -Quel type de boucle va t-on utiliser ici ? +A-t-on besoin d'une boucle ici ? Justifiez. Écrire la fonction @@ -167,7 +167,7 @@ Exemple : ```python titre: 1984 auteur: George Orwell -annee_publication: 1950 +annee_publication: 1949 ``` diff --git a/representation_construits/chapitre_2/td/TD.ipynb b/representation_construits/chapitre_2/td/TD.ipynb index 8f6460c..166f1fd 100644 --- a/representation_construits/chapitre_2/td/TD.ipynb +++ b/representation_construits/chapitre_2/td/TD.ipynb @@ -63,30 +63,7 @@ { "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", - "```" - ] + "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```" }, { "cell_type": "code", @@ -276,4 +253,4 @@ }, "nbformat": 4, "nbformat_minor": 2 -} +} \ No newline at end of file