Stringmanipulation

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Durandal
User
Beiträge: 2
Registriert: Sonntag 27. Februar 2005, 23:41

Ich grüße euch.

Ich bin C/C++ programmierer und habe daher ein paar Probleme mit der Stringmanipulation von Python:

Während ich in C/C++ die meisten Probleme algorythmisch selbst lösen musste/konnte, bin ich in Python stark an die Verwendung vorhandener Funktionen gebunden.

Zunächst mal will ich die Stringlänge überprüfen. Hierbei will ich die Anzahl der Wörter überprüfen. Als nächstes will ich einen String in die einzelnen Wörter aufsplitten, auf welche ich dann einzeln zugreifen kann.
Bei ihnen will ich dann z.B. die Anzahl der Buchstaben herausfinden.
Als letztes will ich dann die einzelnen Wörter mit anderen vergleichen (z.B. ob sie identisch sind)

Gibt es irgendwo sinnvolle Erklärungen zu den Funktionen, welche ich hierfür brauche?
Gibt es zur Stringmanipulation irgendwo sinnvolle Tutorials?
Bisher habe ich nur halbe Referenzen gefunden, mit welchen ich aber in der Praxis wenig anfangen konnte.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Hi

Wenn Du erst einmal das Tutorial gelesen hast, sollten alle Deine Fragen beantwortet sein. Du findest es hier: http://www.python.org/doc/
Das hört sich jetzt wie eine RTFM-Antwort an und sicher könnte man alle Deine Fragen einzeln beantworten, aber wenn Du das erst einmal gelesen hast (Du braucht eigentlich nur den ersten Teil), dann wirst Du sehen, daß alle Deine Probleme verschwunden sind und Python sicher nicht problematischer als C++ ist! Du wirst, mit Deinem Vorwissen in C++, höchsten eine bis zwei Stunden brauchen, um alle Deine Fragen beantwortet zu haben und dann steht dem Einstieg in Python nichts mehr im Wege.

Herzlich willkommen in Forum und viel Erfolg,
Christian
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Durandal hat geschrieben:Ich grüße euch.
Hallo Durandal, willkommen im Forum.

Ich habe mal den Thread verschoben, da mir nicht klar geworden ist was Stringmanipulation mit Netzwerken zu tun hat.
Durandal hat geschrieben:Zunächst mal will ich die Stringlänge überprüfen. Hierbei will ich die Anzahl der Wörter überprüfen. Als nächstes will ich einen String in die einzelnen Wörter aufsplitten, auf welche ich dann einzeln zugreifen kann.
Das ist kein Thema:

Code: Alles auswählen

s = "Haskell O'Caml Lisp Ruby Python Scheme"
words = s.split()
# jetzt kannst du mit print words gucken was passiert ist
print words
print words[1]
print len(words)
Durandal hat geschrieben:Bei ihnen will ich dann z.B. die Anzahl der Buchstaben herausfinden.
Das ist genausowenig ein problem, jetzt kommt eine kompliziertere Sache:

Code: Alles auswählen

lens = [len(word) for word in words]
# ^^ ist ja praktisch wie englisch, nicht wie Python
print lens
Durandal hat geschrieben:Als letztes will ich dann die einzelnen Wörter mit anderen vergleichen (z.B. ob sie identisch sind)
Geht mit ==.
Durandal hat geschrieben:Gibt es irgendwo sinnvolle Erklärungen zu den Funktionen, welche ich hierfür brauche?

Code: Alles auswählen

dir(s)
help(str)
Durandal hat geschrieben:Gibt es zur Stringmanipulation irgendwo sinnvolle Tutorials?
Es ist imho so einfach, dass man keine Tutorials braucht. Auch die Slice Syntax ist genial einfach.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

David Mertz's Text Processing in Python ist ein Buch zum Thema, das man auf der Homepage auch kostenlos als Textversion herunterladen kann.
Durandal
User
Beiträge: 2
Registriert: Sonntag 27. Februar 2005, 23:41

Ok - vielen Dank für eure Antworten (besonders Leonidas)
Ihr seid mir eine große Hilfe :D

Ok und das mit dem falschen Forum war mein Fehler - falsch gelesen.
Benutzeravatar
tjuXx
User
Beiträge: 67
Registriert: Freitag 21. September 2007, 09:25
Wohnort: Bremerhaven
Kontaktdaten:

Hi, ich habe ein ähnliches Problem wie Durandal. Habe vor zwei wochen mit begonnen Python zu lernen.
Jetzt steh ich vor dem Problem, das ich einen Sting mit einem Dateipfad habe.

bsp: "C:/ordner/andererordener/bild.jpg"

Diesen string möchte ich jetzt so zerlegen, dass ich den Dateinamen extrahieren kann (bild.jpg).

Ich muss ja wahrscheinlich einen auch den split() Funktion, irgendwie mit dem Zeichen "/" verbinden???

Kann mir jemand helfen??

Gruß TjuXx

Edit:

habe es hinbekommen. :D

Code: Alles auswählen

splitpath = path.split("/")
filename = splitpath [-1]
jetzt stellt sich gleich das nächste Problem:

Gelöst

wie führe ich den Ordnerpfad jetzt am geschicktesten wieder zusammen, sodas ich dann "C:/ordner/andererordener/" habe??

[/code]
Zuletzt geändert von tjuXx am Donnerstag 27. September 2007, 09:40, insgesamt 3-mal geändert.
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

tjuXx hat geschrieben:...
Dafür gibt's die os.path^_^

Code: Alles auswählen

import os
os.path.basename("C:/ordner/andererordener/bild.jpg")
Könntest natürlich auch das machen:

Code: Alles auswählen

foo = "C:/ordner/andererordener/bild.jpg"
foo = foo.split("/")
dateiname = foo[-1]
Mit REs ginge es bestimmt auch oO!
Benutzeravatar
tjuXx
User
Beiträge: 67
Registriert: Freitag 21. September 2007, 09:25
Wohnort: Bremerhaven
Kontaktdaten:

danke für die schnelle antwort, habe ich für die os.path.basename funktion entschieden, da ich os.path eh schon importiert habe.

Code: Alles auswählen

import os
path = os.path.dirname("C:/ordner/andererordener/bild.jpg")
extrahiert den Pfad. ("C:/ordner/andererordener")

Vielen dank.....

:D
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

und beides wieder Zusammenfügen mit os.path.join(), damit es nicht zu doppelten Slashes o.ä. kommt.
Antworten