Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

cmd strip

6 réponses
Avatar
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\r'
>>> rx=tx+'\n414000000010\n\n>'
>>> print tx
0140
>>> print rx
0140
414000000010

>
>>> print rx.strip(tx).strip('\n').strip('4'+tx[1:3]).strip('\n\n>')
000000010
>>> print rx.strip(tx+'\n').strip('4'+tx[1:3]).strip('\n\n>')

>>> print rx.strip(tx+'\r\n').strip('4'+tx[1:3]).strip('\n\n>')

>>>


pourquoi il faut que je fasse
rx=rx.strip(tx)
rx=rx.strip('\n')
print rx

et pas

rx=rx.strip(tx+'\n')
print rx

une idee peut etre

merci remy


--
http://remyaumeunier.chez-alice.fr/

6 réponses

Avatar
Alain Ketterlin
remy writes:

il n'y a pas un petit probleme



Ah ben d'accord alors.

tx='0140r'
rx=tx+'n414000000010nn>'







pourquoi il faut que je fasse
rx=rx.strip(tx)
rx=rx.strip('n')
print rx

et pas

rx=rx.strip(tx+'n')
print rx



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.
Avatar
Pierre Maurette
Alain Ketterlin :
remy writes:

il n'y a pas un petit probleme



Ah ben d'accord alors.

tx='0140r'
rx=tx+'n414000000010nn>'









pourquoi il faut que je fasse
rx=rx.strip(tx)
rx=rx.strip('n')
print rx

et pas

rx=rx.strip(tx+'n')
print rx



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



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
Avatar
remy
Le 18/01/2012 16:26, Alain Ketterlin a écrit :
remy writes:

il n'y a pas un petit probleme



Ah ben d'accord alors.

tx='0140r'
rx=tx+'n414000000010nn>'









pourquoi il faut que je fasse
rx=rx.strip(tx)
rx=rx.strip('n')
print rx

et pas

rx=rx.strip(tx+'n')
print rx



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 pa s
équivalent à strip('ab') (par exemple sur 'abax').




ok d'ou le retour '>' subtil le bouzin ...

merci remy









--
http://remyaumeunier.chez-alice.fr/
Avatar
remy
non désoler mais je doit être boucher


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/
Avatar
Pierre Maurette
remy :
non désoler mais je doit être boucher


tx
'0140r'

rx
'0140rn414000000010nn>'

rx.strip(tx)
'n414000000010nn>'

ok la cmd a sorti '0140r'



Essayez:
ty = '140r' # ou 'r041' ou '1r04' etc.
print rx.strip(ty)
Même sortie. Et c'est normal.

rx.strip(tx).strip('n')
'414000000010nn>'

ok le premier a sorti '0140r' le deuxième a sortie 'n'
et rien a la fin



Normal.

maintenant

rx.strip(tx+'n')
'>'

la cmd a donc sortie 0140rn414000000010nn
et cela me pose un petit pb de comprendre



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:

<doc python 2.7>
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 '.strip()






'spacious'
'www.example.com'.strip('cmowz.')






'example'
</doc python 2.7>

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.




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



--
Pierre Maurette
Avatar
remy
Le 19/01/2012 15:44, Pierre Maurette a écrit :
Return a copy of the string with the leading and trailing characters
removed. The chars argument is a string specifying the set of character s
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:



combinaisons de ses valeurs et oui merci je me coucherai moins con
puisque dans

0140rn414000000010nn>

si je vire 0 ,1,4,0,r,et n il ne me reste plus que >

remy




--
http://remyaumeunier.chez-alice.fr/