{"id":2002,"date":"2020-02-06T15:22:17","date_gmt":"2020-02-06T14:22:17","guid":{"rendered":"https:\/\/www.mathweb.fr\/euclide\/?p=2002"},"modified":"2020-04-19T16:16:39","modified_gmt":"2020-04-19T14:16:39","slug":"differentes-facons-de-calculer-1%c2%b22%c2%b2-n%c2%b2-en-python","status":"publish","type":"post","link":"https:\/\/www.mathweb.fr\/euclide\/2020\/02\/06\/differentes-facons-de-calculer-1%c2%b22%c2%b2-n%c2%b2-en-python\/","title":{"rendered":"Diff\u00e9rentes fa\u00e7ons de calculer 1\u00b2+2\u00b2+&#8230;+n\u00b2 en Python"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">La programmation, c&rsquo;est comme l&rsquo;amour : il y a plusieurs fa\u00e7ons de pratiquer! Et aujourd&rsquo;hui, j&rsquo;avais envie d&rsquo;explorer diff\u00e9rentes fa\u00e7ons de calculer la somme:$$S_n=1^2+2^2+\\cdots+n^2=\\sum_{k=1}^n k^2.$$<\/p>\n\n\n\n<!--more-->\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 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\/2020\/02\/06\/differentes-facons-de-calculer-1%c2%b22%c2%b2-n%c2%b2-en-python\/#Methode_1_methode_mathematique\" >M\u00e9thode 1 : m\u00e9thode math\u00e9matique<\/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\/2020\/02\/06\/differentes-facons-de-calculer-1%c2%b22%c2%b2-n%c2%b2-en-python\/#Methode_2_calcul_bourrin\" >M\u00e9thode 2 : calcul bourrin<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.mathweb.fr\/euclide\/2020\/02\/06\/differentes-facons-de-calculer-1%c2%b22%c2%b2-n%c2%b2-en-python\/#Methode_3_programmation_fonctionnelle\" >M\u00e9thode 3 : programmation fonctionnelle<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.mathweb.fr\/euclide\/2020\/02\/06\/differentes-facons-de-calculer-1%c2%b22%c2%b2-n%c2%b2-en-python\/#Methode_4_recursivite\" >M\u00e9thode 4 : r\u00e9cursivit\u00e9<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.mathweb.fr\/euclide\/2020\/02\/06\/differentes-facons-de-calculer-1%c2%b22%c2%b2-n%c2%b2-en-python\/#Methode_5_diviser_pour_regner\" >M\u00e9thode 5 : diviser pour r\u00e9gner<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Methode_1_methode_mathematique\"><\/span>M\u00e9thode 1 : m\u00e9thode math\u00e9matique<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">C&rsquo;est la plus \u00e9conome en terme de m\u00e9moire : la complexit\u00e9 en m\u00e9moire et en temps est imbattable. Il suffit d&rsquo;utiliser la formule math\u00e9matique:$$S_n=\\frac{n(n+1)(2n+1)}{6}$$que l&rsquo;on peut d\u00e9montrer par r\u00e9currence (mais ce n&rsquo;est pas l&rsquo;objectif de cet article). On trouve alors pour n = 20 par exemple: $$S_{20}=\\frac{20 \\times 21 \\times 41}{6}=2870.$$Le programme Python est alors le suivant:<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\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=\"\">n = 20\nprint ( int( n * (n + 1) * (2*n + 1) \/ 6 ) )<\/pre>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Methode_2_calcul_bourrin\"><\/span>M\u00e9thode 2 : calcul bourrin<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Quand on n&rsquo;est pas trop au fait des formules math\u00e9matiques (oui, oui ! vous avez le droit !), on peut faire un calcul it\u00e9ratif \u00ab\u00a0bourrin\u00a0\u00bb. Cela donne alors:<\/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=\"\">S, n = 0, 20\n\nfor k in range(1,n+1):\n    S += k ** 2\n\nprint(S)<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">La complexit\u00e9 en m\u00e9moire est ici en <em>O<\/em>(<em>n<\/em>).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Methode_3_programmation_fonctionnelle\"><\/span>M\u00e9thode 3 : programmation fonctionnelle<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">On peut utiliser la fonction <strong>reduce()<\/strong> du module <em>functools<\/em>. Elle fait partie des outils de la programmation fonctionnelle que l&rsquo;on voit en Sp\u00e9cialit\u00e9 NSI en Terminale, d\u00e8s la rentr\u00e9e 2020.<\/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 functools import reduce\nliste = [ k ** 2 for k in range(1,21) ]\nprint ( reduce(lambda a, x: a + x, liste) )\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">On construit d&rsquo;abord une liste des valeurs \u00e0 sommer, puis on affiche le r\u00e9sultat de la fonction reduce(), celle-ci admettant comme arguments une fonction \u00e0 2 arguments (ici, lambda, qui ajoute toutes les valeurs de la liste) ainsi qu&rsquo;une liste. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le principe de la fonction reduce() est celui-ci dans notre exemple : on parcourt la liste et on calcule la somme de l&rsquo;\u00e9l\u00e9ment sur lequel on est et de l&rsquo;ant\u00e9c\u00e9dent (a), qui est le r\u00e9sultat de la somme trouv\u00e9 pr\u00e9c\u00e9demment. Le probl\u00e8me avec cette \u00ab\u00a0m\u00e9canique\u00a0\u00bb, c&rsquo;est que le premier \u00e9l\u00e9ment n&rsquo;admet pas d&rsquo;ant\u00e9c\u00e9dent. Ainsi, la fonction reduce() assimile le premier \u00e9l\u00e9ment \u00e0 l&rsquo;ant\u00e9c\u00e9dent du deuxi\u00e8me&#8230; ce qui peut \u00eatre probl\u00e9matique. Il faut donc cr\u00e9er une liste contenant directement les \u00e9lements \u00e0 ajouter (pour notre exemple).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ainsi, le code suivant:<\/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 functools import reduce\n\nprint ( reduce(lambda a, x: a + x ** 2 , range(1,21)) )<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">fonctionne correctement car 1\u00b2 = 1 (que la fonction confonde 1 et 1\u00b2 ne change donc pas le r\u00e9sultat), mais si on souhaite calculer:$$2^2+3^2+\\cdots+20^2$$ le code suivant:<\/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 functools import reduce\n\nprint ( reduce(lambda a, x: a + x ** 2 , range(2,21)) )<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">affiche \u00ab\u00a02867\u00a0\u00bb et non \u00ab\u00a02869\u00a0\u00bb comme attendu. En effet, ce dernier code calcule: $$2 + 3^2+ 4^2+ \\cdots + 20^2.$$<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Methode_4_recursivite\"><\/span>M\u00e9thode 4 : r\u00e9cursivit\u00e9<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La r\u00e9cursivit\u00e9 consiste \u00e0 d\u00e9finir une fonction dans laquelle on fait appel \u00e0 cette fonction. Cela donne pour notre 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=\"\">def somme(n):\n    if n == 1:\n        return 1\n\n    return n ** 2 + somme( n - 1 )\n\nprint( somme(20) )<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Methode_5_diviser_pour_regner\"><\/span>M\u00e9thode 5 : diviser pour r\u00e9gner<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cette m\u00e9thode consiste \u00e0 subdiviser un probl\u00e8me en sous-probl\u00e8mes plus faciles \u00e0 traiter en utilisant la r\u00e9cursivit\u00e9. <\/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 somme(L):\n    if len(L) == 1:\n        return L[0]\n    else:\n        L1 = L[:len(L)\/\/2]\n        L2 = L[len(L)\/\/2::]\n        return somme(L1) + somme(L2)\n\nprint( somme( [k ** 2 for k in range(1,21) ] ) )<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">L&rsquo;id\u00e9e est ici de d\u00e9couper la liste en 2 sous-listes L1 et L2, et de faire appel \u00e0 la fonction somme() jusqu&rsquo;\u00e0 ce que la liste pass\u00e9e en argument ne contienne qu&rsquo;un seul \u00e9l\u00e9ment.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La programmation, c&rsquo;est comme l&rsquo;amour : il y a plusieurs fa\u00e7ons de pratiquer! Et aujourd&rsquo;hui, j&rsquo;avais envie d&rsquo;explorer diff\u00e9rentes fa\u00e7ons de calculer la somme:$$S_n=1^2+2^2+\\cdots+n^2=\\sum_{k=1}^n k^2.$$<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21,5],"tags":[168,166,167,91],"class_list":["post-2002","post","type-post","status-publish","format-standard","hentry","category-enseignement","category-python","tag-boucle-iterative","tag-paradigmes-de-programmation","tag-programmation-fonctionnelle","tag-recursivite"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Diff\u00e9rentes fa\u00e7ons de calculer 1\u00b2+2\u00b2+...+n\u00b2 en Python - Mathweb.fr<\/title>\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\/2020\/02\/06\/differentes-facons-de-calculer-1\u00b22\u00b2-n\u00b2-en-python\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Diff\u00e9rentes fa\u00e7ons de calculer 1\u00b2+2\u00b2+...+n\u00b2 en Python - Mathweb.fr\" \/>\n<meta property=\"og:description\" content=\"La programmation, c&rsquo;est comme l&rsquo;amour : il y a plusieurs fa\u00e7ons de pratiquer! Et aujourd&rsquo;hui, j&rsquo;avais envie d&rsquo;explorer diff\u00e9rentes fa\u00e7ons de calculer la somme:$$S_n=1^2+2^2+cdots+n^2=sum_{k=1}^n k^2.$$\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mathweb.fr\/euclide\/2020\/02\/06\/differentes-facons-de-calculer-1\u00b22\u00b2-n\u00b2-en-python\/\" \/>\n<meta property=\"og:site_name\" content=\"Mathweb.fr\" \/>\n<meta property=\"article:published_time\" content=\"2020-02-06T14:22:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-04-19T14:16:39+00:00\" \/>\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=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2020\\\/02\\\/06\\\/differentes-facons-de-calculer-1%c2%b22%c2%b2-n%c2%b2-en-python\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2020\\\/02\\\/06\\\/differentes-facons-de-calculer-1%c2%b22%c2%b2-n%c2%b2-en-python\\\/\"},\"author\":{\"name\":\"St\u00e9phane Pasquet\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"headline\":\"Diff\u00e9rentes fa\u00e7ons de calculer 1\u00b2+2\u00b2+&#8230;+n\u00b2 en Python\",\"datePublished\":\"2020-02-06T14:22:17+00:00\",\"dateModified\":\"2020-04-19T14:16:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2020\\\/02\\\/06\\\/differentes-facons-de-calculer-1%c2%b22%c2%b2-n%c2%b2-en-python\\\/\"},\"wordCount\":477,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"keywords\":[\"boucle it\u00e9rative\",\"paradigmes de programmation\",\"programmation fonctionnelle\",\"r\u00e9cursivit\u00e9\"],\"articleSection\":[\"Enseignement\",\"Python\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2020\\\/02\\\/06\\\/differentes-facons-de-calculer-1%c2%b22%c2%b2-n%c2%b2-en-python\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2020\\\/02\\\/06\\\/differentes-facons-de-calculer-1%c2%b22%c2%b2-n%c2%b2-en-python\\\/\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2020\\\/02\\\/06\\\/differentes-facons-de-calculer-1%c2%b22%c2%b2-n%c2%b2-en-python\\\/\",\"name\":\"Diff\u00e9rentes fa\u00e7ons de calculer 1\u00b2+2\u00b2+...+n\u00b2 en Python - Mathweb.fr\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#website\"},\"datePublished\":\"2020-02-06T14:22:17+00:00\",\"dateModified\":\"2020-04-19T14:16:39+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2020\\\/02\\\/06\\\/differentes-facons-de-calculer-1%c2%b22%c2%b2-n%c2%b2-en-python\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2020\\\/02\\\/06\\\/differentes-facons-de-calculer-1%c2%b22%c2%b2-n%c2%b2-en-python\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2020\\\/02\\\/06\\\/differentes-facons-de-calculer-1%c2%b22%c2%b2-n%c2%b2-en-python\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Diff\u00e9rentes fa\u00e7ons de calculer 1\u00b2+2\u00b2+&#8230;+n\u00b2 en Python\"}]},{\"@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":"Diff\u00e9rentes fa\u00e7ons de calculer 1\u00b2+2\u00b2+...+n\u00b2 en Python - Mathweb.fr","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\/2020\/02\/06\/differentes-facons-de-calculer-1\u00b22\u00b2-n\u00b2-en-python\/","og_locale":"fr_FR","og_type":"article","og_title":"Diff\u00e9rentes fa\u00e7ons de calculer 1\u00b2+2\u00b2+...+n\u00b2 en Python - Mathweb.fr","og_description":"La programmation, c&rsquo;est comme l&rsquo;amour : il y a plusieurs fa\u00e7ons de pratiquer! Et aujourd&rsquo;hui, j&rsquo;avais envie d&rsquo;explorer diff\u00e9rentes fa\u00e7ons de calculer la somme:$$S_n=1^2+2^2+cdots+n^2=sum_{k=1}^n k^2.$$","og_url":"https:\/\/www.mathweb.fr\/euclide\/2020\/02\/06\/differentes-facons-de-calculer-1\u00b22\u00b2-n\u00b2-en-python\/","og_site_name":"Mathweb.fr","article_published_time":"2020-02-06T14:22:17+00:00","article_modified_time":"2020-04-19T14:16:39+00:00","author":"St\u00e9phane Pasquet","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"St\u00e9phane Pasquet","Dur\u00e9e de lecture estim\u00e9e":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.mathweb.fr\/euclide\/2020\/02\/06\/differentes-facons-de-calculer-1%c2%b22%c2%b2-n%c2%b2-en-python\/#article","isPartOf":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2020\/02\/06\/differentes-facons-de-calculer-1%c2%b22%c2%b2-n%c2%b2-en-python\/"},"author":{"name":"St\u00e9phane Pasquet","@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"headline":"Diff\u00e9rentes fa\u00e7ons de calculer 1\u00b2+2\u00b2+&#8230;+n\u00b2 en Python","datePublished":"2020-02-06T14:22:17+00:00","dateModified":"2020-04-19T14:16:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2020\/02\/06\/differentes-facons-de-calculer-1%c2%b22%c2%b2-n%c2%b2-en-python\/"},"wordCount":477,"commentCount":1,"publisher":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"keywords":["boucle it\u00e9rative","paradigmes de programmation","programmation fonctionnelle","r\u00e9cursivit\u00e9"],"articleSection":["Enseignement","Python"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.mathweb.fr\/euclide\/2020\/02\/06\/differentes-facons-de-calculer-1%c2%b22%c2%b2-n%c2%b2-en-python\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.mathweb.fr\/euclide\/2020\/02\/06\/differentes-facons-de-calculer-1%c2%b22%c2%b2-n%c2%b2-en-python\/","url":"https:\/\/www.mathweb.fr\/euclide\/2020\/02\/06\/differentes-facons-de-calculer-1%c2%b22%c2%b2-n%c2%b2-en-python\/","name":"Diff\u00e9rentes fa\u00e7ons de calculer 1\u00b2+2\u00b2+...+n\u00b2 en Python - Mathweb.fr","isPartOf":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#website"},"datePublished":"2020-02-06T14:22:17+00:00","dateModified":"2020-04-19T14:16:39+00:00","breadcrumb":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2020\/02\/06\/differentes-facons-de-calculer-1%c2%b22%c2%b2-n%c2%b2-en-python\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mathweb.fr\/euclide\/2020\/02\/06\/differentes-facons-de-calculer-1%c2%b22%c2%b2-n%c2%b2-en-python\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.mathweb.fr\/euclide\/2020\/02\/06\/differentes-facons-de-calculer-1%c2%b22%c2%b2-n%c2%b2-en-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.mathweb.fr\/euclide\/"},{"@type":"ListItem","position":2,"name":"Diff\u00e9rentes fa\u00e7ons de calculer 1\u00b2+2\u00b2+&#8230;+n\u00b2 en Python"}]},{"@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\/2002","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=2002"}],"version-history":[{"count":0,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/posts\/2002\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/media?parent=2002"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/categories?post=2002"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/tags?post=2002"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}