Seite 1 von 1
Problem Namen umdrehen geht nicht
Verfasst: Sonntag 16. Mai 2010, 08:32
von sebastian3984
Meine Idee
Ich habe mir überlegt ein einfaches kleines Programm zu machen um einen Namen umzudrehen.
Mein Problem
Python sagt das die Synaxt falsch ist
Ich habe versucht eine Variable in k.A wie das heist ^^ zu schreiben aber es geht nicht.
Mein Python Code
Code: Alles auswählen
'''
Titel: Namen Umdrehen
Beschreibung: Dreht den Eingegebenen Namen um.
Autor: @Sebastian
'''
eingabe =(raw_input("Geben sie ihren Namen ein: "))
laenge = len(eingabe)
string_umgedreht = [laenge::-1] # <- Wie soll ich hier die Variable angeben ?
print string_umgedreht
Nicht sauer sein wen die Frage dumm ist aber ich lern ja Python ^^
MFG Sebastian
Re: Problem Namen umdrehen geht nicht
Verfasst: Sonntag 16. Mai 2010, 08:41
von Pekh
Wenn man ein sog. Slicing vornimmt (das sind die eckigen Klammern in deinem Beispiel), muß man angeben, was "geschnitten" werden soll. Das hast du ja auch erkannt. Wenn du dir dein Tutorial oder wo auch immer du das [laenge::-1] her hast noch mal genauer anschaust, solltest du eigentlich sehen, wo da die Variable ins Spiel kommt. Ansonsten google mal nach "python" und "slicing".
Re: Problem Namen umdrehen geht nicht
Verfasst: Sonntag 16. Mai 2010, 08:49
von sebastian3984
Ehm habe schon ein TuT aber da ist das bsp nicht drin. Bitte eine andere Loesung vorschlagen hab die idee ausm kopf gehabt xD
Ich benutz das galileo openbook python
Re: Problem Namen umdrehen geht nicht
Verfasst: Sonntag 16. Mai 2010, 09:32
von Pekh
Selbst im Openbook sollte das erklärt sein. Sliciing ist letztlich ja auch nur Variante des indizierten Zugriffs. Wie würdest du denn auf das i-te Element einer Liste zugreifen?
Verstehe bitte, warum wir dir hier nicht einfach die Lösung vorkauen wollen. Eine Programmiersprache zu lernen geht nur durch eigenes anwenden. Wenn wir dir hier einfach hinklatschen wie man es macht und du es einfach abschreibst lernst du weniger dabei. Programmieren lernen heißt auch, den Umgang mit Referenzen und der Dokumentation zu erlernen. Mit dem Stichwort "slicing" z.B. solltest du schnell fündig werden. Das Credo hier im Forum läßt sich am Besten mit "Hilfe zur Selbsthilfe" umschreiben. Wir helfen gerne bei komplexeren Problemen, möchten aber im Gegenzug auch sehen, daß unsere Hilfe auf fruchtbaren Boden fällt.
Re: Problem Namen umdrehen geht nicht
Verfasst: Sonntag 16. Mai 2010, 09:40
von sebastian3984
Ich wuerde die loesung ja nicht einfach abschreiben sondern versuchen zu verstehen
Re: Problem Namen umdrehen geht nicht
Verfasst: Sonntag 16. Mai 2010, 09:43
von BlackJack
@sebastian3984: An welchen Namen wird denn die Zeichenkette gebunden, die der Benutzer eingibt? Und welcher Name muss in dem Ausdruck, der diese Zeichenkette dann umdrehen soll, auf jeden Fall schon einmal vorkommen?
Erklär doch mal in Worten im Detail was Du denkst was jede Zeile die Du geschrieben hast, genau für Auswirkungen hat.
Re: Problem Namen umdrehen geht nicht
Verfasst: Sonntag 16. Mai 2010, 09:52
von sebastian3984
Code: Alles auswählen
'''
Titel: Namen Umdrehen
Beschreibung: Dreht den Eingegebenen Namen um.
Autor: @Sebastian
'''
eingabe =(raw_input("Geben sie ihren Namen ein: ")) # Benutzer eingabe wird eingelesen und in den string gespeichert
laenge = len(eingabe) # Variable laenge wird angelegt und die laenger der variable eingabe wird geprueft
string_umgedreht = [laenge::-1] # string wird umgedreht die laenge von der eingabe wurde als variable eingebunden
print string_umgedreht # Variable wird ausgegeben
Re: Problem Namen umdrehen geht nicht
Verfasst: Sonntag 16. Mai 2010, 09:59
von Pekh
sebastian3984 hat geschrieben:Code: Alles auswählen
string_umgedreht = [laenge::-1] # string wird umgedreht die laenge von der eingabe wurde als variable eingebunden
Gut. Die
Länge der Eingabe hast du eingebunden. Ob du die brauchst, lasse ich mal dahingestellt. Aus der Zuweisung und dem verwendeten Namen schließe ich mal, daß da am Ende die umgedrehte Eingabe bei rauskommen soll ( schlau, gell? ). Schauen wir uns also den rechten Teil an. Da scheint die Länge irgendeine Rolle zu spielen. Aber kannst du nur aus der Länge die (umgedrehte) Eingabe bestimmen? Was fehlt, und wo könnte es hinkommen? Hast du schon mal einfach probiert? Daß du dir "[::-1]" aus den Fingern gezogen hast, nehme ich dir übrigens nicht ab. Du mußt es irgendwo gesehen haben. Wo? In welchem Zusammenhang?
Re: Problem Namen umdrehen geht nicht
Verfasst: Sonntag 16. Mai 2010, 10:08
von sebastian3984
Das steht im buch
Eine negative Schrittweite bewirkt ein Rückwärtszählen vom Start- zum Endindex, wobei in diesem Fall der Startindex auf ein weiter hinten liegendes Element der Sequenz als der Endindex verweisen muss. Mit einer Schrittweite von -1 lässt sich sehr elegant eine Sequenz »umdrehen«:
>>> name = "ytnoM Python"
>>> name[4::-1]
'Monty'
>>> name[::-1]
'nohtyP Monty'
Bei negativen Schrittweiten vertauschen sich Anfang und Ende der Sequenz. Deshalb wird in dem Beispiel name[4::-1] nicht alles vom vierten bis zum letzten Zeichen, sondern der Teil vom vierten bis zum ersten Zeichen ausgelesen.
Re: Problem Namen umdrehen geht nicht
Verfasst: Sonntag 16. Mai 2010, 10:11
von Leonidas
Na dann hast du ja schon deine Variable. Schau doch mal genau hin, was da umgedreht wird und übernehme das für dein Problem.
Re: Problem Namen umdrehen geht nicht
Verfasst: Sonntag 16. Mai 2010, 10:14
von sebastian3984
Ich blicks nicht ...
Re: Problem Namen umdrehen geht nicht
Verfasst: Sonntag 16. Mai 2010, 10:21
von Pekh
Schau mal zwischen "=" und "[" ...
Re: Problem Namen umdrehen geht nicht
Verfasst: Sonntag 16. Mai 2010, 10:30
von sebastian3984
ups vergessen THX fuer die hilfe !