Hi auch, ich muss dich leider enttäuschen das Programm funktioniert leider nicht. Der Grund hierfür ist ein bisschen tückisch. Eines muss man sich in Python merken, in Python sind alles Objekte (Ich hoffe die meisten wissen was ein Objekt ist ;)) und die variablen sind nur Namen unter denen man diese Objekte findet. In diesem Fall sind die Namen für ein und das selbe Objekt: Buchstabenliste und etsilnebatshcuB. Das heißt jede Aktion die auf den einen Namen durchführe in diesem Fall das Reverse hat auch Auswirkungen auf den anderen Namen da beide auf das selbe Objekt zeigen! Um dieses Programm jetzt trotzdem richtig zum Arbeiten zu bekommen muss man eine Kopie der Liste erstellen. Dies kann man über das copy Modul machen. Eine Lösung für dieses Programm ist also:
============================================== import copy Wort = raw_input("Bitte Text eingeben:") Buchstabenliste = list(Wort) etsilnebatshcuB = copy.copy(Buchstabenliste) etsilnebatshcuB.reverse() if Buchstabenliste == etsilnebatshcuB: print("%s ist ein Palindrom") % Wort else: print("%s ist kein Palindrom") % Wort ============================================== Um sich das ganze nochmal Bildlich darzustellen kann man die buildin Methode id() verwenden. Beispiel: ============================================== Wort = raw_input("Bitte Text eingeben:") Buchstabenliste = list(Wort) etsilnebatshcuB = Buchstabenliste print id(etsilnebatshcuB) + "==" + id(Buchstabenliste) etsilnebatshcuB = copy.copy(Buchstabenliste) print id(etsilnebatshcuB) + "!=" + id(Buchstabenliste) ============================================== Dieses Beispiel gibt aus das die internen IDs unter denen Python die Objekte verwaltet im ersten Fall gleich sind es sich also um das selbe Objekt handelt und im anderen Fall diese IDs ungleich sind und es sich hierbei um zwei unabhängige Objekte handelt. Warum ich eine main Funktion definiert habe, ist einfach damit ich mich an PEP8 halte bzw. ist dies guter Stil. Denn Funktionalität die man eine Funktion kapselt kann widerverwendet werden. Ob man sich an PEP8 hält kann man ja einfach durch pylint erfahren. Gruß Malte -----Ursprüngliche Nachricht----- Von: trolug-boun...@trolug.de [mailto:trolug-boun...@trolug.de] Im Auftrag von Jonas Stein Gesendet: Mittwoch, 11. März 2009 17:30 An: trolug@trolug.de Betreff: [Trolug] Palindrome nochmal kurz Hallo hier sende ich nochmal eine kurze Version von dem Palindromprogramm ohne Kommentare. Man sieht, wie kurz es ist. ============================================== Wort = raw_input("Bitte Text eingeben:") Buchstabenliste = list(Wort) etsilnebatshcuB = Buchstabenliste etsilnebatshcuB.reverse() if Buchstabenliste == etsilnebatshcuB: print("%s ist ein Palindrom") % Wort else: print("%s ist kein Palindrom") % Wort ============================================== Noch ein paar Gedanken von mir zum Vortrag: * Das Liveimage hatte sich bewaehrt. Vielleicht koennen wir es fuers naechste mal noch etwas anpassen. Der Fokuswechsel von den Fenstern hat scheinbar viele irritiert. * Waere es auch noch moeglich einen PDF-Viewer und vim und emacs dabei zu packen? Ich denke wir werden das noch ein paar mal nutzen... * Genuegt es eine Version online zu stellen, mit der wir alle Rechner booten koennen? Ich glaube von CD konnten (ausser Frank) alle starten, oder? * Ich glaube im Nachhinein, die Kommentarzeilen haben eher den Ueberblick genommen. Vielleicht sollte man die ersten Programme ohne Kommentarzeilen zeigen. Nachher ist man schlauer... * Die naechsten Vortraege sollten etwas mehr zu Grundlagen sein. Ich habe noch eine Frage an Malte, und zwar ist es falsch, die main(): Zeile wegzu lassen, oder ist es nur dringend empfohlen? Und warum macht man es, wenn das Programm auch ohne laeuft? Herzliche Gruesse, -- Jonas Stein <n...@jonasstein.de> _______________________________________________ Trolug_trolug.de mailing list trolug@trolug.de https://ml01.ispgateway.de/mailman/listinfo/trolug_trolug.de _______________________________________________ Trolug_trolug.de mailing list trolug@trolug.de https://ml01.ispgateway.de/mailman/listinfo/trolug_trolug.de