|
38 | 38 | "metadata": { |
39 | 39 | "trusted": false, |
40 | 40 | "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" |
43 | 43 | } |
44 | 44 | }, |
45 | 45 | "cell_type": "code", |
|
76 | 76 | }, |
77 | 77 | { |
78 | 78 | "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 |
84 | 80 | }, |
85 | 81 | "cell_type": "code", |
86 | 82 | "source": [ |
|
202 | 198 | }, |
203 | 199 | { |
204 | 200 | "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 |
210 | 202 | }, |
211 | 203 | "cell_type": "code", |
212 | 204 | "source": "#Syntaxe d'écriture\nfor variable in collection:\n instruction1", |
|
356 | 348 | "\n", |
357 | 349 | "current_year = datetime.datetime.now().year\n", |
358 | 350 | "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", |
359 | 355 | " if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:\n", |
360 | 356 | " break\n", |
361 | 357 | "print(\"La dernière année bissextile est: \", year)" |
|
521 | 517 | "# Exemple de l'utilisation de map\n", |
522 | 518 | "# On met au carré chaque élément de la liste\n", |
523 | 519 | "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", |
525 | 521 | "print(squared_numbers)\n", |
526 | 522 | "# 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", |
528 | 524 | "print(\"Object \", map_squared_numbers, \"is of type: \", type(map_squared_numbers))\n", |
529 | 525 | "# Mais il est itérable\n", |
530 | 526 | "for number in map_squared_numbers:\n", |
|
548 | 544 | "# Exemple de l'utilisation de map\n", |
549 | 545 | "# On met au carré chaque élément de la liste\n", |
550 | 546 | "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", |
552 | 548 | "print(squared_numbers)\n", |
553 | 549 | "# On peut filtrer les éléments\n", |
554 | 550 | "even_numbers = [x for x in numbers if x % 2 == 0]\n", |
555 | 551 | "print(even_numbers)" |
556 | 552 | ], |
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 |
559 | 564 | }, |
560 | 565 | { |
561 | 566 | "metadata": {}, |
|
564 | 569 | "Les performances peuvent être meilleures avec `map` mais dans certains cas seulement, il faut voir au cas par cas.\n", |
565 | 570 | "Voir le ticket StackOverflow https://stackoverflow.com/questions/1247486/list-comprehension-vs-map." |
566 | 571 | ] |
| 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 |
567 | 624 | } |
568 | 625 | ], |
569 | 626 | "metadata": { |
|
0 commit comments