Seite 1 von 1

"Invalid Syntax" - geht's auch etwas genauer?

Verfasst: Sonntag 24. Januar 2010, 23:41
von sonyfriend
Moinsen!

Ich versuche gerade, eine vernünftige Programmiersprache zu lernen, aber bei fehlerhafter Eingabe gibt mir mein Interpreter (IDLE Python GUI) oft bis meistens nur ein sehr allgemeines "invalid syntax".
Z.B. bei:

If beta=5
alpha=10

markiert er das beta. Gut, nach eine halben Stunde habe ich rausgefunden, daß man das if klein schreiben muß, aber es gibt auch noch andere Situationen, die waren um einiges kniffliger.
Meine erste Sprache war QBasic, da hat der Compiler sehr oft den Fehler mit Fehlerbeschreibung angezeigt, aber bei Python 3.1 nicht. Habe auch schon Notepad++ ausprobiert (hab's aber nicht zum laufen gekriegt)

Hat jemand Erfahrungen mit alternativen Python 3.1 Interpretern?


Sven

Verfasst: Sonntag 24. Januar 2010, 23:50
von jbs
So schwer ist die Syntax nicht, als das man immer gesagt bekommen muss, was denn gerade falsch ist. Und woher soll der Interpreter wissen, was gerade falsch ist und was der Programmierer beabsichtigt hat.

Schau dir doch das Tutorial an und arbeitete dieses durch. Dann solltest du erkennen, wo deine Fehler sind.

Dein Beispiel soll vermutlich:

Code: Alles auswählen

if beta == 5:
    alpha = 10
lauten.

Re: "Invalid Syntax" - geht's auch etwas genauer?

Verfasst: Montag 25. Januar 2010, 03:08
von Leonidas
Hallo sonyfriend, willkommen im Forum,
sonyfriend hat geschrieben:markiert er das beta. Gut, nach eine halben Stunde habe ich rausgefunden, daß man das if klein schreiben muß, aber es gibt auch noch andere Situationen, die waren um einiges kniffliger.
Naja, das wage ich ein wenig zu bezweifeln. Wenn man das Tutorial mal durchgemacht hat sind es idR nur ganz, ganz wenige Fälle wo die Syntax nicht ganz klar/intuitiv ist.
sonyfriend hat geschrieben:Meine erste Sprache war QBasic, da hat der Compiler sehr oft den Fehler mit Fehlerbeschreibung angezeigt, aber bei Python 3.1 nicht. Habe auch schon Notepad++ ausprobiert (hab's aber nicht zum laufen gekriegt)
QBasic ist ein Interpreter mit IDE, Notepad++ echt nur ein Editor. Der "versteht" den Code ja nicht.
sonyfriend hat geschrieben:Hat jemand Erfahrungen mit alternativen Python 3.1 Interpretern?
Außer CPython gibt es momentan keine weiteren Interpreter.

Re: "Invalid Syntax" - geht's auch etwas genauer?

Verfasst: Montag 25. Januar 2010, 05:29
von Zap
sonyfriend hat geschrieben:Hat jemand Erfahrungen mit alternativen Python 3.1 Interpretern?
Versprichst du dir von einem anderen Interpreter aussagekräftigere Fehlermeldungen? Wie meine Vorredner auch schon, empfehle ich dir ebenfalls erst die Basics von Python zu lernen bevor du dem Interpreter irgend eine Syntax vorwirfst.
Ich habe QBasic komplett übersprungen aber ich bezweifle das du eine bessere Fehlermeldung bekommst wenn du Pythonquellcode darin kompilieren lassen möchtest.

Verfasst: Montag 25. Januar 2010, 21:37
von sma
Pydev erzeugt andere - wenn auch nicht unbedingt bessere - Fehlermeldungen. Möglicherweise kann man da ein bisschen mehr als mit dem zugegeben wenig hilfreichen "invalid" von CPython herauslesen.

Am besten ist aber IMHO, was auch schon andere schrieben: Erst mal die Sprachbeschreibung und/oder das Tutorial lesen, um zumindest die Syntax zu verstehen.

Denn eines sollte klar sein: Es ist nicht die selbe Syntax wie bei QBasic, denn sonst würde Python nicht Python sondern QBasic heißen :)

Stefan

Verfasst: Montag 25. Januar 2010, 22:29
von sonyfriend
Zugegeben, mir fehlt's noch an Übung, aber manchmal wünschte ich mir schon eine genauere Fehlerbeschreibung. Ich hätte gedacht, daß es sowas für Python gibt.....naja, gehe ich das Tutorial durch.

Euch allen jedenfalls vielen Dank!

Verfasst: Montag 25. Januar 2010, 23:51
von BlackJack
@sonyfriend: Speziell in diesem Falle hätte in IDLE doch eigentlich auffallen müssen, dass das ``if`` nicht die richtige Farbe hatte!? IDLE bietet doch Syntaxhighlighting. Wenn Schlüsselworte nicht entsprechend eingefärbt werden, dann sind sie in aller Regel falsch geschrieben.

Verfasst: Mittwoch 27. Januar 2010, 16:53
von sonyfriend
Naja, wie schon gesagt: ich bin noch Anfänger und da erkennt man noch nicht alles auf den ersten Blick.
Aber Übung macht den Meister.....

Verfasst: Mittwoch 27. Januar 2010, 20:23
von HerrHagen
Wie von den Vorrednern zum Teil schon angesprochen wurde: Das Problem liegt darin, dass der Interpreter nicht wissen kann wie es richtig gedacht war.
So wäre z.B. If (grossgeschrieben) ein valider Variablenname.

Code: Alles auswählen

>>> If = 3
>>> If + 2
5

Verfasst: Mittwoch 27. Januar 2010, 20:29
von sonyfriend
Ich weiß. Es ging mir in diesem Threat ja auch nur darum, ob es eine Möglichkeit gibt, den Fehler etwas genauer zu beschreiben. Inbesondere am Anfang ist das eine langwierige Sache, wenn man wegen so etwas manchmal stundenlang aufgehalten wird.

Wird aber immer besser :wink:

Verfasst: Donnerstag 28. Januar 2010, 08:10
von /me
sonyfriend hat geschrieben:Ich weiß. Es ging mir in diesem Threat [...]
Ehe sich das falsch im Kopf festsetzt:
Thread = Diskussionsfaden
Threat = Bedrohung

Verfasst: Donnerstag 28. Januar 2010, 21:35
von sonyfriend
Ouuuh, danke!

In diesem Forum lernt man ja was für's Leben!