{"id":1415,"date":"2019-07-14T09:32:29","date_gmt":"2019-07-14T07:32:29","guid":{"rendered":"https:\/\/www.mathweb.fr\/euclide\/?p=1415"},"modified":"2022-03-11T14:23:57","modified_gmt":"2022-03-11T13:23:57","slug":"reconnaitre-une-chaine-de-caracteres-palindrome-avec-python","status":"publish","type":"post","link":"https:\/\/www.mathweb.fr\/euclide\/2019\/07\/14\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\/","title":{"rendered":"Palindrome en Python: comment savoir si une cha\u00eene de caract\u00e8res en est?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Palindrome et Python font bon m\u00e9nage. Dans cet article, nous allons manipuler les cha\u00eenes de caract\u00e8res ainsi que  les dictionnaires en Python. Nous allons voir plusieurs m\u00e9thodes pour reconna\u00eetre une cha\u00eene palindrome. Cela nous donnera l&rsquo;occasion de manipuler les classes, les dictionnaires ainsi que certaines m\u00e9thodes Python concernant les cha\u00eenes de caract\u00e8res.<\/p>\n\n\n\n<!--more-->\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"767\" height=\"479\" src=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2020\/09\/palindrome-python.jpg\" alt=\"palindrome python\" class=\"wp-image-3581\" srcset=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2020\/09\/palindrome-python.jpg 767w, https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2020\/09\/palindrome-python-300x187.jpg 300w, https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2020\/09\/palindrome-python-600x375.jpg 600w\" sizes=\"auto, (max-width: 767px) 100vw, 767px\" \/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Avant de commencer cet article, n&rsquo;oubliez pas que des <a href=\"https:\/\/www.mathweb.fr\/euclide\/ressources-python\/\" target=\"_blank\" rel=\"noreferrer noopener\">ressources Python pour le lyc\u00e9e<\/a> sont aussi disponibles sur ce site.<\/p>\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\/2019\/07\/14\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\/#Rappels_sur_les_palindromes\" >Rappels sur les palindromes<\/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\/2019\/07\/14\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\/#Exploiter_la_symetrie_dun_palindrome_en_Python\" >Exploiter la sym\u00e9trie d&rsquo;un palindrome en Python<\/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\/2019\/07\/14\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\/#Standardiser_la_chaine_de_caracteres_pour_reconnaitre_un_palindrome_en_Python\" >Standardiser la cha\u00eene de caract\u00e8res pour reconna\u00eetre un palindrome en Python<\/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\/2019\/07\/14\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\/#On_lance_le_tout\" >On lance le tout<\/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\/2019\/07\/14\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\/#Le_programme_complet\" >Le programme complet<\/a><\/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\/2019\/07\/14\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\/#La_version_%C2%AB_class_%C2%BB\" >La version \u00ab\u00a0class\u00a0\u00bb<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.mathweb.fr\/euclide\/2019\/07\/14\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\/#Une_methode_plus_rapide_pour_reconnaitre_un_palindrome_en_Python\" >Une m\u00e9thode plus rapide pour reconna\u00eetre un palindrome en Python<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.mathweb.fr\/euclide\/2019\/07\/14\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\/#En_une_ligne%E2%80%A6\" >En une ligne&#8230;<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Rappels_sur_les_palindromes\"><\/span>Rappels sur les palindromes<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Un <em><a href=\"https:\/\/fr.wikipedia.org\/wiki\/Liste_de_palindromes_fran%C3%A7ais\" target=\"_blank\" rel=\"noreferrer noopener\">palindrome<\/a><\/em> est une entit\u00e9 qui se lit de la m\u00eame fa\u00e7on de gauche \u00e0 droite et de droite \u00e0 gauche. Par exemple, \u00ab\u00a0laval\u00a0\u00bb est un mot palindrome. De m\u00eame, \u00a0\u00bb la mari\u00e9e ira mal&nbsp;\u00a0\u00bb est une phrase palindrome. Concernant les nombres, \u00ab\u00a012321\u00a0\u00bb est aussi un palindrome.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Exploiter_la_symetrie_dun_palindrome_en_Python\"><\/span>Exploiter la sym\u00e9trie d&rsquo;un palindrome en Python<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Un palindrome est sym\u00e9trique : nous allons donc exploiter celle-ci avec Python pour voir si une cha\u00eene de caract\u00e8res est un palindrome.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9tant donn\u00e9e une cha\u00eene de caract\u00e8re \u00ab\u00a0a\u00a0\u00bb, on s&rsquo;appuie sur le fait que a[0] repr\u00e9sente le premier caract\u00e8re de \u00ab\u00a0a\u00a0\u00bb et que a[-1] repr\u00e9sente son dernier caract\u00e8re. Nous construisons donc une fonction qui va admettre pour argument une cha\u00eene de caract\u00e8res \u00ab\u00a0a\u00a0\u00bb et qui teste l&rsquo;\u00e9galit\u00e9 du 1er et dernier caract\u00e8re, puis du 2\u00e8me et p\u00e9nulti\u00e8me caract\u00e8re, puis du 3\u00e8me et ant\u00e9p\u00e9nulti\u00e8me caract\u00e8res, etc.<\/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 is_palindrome(a):\n    for i in range(len(a)\/\/2):\n        if a[i] != a[-i-1]:\n            return False\n    return True<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dans cette fonction, <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>on parcourt la moiti\u00e9 de la cha\u00eene de caract\u00e8res \u00ab\u00a0a\u00a0\u00bb. Ici, \u00ab\u00a0len(a) d\u00e9signe la longueur de la cha\u00eene, et len(a)\/\/2 repr\u00e9sente le quotient de la division euclidienne de cette longueur par 2. Ainsi, si \u00ab\u00a0a\u00a0\u00bb a une longueur impaire, on s&rsquo;arr\u00eate au caract\u00e8re juste avant celui du milieu;<\/li><li>dans la boucle <em>for<\/em>, on teste si le caract\u00e8re de rang <em>i<\/em> est diff\u00e9rent du caract\u00e8re de rang &#8211;<em>i<\/em>-1. Il faut ici faire attention au fait que, par exemple, a[0] repr\u00e9sente le 1er caract\u00e8re alors que a[-1] repr\u00e9sente le dernier, d&rsquo;o\u00f9 le d\u00e9calage : on ne marque pas a[-<em>i<\/em>] mais a[-<em>i<\/em>-1]. Si les caract\u00e8res sont diff\u00e9rents alors la cha\u00eene n&rsquo;est pas un palindrome. On retourne donc <em>False<\/em>, ce qui stoppe la boucle;<\/li><li>on finit par retourner <em>True<\/em> si False n&rsquo;a pas \u00e9t\u00e9 retourn\u00e9.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Standardiser_la_chaine_de_caracteres_pour_reconnaitre_un_palindrome_en_Python\"><\/span>Standardiser la cha\u00eene de caract\u00e8res pour reconna\u00eetre un palindrome en Python<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La phrase : \u00ab\u00a0Tu l&rsquo;as trop \u00e9cras\u00e9, C\u00e9sar, ce Port-Salut\u00a0\u00bb est un palindrome. Mais en l&rsquo;\u00e9tat, la fonction pr\u00e9c\u00e9demment \u00e9crit ne la reconna\u00eet pas comme un palindrome : il est n\u00e9cessaire de standardiser l&rsquo;\u00e9criture de la cha\u00eene, c&rsquo;est-\u00e0-dire de tout mettre en minuscules, de remplacer les caract\u00e8res accentu\u00e9s par leur \u00e9quivalent sans accents et d&rsquo;enlever les caract\u00e8res \u00ab\u00a0g\u00eanants\u00a0\u00bb comme les espaces et les signes de ponctuation.  On va donc faire appel \u00e0 un dictionnaire <em>car <\/em>(comme \u00ab\u00a0<em>car<\/em>act\u00e8res\u00a0\u00bb) :<\/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=\"\">car = {\n        \"\u00e0\" : \"a\",\n        \"\u00e4\" : \"a\",\n        \"\u00e2\" : \"a\",\n        \"\u00e7\" : \"c\",\n        \"\u00e9\" : \"e\",\n        \"\u00e8\" : \"e\",\n        \"\u00eb\" : \"e\",\n        \"\u00ef\" : \"i\",\n        \"\u00f4\" : \"o\",\n        \"\u00f9\" : \"u\",\n        \"\u00fc\" : \"u\",\n        \"\u00fb\" : \"u\",\n        \" \" : \"\",\n        \"-\" : \"\",\n        \",\" : \"\",\n        \"'\" : \"\",\n        \"?\" : \"\",\n        \"!\" : \"\",\n        \".\" : \"\"\n    }<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Les <em>cl\u00e9s<\/em> de ce dictionnaire sont les caract\u00e8res \u00e0 remplacer et leur <em>valeur<\/em> sont les caract\u00e8res \u00e0 substituer. Par exemple, l&rsquo;espace est remplac\u00e9 par un vide (comme tous les caract\u00e8res de ponctuation). <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il ne reste plus qu&rsquo;\u00e0 \u00e9crire une fonction qui se charge de tout mettre en minuscules puis d&rsquo;effectuer les substitutions :<\/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 moulinette(a):\n    a = a.lower()\n    for cle,valeur in car.items():\n        a = a.replace(cle,valeur)\n    return a<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"On_lance_le_tout\"><\/span>On lance le tout<span class=\"ez-toc-section-end\"><\/span><\/h2>\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=\"\">a = moulinette(input(\"Entrez une phrase : \"))\n\nif is_palindrome(a) == True:\n    print(\"C'est un palindrome.\")\nelse:\n    print(\"Ce n'est pas un palindrome.\")<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ici, je passe tout de suite \u00e0 la moulinette ce que je rentre au clavier, puis je teste si c&rsquo;est un palindrome.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Le_programme_complet\"><\/span>Le programme complet<span class=\"ez-toc-section-end\"><\/span><\/h2>\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=\"\"># Reconna\u00eetre si une cha\u00eene de caract\u00e8res est palindrome\n\ndef is_palindrome(a):\n    for i in range(len(a)\/\/2):\n        if a[i] != a[-i-1]:\n            return False\n    return True\n\n# Dictionnaire associatif des caract\u00e8res accentu\u00e9es en langue francophone\n\ncar = {\n        \"\u00e0\" : \"a\",\n        \"\u00e4\" : \"a\",\n        \"\u00e2\" : \"a\",\n        \"\u00e7\" : \"c\",\n        \"\u00e9\" : \"e\",\n        \"\u00e8\" : \"e\",\n        \"\u00eb\" : \"e\",\n        \"\u00ef\" : \"i\",\n        \"\u00f4\" : \"o\",\n        \"\u00f9\" : \"u\",\n        \"\u00fc\" : \"u\",\n        \"\u00fb\" : \"u\",\n        \" \" : \"\",\n        \"-\" : \"\",\n        \",\" : \"\",\n        \"'\" : \"\",\n        \"?\" : \"\",\n        \"!\" : \"\",\n        \".\" : \"\"\n    }\n\n# Remplacer des caract\u00e8res par d'autres\n\ndef moulinette(a):\n    a = a.lower()\n    for cle,valeur in car.items():\n        a = a.replace(cle,valeur)\n    return a\n\n# MAIN\n\na = moulinette(input(\"Entrez une phrase : \"))\n\nif is_palindrome(a) == True:\n    print(\"C'est un palindrome.\")\nelse:\n    print(\"Ce n'est pas un palindrome.\")<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"La_version_%C2%AB_class_%C2%BB\"><\/span>La version \u00ab\u00a0class\u00a0\u00bb<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Une autre mani\u00e8re de coder ceci est de passer par une classe. Bon, ici, ce n&rsquo;est pas vraiment utile (pour ce genre d&rsquo;exercice&#8230;) mais cela me donne l&rsquo;occasion d&rsquo;en parler&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&rsquo;id\u00e9e est donc ici de cr\u00e9er une classe <em>palindrome<\/em> qui peut retourner:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>soit la cha\u00eene de caract\u00e8res une fois pass\u00e9e \u00e0 la moulinette;<\/li><li>soit la r\u00e9ponse (\u00e0 savoir si c&rsquo;est un palindrome ou non).<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Voyons de suite le code complet:<\/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=\"\">car = {\n        \"\u00e0\" : \"a\",\n        \"\u00e4\" : \"a\",\n        \"\u00e2\" : \"a\",\n        \"\u00e7\" : \"c\",\n        \"\u00e9\" : \"e\",\n        \"\u00e8\" : \"e\",\n        \"\u00eb\" : \"e\",\n        \"\u00ef\" : \"i\",\n        \"\u00f4\" : \"o\",\n        \"\u00f9\" : \"u\",\n        \"\u00fc\" : \"u\",\n        \"\u00fb\" : \"u\",\n        \" \" : \"\",\n        \"-\" : \"\",\n        \",\" : \"\",\n        \"'\" : \"\",\n        \"?\" : \"\",\n        \"!\" : \"\",\n        \".\" : \"\"\n    }\n\n\nclass palindrome:\n    def __init__(self,chain):\n        self.chain = chain\n\n    def moulinette(self):\n        a = self.chain.lower()\n        for cle,valeur in car.items():\n            a = a.replace(cle,valeur)\n        return str(a)\n\n    def is_it(self):\n        pal = True\n        a = palindrome(self.chain).moulinette()\n\n        for i in range(len(a)\/\/2):\n            if a[i] != a[-i-1]:\n                pal = False\n                break\n\n        if pal == True:\n            print(\"C'est un palindrome !\")\n        else:\n            print(\"Ce n'est pas un palindrome...\")\n\npalindrome(input(\"Entrez une cha\u00eene de caract\u00e8res : \")).is_it()<\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>La premi\u00e8re partie de la classe permet de faire en sorte que la classe <em>palindrome<\/em> admette un argument;<\/li><li>ensuite, on cr\u00e9\u00e9 des <em>m\u00e9thodes<\/em> li\u00e9es \u00e0 la classe : <em>moulinette<\/em> et <em>is_it<\/em>.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Une_methode_plus_rapide_pour_reconnaitre_un_palindrome_en_Python\"><\/span>Une m\u00e9thode plus rapide pour reconna\u00eetre un palindrome en Python<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cette m\u00e9thode est int\u00e9ressante car tr\u00e8s courte.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il suffit en effet d&rsquo;utiliser la librairie <em>unidecode<\/em> (pour transformer les caract\u00e8res accentu\u00e9s en leur \u00e9quivalents sans accent), la m\u00e9thode [::-1] (appliqu\u00e9e \u00e0 une cha\u00eene de caract\u00e8res) pour la renverser et la m\u00e9thode lower().<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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=\"\">from unidecode import unidecode\n\nphrase = input('Entrez une phrase, un mot ou un nombre : ')\nsymb = [ \"'\" , \":\" , \";\" , \",\" , \"-\" , \"?\" , \"!\" , \" \" , \".\" ]\nfor i in phrase:\n    if i in symb:\n        phrase = phrase.replace(i,\"\")\n\nif unidecode(phrase.lower()) == unidecode(phrase[::-1].lower()):\n    print(\"C'est un palindrome !\")\nelse:\n    print(\"Ce n'est pas un palindrome...\")<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Avouez que c&rsquo;est bien plus rapide !<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ici, apr\u00e8s avoir saisi la phrase (ou le mot), on commence par exclure les symboles qui sont dans la liste <em>symb<\/em> (lignes 4 \u00e0 7), puis on compare la phrase ainsi obtenue (en minuscules et sans accent) \u00e0 son inverse.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"En_une_ligne%E2%80%A6\"><\/span>En une ligne&#8230;<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Il est aussi possible de faire bien plus rapide \u00e0 l&rsquo;aide d&rsquo;une fonction lambda (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=\"\">is_palindrome = lambda n: str(n) == str(n)[::-1] if isinstance(n,int) else n == n[::-1] if isinstance(n,str) else False<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>>>> is_palindrome(12345)\nFalse\n>>> is_palindrome(1234554321)\nTrue\n>>> is_palindrome('abccba')\nTrue<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c7a, c&rsquo;est vraiment la classe&#8230; \ud83d\ude42<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bien s\u00fbr, avec cette version, il faut faire attention aux caract\u00e8res accentu\u00e9s. Si on ajoute \u00e0 cela les majuscules, on n&rsquo;est pas sortir de l&rsquo;affaire! Allez, on y va, mais la promesse d&rsquo;une ligne n&rsquo;est plus tenue car on fait tout de m\u00eame appel \u00e0 la libraire <em>unidecode<\/em>.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">from unidecode import unidecode\n\nis_palindrome = lambda n: str(n) == str(n)[::-1] if isinstance(n,int) else unidecode(n).replace(' ','').lower() == unidecode(n)[::-1].replace(' ','').lower() if isinstance(n,str) else False<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>>>> is_palindrome('No\u00ebl a trop par rapport \u00e0 L\u00e9on')\nTrue<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Il ne reste plus que les autres sigles (signes de ponctuation) \u00e0 \u00e9liminer.<\/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 unidecode import unidecode\n\nepure = lambda c: ''.join( [ i for i in c if i not in [ \"'\" , \":\" , \";\" , \",\" , \"-\" , \"?\" , \"!\" , \" \" , \".\" ] ] )\n\nis_palindrome = lambda n: str(n) == str(n)[::-1] if isinstance(n,int) else epure(unidecode(n)).replace(' ','').lower() == epure(unidecode(n))[::-1].replace(' ','').lower() if isinstance(n,str) else False<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>>>> is_palindrome('No\u00ebl a trop par rapport \u00e0 L\u00e9on.')\nTrue<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c7a fait le job! Cela dit, c&rsquo;est assez peu lisible hein ?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Palindrome et Python font bon m\u00e9nage. Dans cet article, nous allons manipuler les cha\u00eenes de caract\u00e8res ainsi que les dictionnaires en Python. Nous allons voir plusieurs m\u00e9thodes pour reconna\u00eetre une cha\u00eene palindrome. Cela nous donnera l&rsquo;occasion de manipuler les classes, les dictionnaires ainsi que certaines m\u00e9thodes Python concernant les cha\u00eenes [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3734,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,5],"tags":[130,132,129,131,128,101],"class_list":["post-1415","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-informatique","category-python","tag-chaine-de-caracteres","tag-classe","tag-dictionnaire","tag-minuscules","tag-palindrome","tag-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Palindrome et Python: comment reconna\u00eetre ? - Mathweb.fr<\/title>\n<meta name=\"description\" content=\"Comment reconna\u00eetre un palindrome en Python ? Il existe plusieurs m\u00e9thodes, dont une tr\u00e8s simple. Nous en voyons trois dans cet article.\" \/>\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\/2019\/07\/14\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Palindrome et Python: comment reconna\u00eetre ? - Mathweb.fr\" \/>\n<meta property=\"og:description\" content=\"Comment reconna\u00eetre un palindrome en Python ? Il existe plusieurs m\u00e9thodes, dont une tr\u00e8s simple. Nous en voyons trois dans cet article.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mathweb.fr\/euclide\/2019\/07\/14\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\/\" \/>\n<meta property=\"og:site_name\" content=\"Mathweb.fr\" \/>\n<meta property=\"article:published_time\" content=\"2019-07-14T07:32:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-11T13:23:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2019\/07\/palindrome-python.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:title\" content=\"Reconna\u00eetre un palindrome en Python\" \/>\n<meta name=\"twitter:description\" content=\"Comment reconna\u00eetre un palindrome en Python ? Il existe plusieurs m\u00e9thodes, dont une tr\u00e8s simple. Nous en voyons trois dans cet article.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2020\/09\/palindrome-python.jpg\" \/>\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=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2019\\\/07\\\/14\\\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2019\\\/07\\\/14\\\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\\\/\"},\"author\":{\"name\":\"St\u00e9phane Pasquet\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"headline\":\"Palindrome en Python: comment savoir si une cha\u00eene de caract\u00e8res en est?\",\"datePublished\":\"2019-07-14T07:32:29+00:00\",\"dateModified\":\"2022-03-11T13:23:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2019\\\/07\\\/14\\\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\\\/\"},\"wordCount\":947,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2019\\\/07\\\/14\\\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/palindrome-python.jpg\",\"keywords\":[\"cha\u00eene de caract\u00e8res\",\"classe\",\"dictionnaire\",\"minuscules\",\"palindrome\",\"python\"],\"articleSection\":[\"Informatique\",\"Python\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2019\\\/07\\\/14\\\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2019\\\/07\\\/14\\\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\\\/\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2019\\\/07\\\/14\\\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\\\/\",\"name\":\"Palindrome et Python: comment reconna\u00eetre ? - Mathweb.fr\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2019\\\/07\\\/14\\\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2019\\\/07\\\/14\\\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/palindrome-python.jpg\",\"datePublished\":\"2019-07-14T07:32:29+00:00\",\"dateModified\":\"2022-03-11T13:23:57+00:00\",\"description\":\"Comment reconna\u00eetre un palindrome en Python ? Il existe plusieurs m\u00e9thodes, dont une tr\u00e8s simple. Nous en voyons trois dans cet article.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2019\\\/07\\\/14\\\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2019\\\/07\\\/14\\\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2019\\\/07\\\/14\\\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/palindrome-python.jpg\",\"contentUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/palindrome-python.jpg\",\"width\":740,\"height\":198,\"caption\":\"palindrome Python\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2019\\\/07\\\/14\\\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Palindrome en Python: comment savoir si une cha\u00eene de caract\u00e8res en est?\"}]},{\"@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":"Palindrome et Python: comment reconna\u00eetre ? - Mathweb.fr","description":"Comment reconna\u00eetre un palindrome en Python ? Il existe plusieurs m\u00e9thodes, dont une tr\u00e8s simple. Nous en voyons trois dans cet article.","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\/2019\/07\/14\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\/","og_locale":"fr_FR","og_type":"article","og_title":"Palindrome et Python: comment reconna\u00eetre ? - Mathweb.fr","og_description":"Comment reconna\u00eetre un palindrome en Python ? Il existe plusieurs m\u00e9thodes, dont une tr\u00e8s simple. Nous en voyons trois dans cet article.","og_url":"https:\/\/www.mathweb.fr\/euclide\/2019\/07\/14\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\/","og_site_name":"Mathweb.fr","article_published_time":"2019-07-14T07:32:29+00:00","article_modified_time":"2022-03-11T13:23:57+00:00","og_image":[{"width":740,"height":198,"url":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2019\/07\/palindrome-python.jpg","type":"image\/jpeg"}],"author":"St\u00e9phane Pasquet","twitter_card":"summary_large_image","twitter_title":"Reconna\u00eetre un palindrome en Python","twitter_description":"Comment reconna\u00eetre un palindrome en Python ? Il existe plusieurs m\u00e9thodes, dont une tr\u00e8s simple. Nous en voyons trois dans cet article.","twitter_image":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2020\/09\/palindrome-python.jpg","twitter_misc":{"\u00c9crit par":"St\u00e9phane Pasquet","Dur\u00e9e de lecture estim\u00e9e":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.mathweb.fr\/euclide\/2019\/07\/14\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\/#article","isPartOf":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2019\/07\/14\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\/"},"author":{"name":"St\u00e9phane Pasquet","@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"headline":"Palindrome en Python: comment savoir si une cha\u00eene de caract\u00e8res en est?","datePublished":"2019-07-14T07:32:29+00:00","dateModified":"2022-03-11T13:23:57+00:00","mainEntityOfPage":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2019\/07\/14\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\/"},"wordCount":947,"commentCount":1,"publisher":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"image":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2019\/07\/14\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2019\/07\/palindrome-python.jpg","keywords":["cha\u00eene de caract\u00e8res","classe","dictionnaire","minuscules","palindrome","python"],"articleSection":["Informatique","Python"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.mathweb.fr\/euclide\/2019\/07\/14\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.mathweb.fr\/euclide\/2019\/07\/14\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\/","url":"https:\/\/www.mathweb.fr\/euclide\/2019\/07\/14\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\/","name":"Palindrome et Python: comment reconna\u00eetre ? - Mathweb.fr","isPartOf":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2019\/07\/14\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\/#primaryimage"},"image":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2019\/07\/14\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2019\/07\/palindrome-python.jpg","datePublished":"2019-07-14T07:32:29+00:00","dateModified":"2022-03-11T13:23:57+00:00","description":"Comment reconna\u00eetre un palindrome en Python ? Il existe plusieurs m\u00e9thodes, dont une tr\u00e8s simple. Nous en voyons trois dans cet article.","breadcrumb":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2019\/07\/14\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mathweb.fr\/euclide\/2019\/07\/14\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.mathweb.fr\/euclide\/2019\/07\/14\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\/#primaryimage","url":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2019\/07\/palindrome-python.jpg","contentUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2019\/07\/palindrome-python.jpg","width":740,"height":198,"caption":"palindrome Python"},{"@type":"BreadcrumbList","@id":"https:\/\/www.mathweb.fr\/euclide\/2019\/07\/14\/reconnaitre-une-chaine-de-caracteres-palindrome-avec-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.mathweb.fr\/euclide\/"},{"@type":"ListItem","position":2,"name":"Palindrome en Python: comment savoir si une cha\u00eene de caract\u00e8res en est?"}]},{"@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\/1415","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=1415"}],"version-history":[{"count":0,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/posts\/1415\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/media\/3734"}],"wp:attachment":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/media?parent=1415"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/categories?post=1415"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/tags?post=1415"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}