cmd strip
Le
remy
bonjour
il n'y a pas un petit probleme
remy@remy:~/Bureau/odb2/code$ python
Python 2.7.2+ (default, Oct 4 2011, 20:03:08)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> tx='0140'
>>> rx=tx+'414000000010>'
>>> print tx
0140
>>> print rx
0140
414000000010
>
>>> print rx.strip(tx).strip('').strip('4'+tx[1:3]).strip('>')
000000010
>>> print rx.strip(tx+'').strip('4'+tx[1:3]).strip('>')
>>> print rx.strip(tx+'').strip('4'+tx[1:3]).strip('>')
>>>
pourquoi il faut que je fasse
rx=rx.strip(tx)
rx=rx.strip('')
print rx
et pas
rx=rx.strip(tx+'')
print rx
une idee peut etre
merci remy
--
http://remyaumeunier.chez-alice.fr/
il n'y a pas un petit probleme
remy@remy:~/Bureau/odb2/code$ python
Python 2.7.2+ (default, Oct 4 2011, 20:03:08)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> tx='0140'
>>> rx=tx+'414000000010>'
>>> print tx
0140
>>> print rx
0140
414000000010
>
>>> print rx.strip(tx).strip('').strip('4'+tx[1:3]).strip('>')
000000010
>>> print rx.strip(tx+'').strip('4'+tx[1:3]).strip('>')
>>> print rx.strip(tx+'').strip('4'+tx[1:3]).strip('>')
>>>
pourquoi il faut que je fasse
rx=rx.strip(tx)
rx=rx.strip('')
print rx
et pas
rx=rx.strip(tx+'')
print rx
une idee peut etre
merci remy
--
http://remyaumeunier.chez-alice.fr/

Poser une question


Ah ben d'accord alors.
strip() n'enlève des caractères qu'aux extrémités, et * pas* Ã
l'intérieur de la chaîne. strip('a').strip('b') n'est donc pas
équivalent à strip('ab') (par exemple sur 'abax').
-- Alain.
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
ok d'ou le retour '>' subtil le bouzin ...
merci remy
--
http://remyaumeunier.chez-alice.fr/
tx
'0140r'
rx
'0140rn414000000010nn>'
rx.strip(tx)
'n414000000010nn>'
ok la cmd a sorti '0140r'
rx.strip(tx).strip('n')
'414000000010nn>'
ok le premier a sorti '0140r' le deuxième a sortie 'n'
et rien a la fin
maintenant
rx.strip(tx+'n')
'>'
la cmd a donc sortie 0140rn414000000010nn
et cela me pose un petit pb de comprendre
par contre
rx='abaaaaaedax'
rx.strip('a')
'baaaaaedax'
ok la cmd a sorti a
rx.strip('ab')
'edax'
ok la cmd a sorti tout les a et b
ce qui ne me pose pas de problème de compréhension
merci pour vos Lumière
remy
--
http://remyaumeunier.chez-alice.fr/
Essayez:
ty = '140r' # ou 'r041' ou '1r04' etc.
print rx.strip(ty)
Même sortie. Et c'est normal.
Normal.
tx+'n' == '0140rn'
regardez list(tx+'n') et set(list(tx+'n'))
Reportez-vous à ma réponse précédente (confuse, j'en conviens), ou à la
documentation de base:
str.strip([chars])
Return a copy of the string with the leading and trailing characters
removed. The chars argument is a string specifying the set of
characters to be removed. If omitted or None, the chars argument
defaults to removing whitespace. The chars argument is not a prefix or
suffix; rather, all combinations of its values are stripped:
'spacious'
'example'
Ici, rien ne sera strippé à droite (le '>' n'est pas dans le set).
En revanche, tous les caractères à partir de la gauche et jusqu'au '>'
non compris sont dans le set et seront donc strippés.
--
Pierre Maurette