{"id":8720,"date":"2023-08-17T15:45:55","date_gmt":"2023-08-17T13:45:55","guid":{"rendered":"https:\/\/www.mathweb.fr\/euclide\/?p=8720"},"modified":"2023-08-29T10:34:01","modified_gmt":"2023-08-29T08:34:01","slug":"python-3-10-les-nouveautes-notables","status":"publish","type":"post","link":"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/","title":{"rendered":"Python 3.10: les nouveaut\u00e9s notables"},"content":{"rendered":"\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Python, l&#8217;un des langages de programmation les plus populaires et polyvalents, continue d&#8217;\u00e9voluer pour r\u00e9pondre aux besoins croissants de la communaut\u00e9 des d\u00e9veloppeurs. La sortie de Python 3.10 a suscit\u00e9 beaucoup d&#8217;enthousiasme, car elle apporte son lot d&#8217;am\u00e9liorations, de nouvelles fonctionnalit\u00e9s et d&#8217;optimisations. Dans cet article, nous allons plonger dans certaines des nouveaut\u00e9s les plus marquantes de Python 3.10 et explorer comment elles pourraient enrichir votre exp\u00e9rience en programmation.<\/p>\n\n\n\n<!--more-->\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter ez-toc-white ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Au menu sur cette page...<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/#Preliminaires_pourquoi_310_et_non_311\" >Pr\u00e9liminaires: pourquoi 3.10 et non 3.11 ?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/#Python_310_quelques_nouveautes_enumerees\" >Python 3.10 : quelques nouveaut\u00e9s \u00e9num\u00e9r\u00e9es<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/#Annonces_majeures_concernant_les_nouveautes_de_Python_310\" >Annonces majeures concernant les nouveaut\u00e9s de Python 3.10<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/#Ameliorations_de_Performance_nouveaute_de_Python_310\" >Am\u00e9liorations de Performance: nouveaut\u00e9 de Python 3.10<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/#Utilisation_Pratique_des_nouveautes_de_Python_310\" >Utilisation Pratique des nouveaut\u00e9s de Python 3.10<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/#Python_310_nouveautes_developpements_et_exemples\" >Python 3.10, nouveaut\u00e9s: d\u00e9veloppements et exemples<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/#Annonces_majeures\" >Annonces majeures<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/#Operateur_%E2%80%9Cmatch%E2%80%9D_case\" >Op\u00e9rateur &#8220;match&#8221; (case)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/#Type_Hinting_ameliore\" >Type Hinting am\u00e9lior\u00e9<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/#Effets_contextuels\" >Effets contextuels<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/#Ameliorations_de_Performance\" >Am\u00e9liorations de Performance<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/#Optimisations_de_la_boucle_%E2%80%9Cfor%E2%80%9D\" >Optimisations de la boucle &#8220;for&#8221;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/#Nouveautes_dans_lallocation_memoire\" >Nouveaut\u00e9s dans l&#8217;allocation m\u00e9moire<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/#Utilisation_Pratique\" >Utilisation Pratique<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/#Mise_en_oeuvre_de_nouvelles_fonctionnalites\" >Mise en \u0153uvre de nouvelles fonctionnalit\u00e9s<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/#Migration_vers_Python_310\" >Migration vers Python 3.10<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/#Conclusion\" >Conclusion<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Preliminaires_pourquoi_310_et_non_311\"><\/span>Pr\u00e9liminaires: pourquoi 3.10 et non 3.11 ?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Vous en r\u00eavez pas: alors que Python 3.11 est sorti fin 2022, je vous parle bien de Python 3.10&#8230; car \u00e0 mes yeux, d&#8217;une part je n&#8217;avais jamais trait\u00e9 des changements de 3.10 et d&#8217;autre part car je per\u00e7ois ces derniers comment plut\u00f4t int\u00e9ressants par rapport aux changements de 3.11 (qui, p\u00e9dagogiquement, ne vont pas servir).<\/p>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">En effet, 3.11 est 10% plus rapide que 3.10, mais \u00e0 mon avis, c&#8217;est le seul changement important pour celles et ceux qui enseignent Python au lyc\u00e9e. Alors, il y a bien un l\u00e9ger changement concernant la POO concernant l&#8217;annotation de classes, mais \u00e0 mes yeux (peut-\u00eatre que je me trompe), \u00e7a ne vaut pas le coup de s\u2019attarder dessus. Je vous mets juste un exemple :<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">from typing import Self\n\nclass Personage:\n    def genre(self: Self, sexe: str) -> Self:\n        self.sexe = sexe\n        return self<\/pre>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Je trouve personnellement que ce n&#8217;est pas plus simple d&#8217;\u00e9crire comme \u00e7a&#8230; Je n&#8217;utilise pas cette fa\u00e7on de faire (je n&#8217;annote pas les classes en g\u00e9n\u00e9ral, je trouve que \u00e7a alourdit le code, mais je ne suis pas un programmeur exp\u00e9riment\u00e9 donc il se peut qu&#8217;il y ait une utilit\u00e9 dans la pratique).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Python_310_quelques_nouveautes_enumerees\"><\/span>Python 3.10 : quelques nouveaut\u00e9s \u00e9num\u00e9r\u00e9es<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Annonces_majeures_concernant_les_nouveautes_de_Python_310\"><\/span>Annonces majeures concernant les nouveaut\u00e9s de Python 3.10<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Les Annonces Majeure<strong>s <\/strong>sont les suivantes:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Op\u00e9rateur &#8220;match&#8221; (case) :<\/strong> Python 3.10 introduit le nouvel op\u00e9rateur &#8220;match&#8221; (\u00e9quivalent du &#8220;switch&#8221; dans d&#8217;autres langages), qui offre une syntaxe plus \u00e9l\u00e9gante pour les expressions conditionnelles complexes. D\u00e9couvrez comment cet op\u00e9rateur facilite la gestion des multiples cas de branchement.<\/li>\n\n\n\n<li><strong>Type Hinting am\u00e9lior\u00e9 :<\/strong> Les annotations de type ont gagn\u00e9 en clart\u00e9 et en expressivit\u00e9 avec Python 3.10. Explorez les nouvelles fonctionnalit\u00e9s de type hinting et apprenez comment elles peuvent contribuer \u00e0 la lisibilit\u00e9 et \u00e0 la qualit\u00e9 de votre code.<\/li>\n\n\n\n<li><strong>Effets contextuels :<\/strong> Cette nouvelle fonctionnalit\u00e9 permet d&#8217;int\u00e9grer des effets secondaires conditionnels (comme les avertissements ou les exceptions) directement dans les blocs &#8220;with&#8221; et &#8220;for&#8221;. D\u00e9couvrez comment cela peut rendre votre code plus concis et plus lisible.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Ameliorations_de_Performance_nouveaute_de_Python_310\"><\/span><strong>Am\u00e9liorations de Performance<\/strong>: nouveaut\u00e9 de Python 3.10<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Optimisations de la boucle &#8220;for&#8221; :<\/strong> Python 3.10 propose des optimisations significatives pour les boucles &#8220;for&#8221;, ce qui peut se traduire par des gains de performance dans divers sc\u00e9narios. Nous examinerons comment ces am\u00e9liorations peuvent acc\u00e9l\u00e9rer l&#8217;ex\u00e9cution de votre code.<\/li>\n\n\n\n<li><strong>Nouveaut\u00e9s dans l&#8217;allocation m\u00e9moire :<\/strong> Les optimisations d&#8217;allocation m\u00e9moire dans Python 3.10 peuvent aider \u00e0 r\u00e9duire la consommation de m\u00e9moire de vos programmes. Nous discuterons des changements cl\u00e9s et de leurs avantages.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Utilisation_Pratique_des_nouveautes_de_Python_310\"><\/span><strong>Utilisation Pratique<\/strong> des nouveaut\u00e9s de Python 3.10<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Mise en \u0153uvre de nouvelles fonctionnalit\u00e9s :<\/strong> \u00c0 l&#8217;aide d&#8217;exemples concrets, nous montrerons comment tirer parti des nouvelles fonctionnalit\u00e9s pour r\u00e9soudre des probl\u00e8mes courants de programmation. De l&#8217;utilisation du nouvel op\u00e9rateur &#8220;match&#8221; \u00e0 l&#8217;am\u00e9lioration de la lisibilit\u00e9 du code gr\u00e2ce aux annotations de type, vous verrez comment ces ajouts peuvent simplifier vos d\u00e9veloppements.<\/li>\n\n\n\n<li><strong>Migration vers Python 3.10 :<\/strong> Si vous envisagez de mettre \u00e0 jour vos projets vers Python 3.10, nous fournirons des conseils et des bonnes pratiques pour une transition en douceur.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Python 3.10 apporte des am\u00e9liorations significatives qui permettent aux d\u00e9veloppeurs de coder de mani\u00e8re plus \u00e9l\u00e9gante, lisible et performante. En explorant les nouvelles fonctionnalit\u00e9s et en comprenant comment elles s&#8217;int\u00e8grent dans votre flux de travail, vous serez mieux pr\u00e9par\u00e9 pour adopter ces changements et en tirer pleinement parti. En tant que passionn\u00e9s de Python, restons inform\u00e9s et enthousiastes \u00e0 l&#8217;id\u00e9e de repousser les limites de notre cr\u00e9ativit\u00e9 et de notre efficacit\u00e9 gr\u00e2ce \u00e0 cette version passionnante.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Python_310_nouveautes_developpements_et_exemples\"><\/span>Python 3.10, nouveaut\u00e9s: d\u00e9veloppements et exemples<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Annonces_majeures\"><\/span>Annonces majeures<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Operateur_%E2%80%9Cmatch%E2%80%9D_case\"><\/span><strong>Op\u00e9rateur &#8220;match&#8221; (case)<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Le nouvel op\u00e9rateur &#8220;match&#8221; est une r\u00e9ponse \u00e9l\u00e9gante aux longues cascades de conditions &#8220;if-elif-else&#8221;. Avec cette nouvelle syntaxe, vous pouvez d\u00e9finir des cas de correspondance plus lisibles et organis\u00e9s, am\u00e9liorant ainsi la maintenabilit\u00e9 du code. Par exemple :<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">match day:\n    case \"Lundi\":\n        print(\"C'est le d\u00e9but de la semaine!\")\n    case \"Vendredi\":\n        print(\"Le week-end approche!\")\n    case _:\n        print(\"Encore un autre jour...\")<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Type_Hinting_ameliore\"><\/span><strong>Type Hinting am\u00e9lior\u00e9<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Les annotations de type jouent un r\u00f4le crucial dans le d\u00e9veloppement Python moderne, et Python 3.10 rend ces annotations encore plus expressives. Les param\u00e8tres de type conditionnels, les types de valeurs de retour conditionnels et les am\u00e9liorations dans le module &#8220;typing&#8221; permettent aux d\u00e9veloppeurs de sp\u00e9cifier plus pr\u00e9cis\u00e9ment les attentes de types. Cela renforce la v\u00e9rification statique des types et am\u00e9liore la documentation du code.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">def greet(name: str) -> str | None:\n    if name:\n        return f\"Hello, {name}!\"\n    else:\n        return None<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Effets_contextuels\"><\/span><strong>Effets contextuels<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Les blocs &#8220;with&#8221; et &#8220;for&#8221; dans Python 3.10 ont gagn\u00e9 la capacit\u00e9 d&#8217;int\u00e9grer des effets secondaires conditionnels directement dans leur syntaxe. Cela permet de simplifier le code en \u00e9vitant l&#8217;introduction de variables temporaires inutiles.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">with open(\"data.txt\") as file, connect_to_server() as server:\n    # Utilisation du fichier et du serveur<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Ameliorations_de_Performance\"><\/span><strong>Am\u00e9liorations de Performance<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Optimisations_de_la_boucle_%E2%80%9Cfor%E2%80%9D\"><\/span><strong>Optimisations de la boucle &#8220;for&#8221;<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Python 3.10 a introduit des optimisations significatives pour les boucles &#8220;for&#8221;. Cela se traduit par une acc\u00e9l\u00e9ration notable dans l&#8217;ex\u00e9cution des boucles, ce qui peut \u00eatre particuli\u00e8rement avantageux dans les it\u00e9rations intensives.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">for item in big_list:\n    # Traitement d'\u00e9l\u00e9ments<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Nouveautes_dans_lallocation_memoire\"><\/span><strong>Nouveaut\u00e9s dans l&#8217;allocation m\u00e9moire<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Les am\u00e9liorations d&#8217;allocation m\u00e9moire visent \u00e0 r\u00e9duire la consommation de m\u00e9moire de Python 3.10. Des structures de donn\u00e9es comme les ensembles et les dictionnaires consomment moins d&#8217;espace, ce qui contribue \u00e0 des performances globales plus efficaces.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">set_of_numbers = {1, 2, 3, 4}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Utilisation_Pratique\"><\/span><strong>Utilisation Pratique<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Mise_en_oeuvre_de_nouvelles_fonctionnalites\"><\/span><strong>Mise en \u0153uvre de nouvelles fonctionnalit\u00e9s<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Prenons l&#8217;exemple d&#8217;une application de traitement de donn\u00e9es o\u00f9 le nouvel op\u00e9rateur &#8220;match&#8221; peut simplifier la logique de traitement des diff\u00e9rentes cat\u00e9gories de donn\u00e9es. L&#8217;utilisation des annotations de type conditionnelles peut rendre plus robuste un syst\u00e8me qui interagit avec des donn\u00e9es potentiellement manquantes. La gestion des ressources avec les effets contextuels peut nettoyer le code en \u00e9vitant les constructions explicites de gestion de contexte.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Migration_vers_Python_310\"><\/span><strong>Migration vers Python 3.10<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Si vous envisagez de migrer votre projet vers Python 3.10, il est essentiel de v\u00e9rifier la compatibilit\u00e9 de vos biblioth\u00e8ques tierces. La r\u00e9\u00e9criture du code pour tirer parti des nouvelles fonctionnalit\u00e9s peut n\u00e9cessiter des ajustements. Envisagez de tester les performances et de surveiller la consommation m\u00e9moire pour appr\u00e9cier les avantages de la mise \u00e0 jour.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Python 3.10 offre un \u00e9ventail d&#8217;am\u00e9liorations et de nouvelles fonctionnalit\u00e9s qui permettent aux d\u00e9veloppeurs d&#8217;\u00e9crire un code plus lisible, plus performant et plus efficace. De l&#8217;op\u00e9rateur &#8220;match&#8221; qui simplifie la gestion des conditions complexes aux am\u00e9liorations de type hinting et aux optimisations de boucle, cette version marque un pas en avant pour la communaut\u00e9 Python. \u00c0 mesure que vous int\u00e9grez ces nouvelles fonctionnalit\u00e9s dans vos projets, n&#8217;oubliez pas de profiter des gains de productivit\u00e9 et d&#8217;efficacit\u00e9 qu&#8217;elles apportent.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Python, l&#8217;un des langages de programmation les plus populaires et polyvalents, continue d&#8217;\u00e9voluer pour r\u00e9pondre aux besoins croissants de la communaut\u00e9 des d\u00e9veloppeurs. La sortie de Python 3.10 a suscit\u00e9 beaucoup d&#8217;enthousiasme, car elle apporte son lot d&#8217;am\u00e9liorations, de nouvelles fonctionnalit\u00e9s et d&#8217;optimisations. Dans cet article, nous allons plonger dans [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":8721,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-8720","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Python 3.10: les nouveaut\u00e9s notables - Mathweb.fr<\/title>\n<meta name=\"description\" content=\"Retour sur les nouveaut\u00e9s notables de Python 3.10: match, type hinting, am\u00e9liorations des performances des boucles &quot;for&quot;, etc.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Python 3.10: les nouveaut\u00e9s notables - Mathweb.fr\" \/>\n<meta property=\"og:description\" content=\"Retour sur les nouveaut\u00e9s notables de Python 3.10: match, type hinting, am\u00e9liorations des performances des boucles &quot;for&quot;, etc.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/\" \/>\n<meta property=\"og:site_name\" content=\"Mathweb.fr\" \/>\n<meta property=\"article:published_time\" content=\"2023-08-17T13:45:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-29T08:34:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2023\/08\/head-articles-python-310-nouveautes.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"740\" \/>\n\t<meta property=\"og:image:height\" content=\"198\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"St\u00e9phane Pasquet\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"St\u00e9phane Pasquet\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2023\\\/08\\\/17\\\/python-3-10-les-nouveautes-notables\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2023\\\/08\\\/17\\\/python-3-10-les-nouveautes-notables\\\/\"},\"author\":{\"name\":\"St\u00e9phane Pasquet\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"headline\":\"Python 3.10: les nouveaut\u00e9s notables\",\"datePublished\":\"2023-08-17T13:45:55+00:00\",\"dateModified\":\"2023-08-29T08:34:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2023\\\/08\\\/17\\\/python-3-10-les-nouveautes-notables\\\/\"},\"wordCount\":1189,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2023\\\/08\\\/17\\\/python-3-10-les-nouveautes-notables\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/head-articles-python-310-nouveautes.jpg\",\"articleSection\":[\"Python\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2023\\\/08\\\/17\\\/python-3-10-les-nouveautes-notables\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2023\\\/08\\\/17\\\/python-3-10-les-nouveautes-notables\\\/\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2023\\\/08\\\/17\\\/python-3-10-les-nouveautes-notables\\\/\",\"name\":\"Python 3.10: les nouveaut\u00e9s notables - Mathweb.fr\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2023\\\/08\\\/17\\\/python-3-10-les-nouveautes-notables\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2023\\\/08\\\/17\\\/python-3-10-les-nouveautes-notables\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/head-articles-python-310-nouveautes.jpg\",\"datePublished\":\"2023-08-17T13:45:55+00:00\",\"dateModified\":\"2023-08-29T08:34:01+00:00\",\"description\":\"Retour sur les nouveaut\u00e9s notables de Python 3.10: match, type hinting, am\u00e9liorations des performances des boucles \\\"for\\\", etc.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2023\\\/08\\\/17\\\/python-3-10-les-nouveautes-notables\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2023\\\/08\\\/17\\\/python-3-10-les-nouveautes-notables\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2023\\\/08\\\/17\\\/python-3-10-les-nouveautes-notables\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/head-articles-python-310-nouveautes.jpg\",\"contentUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/head-articles-python-310-nouveautes.jpg\",\"width\":740,\"height\":198,\"caption\":\"python 3.10 nouveaut\u00e9s\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2023\\\/08\\\/17\\\/python-3-10-les-nouveautes-notables\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python 3.10: les nouveaut\u00e9s notables\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#website\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/\",\"name\":\"Mathweb.fr\",\"description\":\"Math\u00e9matiques, LaTeX et Python\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\",\"name\":\"St\u00e9phane Pasquet\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\",\"contentUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\",\"width\":74,\"height\":77,\"caption\":\"St\u00e9phane Pasquet\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Python 3.10: les nouveaut\u00e9s notables - Mathweb.fr","description":"Retour sur les nouveaut\u00e9s notables de Python 3.10: match, type hinting, am\u00e9liorations des performances des boucles \"for\", etc.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/","og_locale":"fr_FR","og_type":"article","og_title":"Python 3.10: les nouveaut\u00e9s notables - Mathweb.fr","og_description":"Retour sur les nouveaut\u00e9s notables de Python 3.10: match, type hinting, am\u00e9liorations des performances des boucles \"for\", etc.","og_url":"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/","og_site_name":"Mathweb.fr","article_published_time":"2023-08-17T13:45:55+00:00","article_modified_time":"2023-08-29T08:34:01+00:00","og_image":[{"width":740,"height":198,"url":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2023\/08\/head-articles-python-310-nouveautes.jpg","type":"image\/jpeg"}],"author":"St\u00e9phane Pasquet","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"St\u00e9phane Pasquet","Dur\u00e9e de lecture estim\u00e9e":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/#article","isPartOf":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/"},"author":{"name":"St\u00e9phane Pasquet","@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"headline":"Python 3.10: les nouveaut\u00e9s notables","datePublished":"2023-08-17T13:45:55+00:00","dateModified":"2023-08-29T08:34:01+00:00","mainEntityOfPage":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/"},"wordCount":1189,"commentCount":0,"publisher":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"image":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2023\/08\/head-articles-python-310-nouveautes.jpg","articleSection":["Python"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/","url":"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/","name":"Python 3.10: les nouveaut\u00e9s notables - Mathweb.fr","isPartOf":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/#primaryimage"},"image":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2023\/08\/head-articles-python-310-nouveautes.jpg","datePublished":"2023-08-17T13:45:55+00:00","dateModified":"2023-08-29T08:34:01+00:00","description":"Retour sur les nouveaut\u00e9s notables de Python 3.10: match, type hinting, am\u00e9liorations des performances des boucles \"for\", etc.","breadcrumb":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/#primaryimage","url":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2023\/08\/head-articles-python-310-nouveautes.jpg","contentUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2023\/08\/head-articles-python-310-nouveautes.jpg","width":740,"height":198,"caption":"python 3.10 nouveaut\u00e9s"},{"@type":"BreadcrumbList","@id":"https:\/\/www.mathweb.fr\/euclide\/2023\/08\/17\/python-3-10-les-nouveautes-notables\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.mathweb.fr\/euclide\/"},{"@type":"ListItem","position":2,"name":"Python 3.10: les nouveaut\u00e9s notables"}]},{"@type":"WebSite","@id":"https:\/\/www.mathweb.fr\/euclide\/#website","url":"https:\/\/www.mathweb.fr\/euclide\/","name":"Mathweb.fr","description":"Math\u00e9matiques, LaTeX et Python","publisher":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mathweb.fr\/euclide\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":["Person","Organization"],"@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69","name":"St\u00e9phane Pasquet","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp","url":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp","contentUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp","width":74,"height":77,"caption":"St\u00e9phane Pasquet"},"logo":{"@id":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp"}}]}},"_links":{"self":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/posts\/8720","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/comments?post=8720"}],"version-history":[{"count":0,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/posts\/8720\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/media\/8721"}],"wp:attachment":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/media?parent=8720"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/categories?post=8720"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/tags?post=8720"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}