Tab/space Error

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Kazius
User
Beiträge: 6
Registriert: Freitag 5. Oktober 2007, 10:56

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
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Da wir leider nicht wissen, welchen Editor Du benutzt, können wir Dir auch nicht sagen, wo die Option sich verstecken könnte.
Kazius
User
Beiträge: 6
Registriert: Freitag 5. Oktober 2007, 10:56

python 2.5 IDLE (Python GUI)
glaub ich mal, der odrner heißt python 25, müsste also 2.5 sein
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Kazius
User
Beiträge: 6
Registriert: Freitag 5. Oktober 2007, 10:56

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^^
ChrisGTJ
User
Beiträge: 105
Registriert: Mittwoch 22. August 2007, 15:45

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
Kazius
User
Beiträge: 6
Registriert: Freitag 5. Oktober 2007, 10:56

hmm bringt auch nichts ._.
Andy
User
Beiträge: 196
Registriert: Sonntag 1. Januar 2006, 20:12
Wohnort: aus dem hohen Norden....

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
BlackJack

Vielleicht hast Du ja auch einen wirklich echten Einrückungsfehler oder irgendwo eine Klammer vergessen!?
Kazius
User
Beiträge: 6
Registriert: Freitag 5. Oktober 2007, 10:56

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
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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...
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Kazius
User
Beiträge: 6
Registriert: Freitag 5. Oktober 2007, 10:56

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
Imperator
User
Beiträge: 275
Registriert: Montag 20. August 2007, 14:43
Kontaktdaten:

Hallo,

ich hab jetzt genau das selbe Problem, und kapier Leonidas`Antwort nicht so richtig was für ein Magic-Cookie?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Imperator
User
Beiträge: 275
Registriert: Montag 20. August 2007, 14:43
Kontaktdaten:

Hm, sowas hab ich nicht im Code.
CrackPod
User
Beiträge: 205
Registriert: Freitag 30. Juni 2006, 12:56

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
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Imperator
User
Beiträge: 275
Registriert: Montag 20. August 2007, 14:43
Kontaktdaten:

Was genau soll ich jetzt da rein schreiben?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ich vermute mal, dass dein Problem ganz wo anders liegt. Paste mal deinen Code irgendwo.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Imperator
User
Beiträge: 275
Registriert: Montag 20. August 2007, 14:43
Kontaktdaten:

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.
Antworten