birkenfeld hat geschrieben:Wo kommt denn die Aufgabe her? Ich würde nämlich sagen, als Aufgabe zum Lernen von REs ist sie überhaupt nicht geeignet.
Die Aufgabe kommt aus "How to program Python" von Deitel & Deitel. Leider etwas älter (Apr. 2002), aber ich hatte mir das Buch mal während meiner Studienzeit gekauft.
@Georg:
Einerseits gefällt mir die Lösung sehr gut, weil sie so simple ist. Anderseits hat das Buch nur die Funktionen re.compile, re.match, re.search, re.split und re.sub vorgestellt.
Ich bin heute morgen kurz über die Doku von re geflogen (
http://docs.python.org/lib/module-re.html) und muss nun zugeben, ja, da steht es. (jetzt wo ich es weiß)
Lösung 1, 2 und 4 verstehe ich ohne Probleme.
Mit deiner bevorzugten Variante, habe ich Probleme. Ich erkenne, dass die Methode len aufgerufen wird. Aber dann!
Die For-Schleife geht über den String und die If-Anweisung stellt fest, ob es sich um eine Zahl handelt.
Was mir zur Zeit nicht klar ist, warum stimmt die Syntax nicht mit der Python Syntax? Kein Doppelpunkt hinter for und if, kein Anweisungblock (hier hätte ich erwartet wird gezählt, wie in Lösung 4).
Warum char vor for und das Ganze (muss ich das nun groß schreiben) in eckigen Klammern?