Thonny/Python Indentation

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.
Antworten
maksimilian
User
Beiträge: 86
Registriert: Freitag 2. November 2018, 20:59

Hallo Ihr,

bitte mich nicht mit dem Argument "Bitte Suchfunktion benutzen!" rausschmeißen. Mit Suchbegriff "Indentation" bekomme ich, möglicherweise wegen der vielen Treffer, überhaupt keine Anzeige.

Ich verwende Thonny 3.0.5 in stretch auf einem Pi3 und bekomme beim Debuggen immer mal wieder diese unsägliche Fehlermeldung "IndentationError", weil sich wohl ein Tab eingeschlichen hat. Gibt es vielleicht eine Möglichkeit, Thonny und/oder Python zu veranlassen, auch Tabs zu akzeptieren ?
Warum überhaupt mag Python die nicht ?

maksimilian
Benutzeravatar
__blackjack__
User
Beiträge: 13006
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Python mag falsche, also hier insbesondere nicht sinnvoll verständliche Einrückung nicht. Das hat erst einmal nichts mit Tabs zu tun. Python-Code kannst Du auch problemlos mit Tabs einrücken. Probleme fangen dann an wenn man Tabs und Leerzeichen mischt, denn dann weiss Python nicht wie weit etwas eingerückt ist, weil wie Breite eines Tabs nichts festgelegtes ist. Das mag in Deinem Editor richtig aussehen, aber auch nur weil Du das dort so eingerückt hast, das es mit der Tab-Einstellung die Du dort vorgenommen hast, richtig aussieht. Python weiss aber nicht was Du in Deinem Editor eingestellt hast. Der nächste der Deinen Quelltext in *seinem* Editor öffnet kann/wird über das gleiche Problem stolpern: Es sieht möglicherweise dort anders/falsch aus, weil die Tabstop-Einstellung anders ist als bei Dir.

Da Thonny eine dedizierte Python-IDE ist, frage ich mich wie sich da Tabs einschleichen können. Denn die Programmierer von Thonny müssten doch wissen das so etwas nichts in Python-Quelltext zu suchen hat…

Unterm Strich: Verwende in Python-Quelltext keine Tabs und rücke syntaktisch richtig ein, und Du wirst keine `IndentationError`-Meldungen mehr bekommen. :-)
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

die meisten Editoren kann man so konfigurieren, dass bei einem Druck auf die Tab-Taste X Leerzeichen eingefügt werden (statt ein Tab). X sollte bei Python 4 sein.

Wenn du Quellcode mit gemischten Einrückungen hast, kann du aber auch im Editor über Suchen & Ersetzen ein Tab durch 4 Leerzeichen ersetzen lassen.

Gruß, noisefloor
Antworten