Seite 1 von 2

Tab/space Error

Verfasst: Freitag 5. Oktober 2007, 11:03
von Kazius
hi
pyhton beschwert sicher dauernt über die Einrückung.
"Error:inconsistent indentation detected!"
Ich hab schon alles probiert, wiede run wieder mit Tab eingerückt...fehler
Mit Leerzeichen klappt es auch nicht.
Bei meinem letzten Programm war der Fehler auch schon, aber lässt sich einfach nicht beheben.
bei der Fehler Meldung steht noch als 2. Behebungsmethode:
"To fix case 2, change all tabs to spaces by using Edit->Select All followed by Format->Untabify Region and specify the number of columns used by each tab."
Nur leider gibt es unter Edit den diesen Punkt nicht <.<
pls help
mfg

Verfasst: Freitag 5. Oktober 2007, 11:24
von mkesper
Da wir leider nicht wissen, welchen Editor Du benutzt, können wir Dir auch nicht sagen, wo die Option sich verstecken könnte.

Verfasst: Freitag 5. Oktober 2007, 11:27
von Kazius
python 2.5 IDLE (Python GUI)
glaub ich mal, der odrner heißt python 25, müsste also 2.5 sein

Verfasst: Freitag 5. Oktober 2007, 12:21
von gerold
Kazius hat geschrieben:python 2.5 IDLE (Python GUI)
glaub ich mal, der odrner heißt python 25, müsste also 2.5 sein
Hallo Kazius!

Willkommen im Python-Forum!

Stelle Idle so ein, dass es standardmäßig immer vier Leerzeichen für die Einrückung verwendet:
Options -> Configure Idle... --> Fonts/Tabs --> Indentation Width: 4 Spaces

Danach musst du alle Tabulatoren in deinem Programm durch vier Leerzeichen ersetzen. Händisch -- so viel Code kann das ja noch nicht sein. Das macht IDLE nicht automatisch. Es rückt jetzt zwar zwar immer bei Tab um genau vier Leerzeichen ein, kann aber deinen bereits existierenden Code nicht bereinigen.

mfg
Gerold
:-)

Verfasst: Freitag 5. Oktober 2007, 12:46
von Kazius
hi,
danke für die hilfe
aber es bringt nichts. Idle war die ganze Zeit auf 4 Zeilen eingestellt.
Das problem kommt erst ab einer while schleife. und habe ich jetzt die tabs mit leerzeichen ersetzt, ohne erfolg >.<*

würde gern den code posten, ka wie das geht^^

Verfasst: Freitag 5. Oktober 2007, 12:57
von ChrisGTJ
Kazius hat geschrieben:hi,
danke für die hilfe
aber es bringt nichts. Idle war die ganze Zeit auf 4 Zeilen eingestellt.
Das problem kommt erst ab einer while schleife. und habe ich jetzt die tabs mit leerzeichen ersetzt, ohne erfolg >.<*

würde gern den code posten, ka wie das geht^^
Nutze das code tag:

[ code = py ]
blahblah
[ / code ]

Wenn Du die Leerzeichen zwischen den Klammern wegläßt und blahblah durch Deinen Code ersetzt, geht's.

Gruß,

Christoph

Verfasst: Freitag 5. Oktober 2007, 13:35
von Kazius
hmm bringt auch nichts ._.

Verfasst: Freitag 5. Oktober 2007, 13:51
von Andy
ChrisGTJ hat geschrieben: Nutze das code tag:

[ code=py ]
blahblah
[ /code ]

Wenn Du die Leerzeichen zwischen den Klammern wegläßt und blahblah durch Deinen Code ersetzt, geht's.

Gruß, Christoph
Hallo Kazius,

Christoph meinte, wenn Du Deinen Code hier rein posten willst, Dann muss Du obiges Beispiel in Deiner Antwort erwähnen. Allso die Leerzeichen in den Klammern weglassen. Für blahblah fügst Du dann Deinen Code ein. Wir können dann Deinen geposteten Code sehen.

Übrigens: Damit Du Dir beim posten nicht merken musst wie das code tag, also das [ code = py ] [ /code ] aussieht, gibt es über den Notizfeld wo Du Deinen post schreibst, Schaltflächen. Eine davon nennt sich "Python". Wenn man die einmal anklickt, kommt das hier: [ code = py ]. Danach fügst Du Deinen Code ein, und drückst wieder auf die Schaltfläche "Python". Darauf erscheint dann dass hier: [ /code ]

Die Leerzeichen haben wir jetzt nur deswegen rein gemacht, damit Du die code Tags auch sehen kannst. :wink: Also ohne Leerzeichen posten.
Alles klar? Dann los. :mrgreen:
Gruß Andy

Verfasst: Freitag 5. Oktober 2007, 13:57
von BlackJack
Vielleicht hast Du ja auch einen wirklich echten Einrückungsfehler oder irgendwo eine Klammer vergessen!?

Verfasst: Freitag 5. Oktober 2007, 14:10
von Kazius
doh! das es was mit dem python button zu tun hat dachte ich mir, da kam aber nichts nachdem draufklicken^^

[Edit (Leonidas): Code ausgelagert]

das mit dem button kommt, wenn die firewall alles blockt :O

Verfasst: Freitag 5. Oktober 2007, 15:00
von Leonidas
Also ganz ehrlich, die Fehler zu korriegieren war doch ganz einfach: Paste #5387 (via logdeit.vim *g*). Da musste man das Magic-Cookie einkommentieren, die eine überflüssige Klammer bei ``print`` verschieben und dann den Umlaut aus der Variablen rausnehmen (das geht nur bei Python 3.0).

Zum Code selbst sage ich mal nichts...

Verfasst: Freitag 5. Oktober 2007, 15:14
von Kazius
DANKE! :D

ja ich weiß, der code ist unübersichtlich, die variablen sind schlecht gewählt
und es geht auch schöner. Aber ich hatte bis jetzt nur 6 std python in der Schule, und da hatten wir noch nie einen code der über 15 Zeilen hinaus ging

Verfasst: Sonntag 21. Oktober 2007, 17:53
von Imperator
Hallo,

ich hab jetzt genau das selbe Problem, und kapier Leonidas`Antwort nicht so richtig was für ein Magic-Cookie?

Verfasst: Sonntag 21. Oktober 2007, 18:03
von Leonidas
Imperator hat geschrieben:ich hab jetzt genau das selbe Problem, und kapier Leonidas`Antwort nicht so richtig was für ein Magic-Cookie?
Das was im Paste in Zeile 2 steht.

Verfasst: Sonntag 21. Oktober 2007, 18:05
von Imperator
Hm, sowas hab ich nicht im Code.

Verfasst: Sonntag 21. Oktober 2007, 21:40
von CrackPod
Imperator hat geschrieben:Hm, sowas hab ich nicht im Code.
Dann schreibs rein :) Das ist für die korrekte Zeichendarstellung, sprich wie sie de-/codiert werden.
LG

Verfasst: Sonntag 21. Oktober 2007, 23:02
von Leonidas
CrackPod hat geschrieben:
Imperator hat geschrieben:Hm, sowas hab ich nicht im Code.
Dann schreibs rein :) Das ist für die korrekte Zeichendarstellung, sprich wie sie de-/codiert werden.
Nicht ganz, es definiert eigentlich nur welches Encoding genutzt wird um die in Unicode-Strings (also u"""<hier der text>""") enthaltenen Bytefolgen zu dekodieren um daraus dann Unicode zu machen. Mit der Ausgabe hat das eigentlich nichts zu tun, um eine korrekte Ausgabe muss man sich selbst kümmern, denn das ist leider nicht ganz so simpel. Gerold kann da sicherlich einiges darüber erzählen.

Das man es reinschreiben sollte ist keine schlechte Idee, wobei anzumerken sei, dass es 1) mehrere Formen gibt, auch eine vim-kompatible die sich allerdings nicht durchgesetzt hat 2) in Python 3.0 UTF-8 sowieso das Standard-Encoding sein wird, so wie ASCII es in Python 2.x ist.

Verfasst: Montag 22. Oktober 2007, 16:29
von Imperator
Was genau soll ich jetzt da rein schreiben?

Verfasst: Montag 22. Oktober 2007, 16:45
von Leonidas
Ich vermute mal, dass dein Problem ganz wo anders liegt. Paste mal deinen Code irgendwo.

Verfasst: Montag 22. Oktober 2007, 17:27
von Imperator
OK, aber fangt jetzt nicht das meckern über OOP und so an, der Code stammt aus meiner absoluten Python-Anfangszeit. Ich hab ihn jetzt wieder aufgegriffen.

[Edit (Leonidas): Code ausgelagert]

Ich werd ihn am Ende entschlacken.