Le piège de la méthode strip() des chaînes en Python | Sam & Max: Python, Django, Git et du cul

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'

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

  1. 02/10/2012 at 09:11

    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. 02/10/2012 at 09:19

    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')

     & 
    
    alert('XSS dans tes fesses')
  3. Sam
    02/10/2012 at 13:07

    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. fpp
    02/10/2012 at 19:52


    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. fpp
    02/10/2012 at 19:55


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

  6. 03/10/2012 at 07:27

    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.

Leave a Reply

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