Alain Ketterlin :
Il me semble que le piège le plus ... piégeux est dans l'interprêtation
de la chaîne paramètre, qu'il faut lire comme une liste de caractères
(chaînes de longueur unité, en Python ?). Cette chaîne est nommée
/chars/ dans la documentation, d'ailleurs. Et également dans la
compréhension de ce qui se passe précisément quand on applique deux
fois strip(). 'abax'.strip('a').strip('b') enlève d'abord autant de
caractères a successifs que possible aux deux bouts de 'abax' (ici, un
seul, à gauche). Ensuite on applique strip('b') au résultat, c'est à
dire qu'on enlève autant de caractères b successifs que possible aux
deux bouts de 'bax', le résultat est donc 'ax'.
'abax'.strip('b').strip('a') donnerait un autre résultat ('bax').
'abax'.strip('ab') ne fera qu'une passe. Enfin, une double passe, un
coup à gauche, un coup à droite. Il enlève à chacun des bouts autant de
caractères a ou b successifs que possible.
C'est peut-être plus simple de le voir comme l'application récursive
d'un strip() qui n'enlèverait qu'un caractère.
'abax'.strip('ba') donnera le même résultat, bien entendu.
--
Pierre Maurette