Listenprogramm - Wöter suchen und ersetzen!

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
pantoffeltierchen
User
Beiträge: 16
Registriert: Donnerstag 30. November 2006, 17:48
Wohnort: Berlin
Kontaktdaten:

Donnerstag 30. November 2006, 18:05

Sehr geehrte Python Fans,

ich hab mich nun endlich entschlossen auf dem Forum anzumelden, weil ich ca. 8 Wochen die Programmiersprache Python lerne.
Doch aller Anfang ist schwer und da dachte ich mir ihr/Sie können mir helfen es handelt sich vll. um eine triviale Sache die für mich als Neulings sich nicht so einfach gestaltet^^

Ich habe ein kleines Python Programm, das einen Text in eine Liste packt und nach Elementen sucht und dessen Wahrheitswert wiedergibt.

Anschließend sucht es nach Buchstaben und ersetzt diese!

Jetzt mein Problem:

Ich möchte gerne das das Programm nach Wörtern sucht und diese ersetzt, so das man ganze Sätze eingeben kann.
Doch leider weiß ich nicht wie Python Buchstaben als Gruppe erkennt und diese ändert. Ich dachte das man vll. jedes einzelne Wort in eine extra Liste packt doch irgendwie..mh

Vll. könnte mir jemand helfen!!

Hier das Programm:

Code: Alles auswählen

# -*- coding: cp1252 -*-
def text2liste(text):
    liste =  []
    for i in text:
        liste.append(i)

    return liste

def suchebuchstabe(text, buchstabe):
    for i in text:
        if i == buchstabe:
            return True
    return False

def ersetzebuchstabe(text, buchstabe_alt, buchstabe_neu):
    liste = text2liste(text)
    for i in range (len(liste)):
        if liste[i] == buchstabe_alt:
            liste[i] = buchstabe_neu       
    return liste

def dez2bin(zahl):
    erg=[]
    while zahl >0:
        erg.insert(0,zahl%2)
        zahl=zahl/2
    for i in erg:
        print i,

def liste2text(liste):
    text = ' '
    for i in liste:
        text = text + i

    return text


def finde_wort(text, wort):
    



'''def ersetzewort (text, wort_alt, wort_neu):
    neue_liste = text2liste(text)
    for i in range (len(liste)):
        if liste[i] == wort_alt:
            liste[i] = wort_neu       
    return liste
'''

text = raw_input ('Geben sie den zu durchsuchenden Text ein:')    
buchstabe = raw_input ('Geben sie den gesuchten Buchstaben an:')

print suchebuchstabe(text, buchstabe)

buchstabe_alt = raw_input ('Geben sie den Buchstaben an, der ersetzt werden soll:')
buchstabe_neu = raw_input ('Geben sie den Buchstaben an, welcher dafuer eingefügt werdden soll:')


print ersetzebuchstabe(text, buchstabe_alt, buchstabe_neu)
neue_liste=ersetzebuchstabe(text, buchstabe_alt, buchstabe_neu)
print liste2text(neue_liste)

wort_alt = raw_input ('Geben sie das Wort ein, welches ersetzt werden soll:')
wort_neu = raw_input ('Geben sie das Wort ein, was dafuer eingefuegt werden soll:')

print ersetzewort(text, wort_alt,wort_neu)



    
dez2bin kann vernach lässigt werden das war nur so! *sry*

Mit Listen zu arbeiten ist noch Neuland, genauso wie eine GUI zu erstellen was natürlich hierbei noch das I-Tüpfelchen sein würde!!^^

Falls ihr vll. noch Anregungen habt was ich vll noch so hinzufügen könnte um Wörter zu veränder oder andere Sachen, wäre ich auch sehr dankbar.

MfG Pantoffeltierchen!
BlackJack

Donnerstag 30. November 2006, 18:43

Du willst da sehr viel in ganz kleinen Schritten "von Hand" zu programmieren was es schon gibt:

Code: Alles auswählen

def main():
    text = raw_input('Geben sie den zu durchsuchenden Text ein:')
    buchstabe = raw_input('Geben sie den gesuchten Buchstaben an:')
    print buchstabe in text

    wort_alt = raw_input('altes Wort:')
    wort_neu = raw_input('neues Wort:')
    text = text.replace(wort_alt, wort_neu)
    print text

if __name__ == '__main__':
    main()
Ob eine Zeichenkette in einer anderen enthalten ist, testet man mit dem ``in`` Operator. Und Zeichenketten ersetzen, geht mit der `replace()`-Methode. Einzelne Buchstaben sind in beiden Fällen nur Sonderfälle von Zeichenketten -- eben Zeichenketten mit der Länge 1.

Bei `replace()` muss man beachten, das Zeichenketten in Python "immutable" sind, d.h. nicht verändert werden können. Solche Operationen liefern also immer eine neue, veränderte Zeichenkette zurück.
pantoffeltierchen
User
Beiträge: 16
Registriert: Donnerstag 30. November 2006, 17:48
Wohnort: Berlin
Kontaktdaten:

Donnerstag 30. November 2006, 19:16

He danke dir!!

das mit replace wusste ich noch nicht!!! Ich werds gleich mal ausprobieren!
Antworten