Le piège de la méthode strip() des chaînes en Python


strip(), et ses acolytes lstrip() et rstrip(), ne retirent pas la chaîne de caractères aux extrémités d’une autre chaîne de caractères.

Elles retirent des extrémités toutes lettres qui sont dans la chaînes passée en paramètre. La nuance est subtile, mais c’est la différence entre ça:

>>> "# ##  # test ".strip('# ') # comportement attendu mais faux
'##  # test '

Et ça:

>>> "# ##  # test ".strip('# ') # comportement réel
'test'

7 thoughts on “Le piège de la méthode strip() des chaînes en Python

  • Recher

    Merci pour l’info. Cependant, c’est un léger Captain Obvious, puisque c’est déjà expliqué dans la doc de python, avec exemple à l’appui :
    http://docs.python.org/library/stdtypes.html#str.strip

    Un truc un peu moins Captain Obvious, et que j’aimerais bien savoir, c’est la liste exacte des caractères strippés lorsqu’on exécute la fonction sans paramètres.

    L’aide indique laconiquement que ça enlève les “whitespace characters”. Ca enlève les ” “, mais aussi d’autres choses plus ou moins folkloriques : tabulations, saut de lignes. Je serais curieux de les connaître exhaustivement.

    Exemple :

    >>> a = 't r n plop  plup n r t'
    >>> a.strip()
    'plop  plup'
  • Recher

    Traitement de caractère spéciaux fail ?

    Puisque c’est comme ça j’essaie des trucs.

    &

    alert(‘XSS dans tes fesses’)

    &

    alert('XSS dans tes fesses')

     &amp; <!-- burp -->
     
    alert('XSS dans tes fesses')
  • Sam Post author

    Il faut utiliser les boutons “code” et “code coloré” dans la barre d’outils au dessus du formulaire de commande.

    edit: Ah, mais tu l’as fais en fait. Putain de wordpress…

  • fpp


    string.whitespace

    A string containing all characters that are considered whitespace. On most systems this includes the characters space, tab, linefeed, return, formfeed, and vertical tab.

  • fpp


    In [1]: import string
    In [2]: string.whitespace
    Out[2]: '\t\n\x0b\x0c\r '

  • Recher

    Ah bien vu, m’sieur Achille Talon. Ca marche.

    Merci pour l’info !

    Sur ce, je laisse Sam et/ou Max débugger tout le code de WordPress.

  • Ajira

    ça a l’air de rien comme ça, mais si tu connais pas l’astuce, tu debug un moment ton code T_T

Comments are closed.

Des questions Python sans rapport avec l'article ? Posez-les sur IndexError.