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.
Stringmanipulation
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
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
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Hallo Durandal, willkommen im Forum.Durandal hat geschrieben:Ich grüße euch.
Ich habe mal den Thread verschoben, da mir nicht klar geworden ist was Stringmanipulation mit Netzwerken zu tun hat.
Das ist kein Thema: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.
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)
Das ist genausowenig ein problem, jetzt kommt eine kompliziertere Sache:Durandal hat geschrieben:Bei ihnen will ich dann z.B. die Anzahl der Buchstaben herausfinden.
Code: Alles auswählen
lens = [len(word) for word in words]
# ^^ ist ja praktisch wie englisch, nicht wie Python
print lens
Geht mit ==.Durandal hat geschrieben:Als letztes will ich dann die einzelnen Wörter mit anderen vergleichen (z.B. ob sie identisch sind)
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)
Es ist imho so einfach, dass man keine Tutorials braucht. Auch die Slice Syntax ist genial einfach.Durandal hat geschrieben:Gibt es zur Stringmanipulation irgendwo sinnvolle Tutorials?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
David Mertz's Text Processing in Python ist ein Buch zum Thema, das man auf der Homepage auch kostenlos als Textversion herunterladen kann.
- 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.
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]
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.
Code: Alles auswählen
splitpath = path.split("/")
filename = splitpath [-1]
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.
Dafür gibt's die os.path^_^tjuXx hat geschrieben:...
Code: Alles auswählen
import os
os.path.basename("C:/ordner/andererordener/bild.jpg")
Code: Alles auswählen
foo = "C:/ordner/andererordener/bild.jpg"
foo = foo.split("/")
dateiname = foo[-1]
- 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.
extrahiert den Pfad. ("C:/ordner/andererordener")
Vielen dank.....
Code: Alles auswählen
import os
path = os.path.dirname("C:/ordner/andererordener/bild.jpg")
Vielen dank.....