ajout exercice sur le in, ajout application de get() dans le cours, hashabilité, changement de formulation pour un exercice sur les boucles, et correction de la date de parution de 1984)

This commit is contained in:
2026-01-13 09:23:56 +01:00
parent c72cfd6feb
commit 71cf49602e
3 changed files with 16 additions and 28 deletions

View File

@@ -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

View File

@@ -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
```

View File

@@ -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
}
}