Python: Problem mit Stringbearbeitung
steffi
- sonstiges
moin!
was ist denn bitte das problem bei dem code:
def woerter_ermitteln(txt):
wort=re.compile("[\wäüöÄÜÖß]+",re.I)
worte=wort.findall(txt)
return worte
def woerter_zaehlen(txt):
worte=woerter_ermitteln(txt)
anzahl=len(txt)
return anzahl
def wort_zaehlen(wort,txt):
worte=woerter_ermitteln(txt)
for wort in worte:
if wort==wort:
anzahl=anzahl+1
return anzahl
==> in wort_zaehlen
worte=woerter_ermitteln(txt)
TypeError: woerter_ermitteln() takes no arguments (1 given)
:-(
danke für hilfe
Hallo Steffi,
worte=woerter_ermitteln(txt)
TypeError: woerter_ermitteln() takes no arguments (1 given)
Dieser Fehler taucht normalerweise dann auf, wenn man in der Definition der Funktion das korrekte Definieren der Argumente dieser Funktion vergisst. Mal ein Beispiel aus dem Interpreter:
def bla():
... pass
...
bla(foo)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: bla() takes no arguments (1 given)
Ich würde stark vermuten, dass in Deiner tatsächlichen Funktion der Parameter fehlt.
Mal nebenbei gefragt: Ist das eine Übungsaufgabe für Uni, Schule, Ausbildung? Ich frage, weil Du Dir das Leben eher schwer machst, für jede Kleinigkeit eine Funktion definierst und die mächtigen eingebauten Funktionen Pythons übergehst. Ich gehe mal davon aus, dass Deine Variable „txt“ ein String ist. Dann sähe meine Funktion, die Anzahl des Vorkommens eines Wortes in einem gegebenen String zu ermitteln ungefähr so aus ...
def countWords(word, string):
words = string.split() # String in eine Liste aufspalten
return words.count(word) # Zählen, wie oft das Wort in der Liste enthalten ist
... wenn ich denn für so etwas je eine einzelne Funktion schreiben würde. Wenn man von einer anderen Programmiersprache zu Python kommt, verschwendet man gerade am Anfang recht viel Quellcode, bis man dann merkt, es geht auch anders. Dann will man es nicht mehr missen. ;)
Tim