Hey Leute,
ich schreibe gerade ein Programm für das es nötig ist festzustellen, wo in einem string ein Buchstabe ist. Allerdings muss es nicht die genaue Position sein, sondern man darf Buchstabenketten durch ein + trennen.
Beispiel: Hallo+ICH+HEISSE+IMPERATOR
Nun muss das programm jeden dieser abschnitte an einen Namen binden und außerdem die Reihenfolge bestimmen.
Aber geht das überhaupt und wenn ja, würde ich mich über Hilfe freuen.
Wo ist welcher Buchstabe
Moin,
Die split-Methode kann für dich interessant sein, um an die Wörter zwischen den Plus heranzukommen.
Einfach mal hier schauen: http://docs.python.org/lib/string-methods.html
Gruß,
Manuel
ich versteh zwar nicht, was genau du willst, aber die Position von einem bestimmten Buchstaben in einem String bekommst du mit den String-Methoden 'find' oder 'index'.Imperator hat geschrieben:Hey Leute,
ich schreibe gerade ein Programm für das es nötig ist festzustellen, wo in einem string ein Buchstabe ist. Allerdings muss es nicht die genaue Position sein, sondern man darf Buchstabenketten durch ein + trennen.
Beispiel: Hallo+ICH+HEISSE+IMPERATOR
Nun muss das programm jeden dieser abschnitte an einen Namen binden und außerdem die Reihenfolge bestimmen.
Aber geht das überhaupt und wenn ja, würde ich mich über Hilfe freuen.
Die split-Methode kann für dich interessant sein, um an die Wörter zwischen den Plus heranzukommen.
Einfach mal hier schauen: http://docs.python.org/lib/string-methods.html
Gruß,
Manuel
@Imperator: Irgendwie ist der erste Satz total sinnlos. Der Rest des Beitrags ist auch nicht klarer.
Vielleicht könntest Du das Problem auch mal so erklären das auch jemand der nicht Deine Gedanken lesen kann, etwas mit der Frage anfangen kann!?
Vielleicht könntest Du das Problem auch mal so erklären das auch jemand der nicht Deine Gedanken lesen kann, etwas mit der Frage anfangen kann!?
@helduel: das könnte helfen, danke
@BlackJack: Ich versuche es anders zu erklären. Man wird nach einer Eingabe gefragt. Statt den Leerzeichen wird dabei '+' verwendet.
Hier nochmal das Beispiel: HALLO+ICH+HEISSE+IMPERATOR
Im Beispiel ist HALLO der erste Abschnit, ICH der zweite und soweiter. Nun sol das programm erkennen was der erste, der zweite ... Abschnitt ist, und jeweils an einen Namen binden. War das so verständlicher?
@BlackJack: Ich versuche es anders zu erklären. Man wird nach einer Eingabe gefragt. Statt den Leerzeichen wird dabei '+' verwendet.
Hier nochmal das Beispiel: HALLO+ICH+HEISSE+IMPERATOR
Im Beispiel ist HALLO der erste Abschnit, ICH der zweite und soweiter. Nun sol das programm erkennen was der erste, der zweite ... Abschnitt ist, und jeweils an einen Namen binden. War das so verständlicher?
-
- User
- Beiträge: 419
- Registriert: Sonntag 3. September 2006, 15:11
- Wohnort: in den weiten von NRW
- Kontaktdaten:
Hi!
Mit [String].split([String]) oder string.split([String], [String]) kannst du Zeichenketten trennen.
Aber was meinst du mit "an einen Namen binden"? Wenn du eine Feste Anzahl an Wörtern hast und dann das erste an eine Variable "wort1" oder so binden willst, kann ich dir davon nur abraten. Zum einen ist es unnötige Schreibarbeit und außerdem überhaupt nicht dynamisch. Besser wäre, einach die Liste, die die split-Funktion zurückgibt, zu verwenden, oder, wenn du Namen brauchst, diese in ein Dict umzuwandeln, beidem du dann als Keys deine Namen nehmen kannst.
Bsp:
Ausgabe:
Gruß, jj
Mit [String].split([String]) oder string.split([String], [String]) kannst du Zeichenketten trennen.
Aber was meinst du mit "an einen Namen binden"? Wenn du eine Feste Anzahl an Wörtern hast und dann das erste an eine Variable "wort1" oder so binden willst, kann ich dir davon nur abraten. Zum einen ist es unnötige Schreibarbeit und außerdem überhaupt nicht dynamisch. Besser wäre, einach die Liste, die die split-Funktion zurückgibt, zu verwenden, oder, wenn du Namen brauchst, diese in ein Dict umzuwandeln, beidem du dann als Keys deine Namen nehmen kannst.
Bsp:
Code: Alles auswählen
s = "Was+auch+immer"
d = {}
for nr, wort in enumerate(s.split("+")):
d[str(nr)] = wort
print d
Code: Alles auswählen
{'1': 'auch', '0': 'Was', '2': 'immer'}
Warum nicht einfach
@Imperator: meinst du sowas?(ungetestet)
Code: Alles auswählen
satz = "Was+auch+immer"
woerter = satz.split("+")
print woerter[0] # Was
print woerter[2] # immer
print woerter # [Was, auch, immer]
Code: Alles auswählen
text = "Die+ist+ein+doofer+Test"
print "Ein 'e' befindet sich:"
for n, wort in text.split("+"):
if "e" in wort:
print "Im %i.Wort an %iter Stelle" % (n, wort.index("e")) # achtung, findet nur das erste "e"
-
- User
- Beiträge: 419
- Registriert: Sonntag 3. September 2006, 15:11
- Wohnort: in den weiten von NRW
- Kontaktdaten:
Das hab ich ja auch beschrieben, nur wollte ich noch ein anderes Bsp. bringen, da mich das "an einen Namen binden" etwas gestört hat.
Danke Leute, ich denke damit dürfte ich es hinkriegen.
@Imperator: meinst du sowas?(ungetestet)[/quote]
Nein, es geht um was anderes. Und jetzt bräuchte ich doch nochmal Hilfe, und zwar habe ich gemacht. Außerdem die Variable . Nun eine print Anweisung:
Aber es wird nicht mal ein Freiraum gelassen bevor der text ausgegeben wird. Aber es kommt auch keine Fehlermeldung.
Code: Alles auswählen
text = "Die+ist+ein+doofer+Test"
print "Ein 'e' befindet sich:"
for n, wort in text.split("+"):
if "e" in wort:
print "Im %i.Wort an %iter Stelle" % (n, wort.index("e")) # achtung, findet nur das erste "e"
Nein, es geht um was anderes. Und jetzt bräuchte ich doch nochmal Hilfe, und zwar habe ich
Code: Alles auswählen
Laenge = len(Abschnitte[0])
Code: Alles auswählen
Freiraum = ''
Code: Alles auswählen
print (Freiraum * Laenge + Text)
Dein Freiraum ist auch ein Lerstring mit Länge 0...
(BTW: Lies dir mal PEP 8 auch, Variablennamen sollten keine Großbuchstaben enthalten. Das ist natürlich kein Fehler, widerspricht nur der Styleguide)
Code: Alles auswählen
freiraum = ' '
Juhu, danke! Daran hab ich gar nicht gedacht. Mit diesem thread hab ich nen riesen schritt nach vorne gemacht!