Array bildung in Python für Palindrom

Hey zur zeit sieht mein "palindrom prüfer so aus

wort = raw_input(„wich word? :“)
print wort
x=0
y
while x

Hallo,

pre-Tags machen Sourcecode deutlich besser lesbar. Das gilt bei Pyhton ganz besonders, da Leerzeichen / Tabs auch eine Bedeutung haben.

wort = raw_input(„wich word? :“)
print wort
x=0
y
while x

Es funktioniert aufjedenfall nicht.

Das ist keine zielführende Fehlerbeschreibung, du bekommst doch sicher eine Fehlermeldung?

t(x) = wort(x)

Das Array (bzw. in Python ist das meines wissens eher List heißen http://docs.python.org/2/reference/datamodel.html#ob…) ist zunächst leer, d.h. du must den Wert mit Append anfügen:

while x 




> while y

y = len(wort) - 1
pali = []
while y \>= 0: 
 pali.append(wort[y])
 y -= 1

if wort == Pali

wort ist ein String, pali eine Liste (die Groß/Kleinschreibung nebenbei relevant), du musst also die beiden Listen miteinander vergleichen:

if pali == t:
 print"\nyes, it is Palindrom: %s" % pali

HTH
Heavy

while x x += 1

meintest schon x = x + 1 oder ist des ne kurzschreibweiße?

also Fahlermeldung nachdem er mich nach dem Wort gefragt hatte:
File"palindrom.py", line 7, in
t.append(wort[x])
IndexError: string index out of range

das passiert bei dem bisher abgeänderten „code“
hatte es schonmal mit versucht
da fehlt im aber
„function call“
y = -1 x=0
pali(y) = wort(x)
y=y-1 x=x+1

ich dachte mir halt auch noch mit dem jetztigen
pali = pali + wort(y)
y=y-1 o.ä.

aktueller Stand:

**wort = raw_input(„wich word? :“)
print wort
x=0
y=-1
while x

sagt aber wie ich dir gesagt hab oben Fehler ist out of range**

while x x += 1

meintest schon x = x + 1 oder ist des ne kurzschreibweiße?

Ja, das ist eine Kurzschreibweise.

aktueller Stand:

while x

Das sah in meiner Antwort ja auch anders aus. Die Länge ist z.B. 10, der Index beginnt aber bei 0, d.h. die einzelnen Character sind an den Positionen 0-9, an der Position 10 gibt es nichts mehr. Das Gleichheitszeichen muss also raus.

Außerdem muss die Liste außerhalb der Schleife initialisiert werden, sonst hast du am Schluß ein Liste die nur den letzten Buchstaben enthält.

while -y

Diese Syntax ist mir nicht geläufig (da ich eigentlich keine Anhung von Python habe), kann man aber wohl machen. Diesmal wäre aber dann

Hi c.Teufel,

Hast du schon mal vorher eine Programmiersprache gelernt? Wenn ja, dann sieht man das an deinem Quellcode und dass du dich mit Python, kein Meter auseinander gesetzt hast, falls nein, dann hast du auch „kein Wissen über andere Kontrollstrukturen“ und dein Code ist mir daher ein Rätsel, wie man sowas bauen kann, wenn man Python als erste Programmiersprache lernt…wie auch immer.

Die Aufgabe ist in Python sehr leicht zu lösen:

s = raw\_input()
if s == s[::-1]:
 print True

Das wars schon! Schau dir mal genau an, was in Python Sequenzielle Datentypen sind, Mapping, Mengen usw. vor allem Slicing auf den Datentyp „List“ aber auch Strings, sowie Tuples.

Als Anfang sollte das reichen -> http://openbook.galileocomputing.de/python/
Von Kapitel 1-15 durcharbeiten und du wirst nie wieder so eine Code in Python schreiben…viel Spass :wink:

Gruß XXD