Ich bin neu im Codieren also vergib mir, wenn ich etwas frage, das bereits beantwortet wurde, aber glaube mir, dass ich nach der Antwort gesucht habe und es nicht finden konnte.Python - Zähle Wörter in einem gegebenen Text
Ich habe eine Aufgabe zählen, wie viele der angegebenen Wörter im gegebenen Text sind. Wort kann ein Loch oder ein Teil eines anderen Wortes sein. Briefkasten spielt keine Rolle. Wenn das Wort mehrmals im Text erscheint, sollte es nur einmal gezählt werden. Bisher habe ich es geschafft, dies zu kommen:
def count_words(text, words):
count = 0
text = text.lower()
for w in words:
if w in text:
count =+ 1
print (count)
count_words("How aresjfhdskfhskd you?", {"how", "are", "you", "hello"})
count_words("Bananas, give me bananas!!!", {"banana", "bananas"})
count_words("Lorem ipsum dolor sit amet, consectetuer adipiscing elit.",
{"sum", "hamlet", "infinity", "anything"})
Mit diesem Code schaffe ich Endzahl von 1 für alle Baum Texte zu bekommen und dass nur dritte ist in Ordnung.
Wie ich sehe, ist mein erstes Problem, dass mein text.lower() nichts tut und ich hart es sollte alle Fälle senken.
Mein zweites Problem ist, dass im ersten Fall "Are" nicht in "aresjfhdskfhskd" gefunden wird, aber im dritten Fall "sum" in "ipsum" gefunden wird. Beide Wörter sind Teil eines größeren Wortes, aber das erste Wort wird nicht gefunden und das zweite ist es. Auch im zweiten Fall sollte Ergebnis 2 sein, weil es Bananen und Bananen gibt, ähnlich, aber unterschiedlich.
Vielen Dank im Voraus.
Ich bin noch nicht sicher über den zweiten und dritten Probleme, aber 'text.lower()' ändert nicht die Zeichenfolge . Es _returns_ die Zeichenfolge, aber in Kleinbuchstaben. Verwenden Sie 'text = text.lower()' – Arc676
Der entscheidende Fehler ist "count = + 1" gegen "count + = 1". – Joost
Danke euch beiden. Das hat einen Teil des Problems gelöst. – DejanJovanovic