Skip to content

Commit cacbab5

Browse files
committed
Refactor before sending to students.
1 parent e85c486 commit cacbab5

4 files changed

Lines changed: 702 additions & 195 deletions

File tree

2_base_programmation.ipynb

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -189,8 +189,8 @@
189189
"metadata": {
190190
"trusted": false,
191191
"ExecuteTime": {
192-
"end_time": "2024-10-15T13:12:05.927679Z",
193-
"start_time": "2024-10-15T13:12:05.885039Z"
192+
"end_time": "2024-10-25T15:36:39.333391Z",
193+
"start_time": "2024-10-25T15:36:39.290265Z"
194194
}
195195
},
196196
"cell_type": "code",
@@ -246,8 +246,8 @@
246246
"metadata": {
247247
"trusted": false,
248248
"ExecuteTime": {
249-
"end_time": "2024-10-15T13:12:05.940537Z",
250-
"start_time": "2024-10-15T13:12:05.934294Z"
249+
"end_time": "2024-10-25T15:36:39.345249Z",
250+
"start_time": "2024-10-25T15:36:39.339260Z"
251251
}
252252
},
253253
"cell_type": "code",
@@ -282,8 +282,8 @@
282282
"metadata": {
283283
"trusted": false,
284284
"ExecuteTime": {
285-
"end_time": "2024-10-15T13:12:05.962319Z",
286-
"start_time": "2024-10-15T13:12:05.956248Z"
285+
"end_time": "2024-10-25T15:36:39.363125Z",
286+
"start_time": "2024-10-25T15:36:39.356733Z"
287287
}
288288
},
289289
"cell_type": "code",
@@ -329,7 +329,8 @@
329329
"cell_type": "markdown",
330330
"source": [
331331
"Écrire un script Python appelé `leap_year.py` qui vérifie si une année saisie par l'utilisateur est une année bissextile ou non.\n",
332-
"Sachant qu'une année est bissextile si elle est divisible par 4 ou 100 ou 400.\n",
332+
"Sachant qu'une année est bissextile si elle est divisible par 4 mais pas par 100 à l'exception\n",
333+
" de celles divisible par 400 (voir https://fr.wikipedia.org/wiki/Ann%C3%A9e_bissextile).\n",
333334
"- Attention aux commentaires\n",
334335
"- Attention aux noms de variables. \n",
335336
"*Faites valider votre script ainsi que son exécution*. "

3_boucles_iteratives.ipynb

Lines changed: 74 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@
3838
"metadata": {
3939
"trusted": false,
4040
"ExecuteTime": {
41-
"end_time": "2024-10-15T13:25:18.677732Z",
42-
"start_time": "2024-10-15T13:25:18.325994Z"
41+
"end_time": "2024-10-25T15:36:33.991978Z",
42+
"start_time": "2024-10-25T15:36:33.698158Z"
4343
}
4444
},
4545
"cell_type": "code",
@@ -76,11 +76,7 @@
7676
},
7777
{
7878
"metadata": {
79-
"trusted": false,
80-
"ExecuteTime": {
81-
"end_time": "2024-10-15T13:25:18.682650Z",
82-
"start_time": "2024-10-15T13:25:18.682322Z"
83-
}
79+
"trusted": false
8480
},
8581
"cell_type": "code",
8682
"source": [
@@ -202,11 +198,7 @@
202198
},
203199
{
204200
"metadata": {
205-
"trusted": false,
206-
"ExecuteTime": {
207-
"end_time": "2024-10-15T13:25:18.687959Z",
208-
"start_time": "2024-10-15T13:25:18.687654Z"
209-
}
201+
"trusted": false
210202
},
211203
"cell_type": "code",
212204
"source": "#Syntaxe d'écriture\nfor variable in collection:\n instruction1",
@@ -356,6 +348,10 @@
356348
"\n",
357349
"current_year = datetime.datetime.now().year\n",
358350
"for year in range(current_year, current_year + 100):\n",
351+
" \"\"\"\n",
352+
" According to https://fr.wikipedia.org/wiki/Ann%C3%A9e_bissextile\n",
353+
" Les années sont bissextiles si elles sont multiples de quatre, mais pas si elles sont multiples de cent, à l'exception des années multiples de quatre cents qui, elles, sont également bissextiles. Ainsi, les années 2020, 2024 et 2028 sont bissextiles, de même que 2000 ou 2400, mais pas 1900, 2100, 2200 et 2300. \n",
354+
" \"\"\"\n",
359355
" if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:\n",
360356
" break\n",
361357
"print(\"La dernière année bissextile est: \", year)"
@@ -521,10 +517,10 @@
521517
"# Exemple de l'utilisation de map\n",
522518
"# On met au carré chaque élément de la liste\n",
523519
"numbers = [1, 2, 3, 4]\n",
524-
"squared_numbers = list(map(lambda x: x**2, numbers))\n",
520+
"squared_numbers = list(map(lambda x: x ** 2, numbers))\n",
525521
"print(squared_numbers)\n",
526522
"# On a besoin de list() map est un objet qui n'affiche pas les valeurs\n",
527-
"map_squared_numbers = map(lambda x: x**2, numbers)\n",
523+
"map_squared_numbers = map(lambda x: x ** 2, numbers)\n",
528524
"print(\"Object \", map_squared_numbers, \"is of type: \", type(map_squared_numbers))\n",
529525
"# Mais il est itérable\n",
530526
"for number in map_squared_numbers:\n",
@@ -548,14 +544,23 @@
548544
"# Exemple de l'utilisation de map\n",
549545
"# On met au carré chaque élément de la liste\n",
550546
"numbers = [1, 2, 3, 4]\n",
551-
"squared_numbers = [x**2 for x in numbers]\n",
547+
"squared_numbers = [x ** 2 for x in numbers]\n",
552548
"print(squared_numbers)\n",
553549
"# On peut filtrer les éléments\n",
554550
"even_numbers = [x for x in numbers if x % 2 == 0]\n",
555551
"print(even_numbers)"
556552
],
557-
"outputs": [],
558-
"execution_count": null
553+
"outputs": [
554+
{
555+
"name": "stdout",
556+
"output_type": "stream",
557+
"text": [
558+
"[1, 4, 9, 16]\n",
559+
"[2, 4]\n"
560+
]
561+
}
562+
],
563+
"execution_count": 2
559564
},
560565
{
561566
"metadata": {},
@@ -564,6 +569,58 @@
564569
"Les performances peuvent être meilleures avec `map` mais dans certains cas seulement, il faut voir au cas par cas.\n",
565570
"Voir le ticket StackOverflow https://stackoverflow.com/questions/1247486/list-comprehension-vs-map."
566571
]
572+
},
573+
{
574+
"metadata": {},
575+
"cell_type": "markdown",
576+
"source": [
577+
"***\n",
578+
"## Unpack avec l'operateur splat `*`\n",
579+
"\n",
580+
"### Unpack d'iterables\n",
581+
"\n",
582+
"On peut créer un nouveau itérable avec `*` et une autre valeur :"
583+
]
584+
},
585+
{
586+
"metadata": {
587+
"ExecuteTime": {
588+
"end_time": "2024-10-29T22:26:57.520669Z",
589+
"start_time": "2024-10-29T22:26:57.518362Z"
590+
}
591+
},
592+
"cell_type": "code",
593+
"source": [
594+
"assert [1, *[2, 3, 4]] == [1, 2, 3, 4] # Un itérable et une valeur\n",
595+
"assert [*[1, 2], *[3, 4]] == [1, 2, 3, 4] # 2 Itérables\n",
596+
"assert [*[1, 2], *(3, 4)] == [1, 2, 3, 4] # 2 Itérables, tuple ou liste"
597+
],
598+
"outputs": [],
599+
"execution_count": 3
600+
},
601+
{
602+
"metadata": {},
603+
"cell_type": "markdown",
604+
"source": [
605+
"### Unpack de dictionnaires avec `**`\n",
606+
"\n",
607+
"Il est également possible de manipuler les dictionnaires pour en créer de nouveau avec `*` :"
608+
]
609+
},
610+
{
611+
"metadata": {
612+
"ExecuteTime": {
613+
"end_time": "2024-10-29T22:29:57.962047Z",
614+
"start_time": "2024-10-29T22:29:57.959603Z"
615+
}
616+
},
617+
"cell_type": "code",
618+
"source": [
619+
"assert {1: 1, **{2: 2, 3: 3}} == {1: 1, 2: 2, 3: 3}\n",
620+
"assert {**{1: 1, 2: 2}, **{3: 3}} == {1: 1, 2: 2, 3: 3}"
621+
],
622+
"outputs": [],
623+
"execution_count": 5
567624
}
568625
],
569626
"metadata": {

0 commit comments

Comments
 (0)