Seite 1 von 1
Warum funktioniert die Funktion strip() unter Python 2.2 nic
Verfasst: Dienstag 23. September 2003, 14:11
von 2bock_
Ich habe zur Zeit Python 2.2.2 auf dem System und entgegen einiger Bücher und Meldungen aus diversen Foren funktioniert bei mir die Funktion strip() nicht. Klar ich hab an den import der Klasse String usw. gedacht.
Ich hab das Problem auf eine sehr unschöne Art und WEise gelöst. Aber mich wurmt es halt immer noch, warum strip() nicht funktioniert.
Danke schon mal für die aufklärenden Antworten von euch.
2bock

Verfasst: Dienstag 23. September 2003, 14:24
von Milan
gib mal bitte Codebeispiele und deren Ausgabe an, damit man sich das mal näher anschauen kann... Aus dem Hilfetext geht ja hervor, dass das 2. Argument erst später dazukam, aber ich (wir) wissen ja nicht wie du strip benutzen willst.
python.org Documentation hat geschrieben:
strip(s, [chars])
Return a copy of the string with leading and trailing characters removed. If chars is omitted or None, whitespace characters are removed. If given and not None, chars must be a string; the characters in the string will be stripped from the both ends of the string this method is called on. Changed in version 2.2.3: The chars parameter was added. The chars parameter cannot be passed in earlier 2.2 versions.
Verfasst: Dienstag 23. September 2003, 16:11
von 2bock_
>>> import string
>>> test = 'bla bla bla bla bla bla bla'
>>> test.strip(test,' ')
Traceback (most recent call last):
File "<pyshell#2>", line 1, in ?
test.strip(test,' ')
TypeError: strip() takes at most 1 argument (2 given)
>>>
Hier ein kleines Codebeispiel.
Verfasst: Dienstag 23. September 2003, 16:19
von Voges
Hallo!
2bock_ hat geschrieben:>>> test.strip(test,' ')
Das kannst Du aber so nirgends gelesen haben.
Es geht entweder so (alter Stil):
import string
test = string.strip(test,' ')
oder so (neuer Stil):
test = test.strip(' ')
Jan
*kopfschüttel*
Verfasst: Mittwoch 24. September 2003, 08:24
von 2bock_
>>> import string
>>> test = 'la la la la la la la la'
>>> test=test.strip(' ')
>>> print test
la la la la la la la la
>>>
>>> test = string.strip(test,' ')
>>> print test
la la la la la la la la
>>>
ich habe es nocheinmal ausprobiert ganz nach Deinen Anregungen Jan.
Ich habe beide Versionen ausprobiert und das sind die Resultate. Bitte sag mir das ich nen Flüchtigkeitsfehler habe. Ich verstehe nämlich mittlerweile nicht mehr Warum das anscheinend nur bei mir ncith funktioniert.
Trotzdem Danke für die bisherigen Hilfen.
2bock
Re: *kopfschüttel*
Verfasst: Mittwoch 24. September 2003, 08:53
von Voges
Hallo!
2bock_ hat geschrieben:
Ich habe beide Versionen ausprobiert und das sind die Resultate. Bitte sag mir das ich nen Flüchtigkeitsfehler habe.
Wie war der Spruch?
Der Computer macht nicht das, was man will, sondern das was man ihm sagt.
Anscheinend willst Du die Leerzeichen inmitten des Strings löschen. strip() löscht aber nur "
leading and trailing" Zeichen. Entweder Du nimmst string.replace() oder, falls Du eine Zeichenmenge hast, string.translate(). Ein Beispiel für Letzteres, da das Wie vielleicht nicht so offensichtlich ist:
>>> test = "ABCD"
>>> print test.translate(string.maketrans("",""),"AC")
BD
>>>
Ein regulärer Ausdruck ginge auch, wäre aber hier "überqualifiziert".
Jan
Danke. Bin äußerst positiv überrascht.
Verfasst: Mittwoch 24. September 2003, 09:07
von 2bock_
Danke Hans. Wie oben zu lesen, bin ich positiv überrascht. Warum steht eigentlich so was gutes nicht in meinen Büchern?
Egal trozdem herzlichen Dank.
2bock
Verfasst: Mittwoch 24. September 2003, 10:41
von Dookie
Hallo,
um alle Whitespaces aus einem String zu löschen oder zu ersetzten kann mans auch so machen:
Code: Alles auswählen
>>> test = "bla bla bla bla"
>>> print "".join(test.split())
blablablabla
>>> test2 = "bla bla\nbla\tbla"
>>> print test2
bla bla
bla bla
>>> print "".join(test2.split())
blablablabla
Gruß
Dookie