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'

No related posts.

flattr this!

6 comments

  1. 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'
  2. 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')
  3. 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…


  4. 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.


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

  6. 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.

Flux RSS des commentaires

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

Jouer à mario en attendant que les autres répondent