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

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
sonyfriend
User
Beiträge: 14
Registriert: Sonntag 24. Januar 2010, 23:32

Sonntag 24. Januar 2010, 23:41

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
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Sonntag 24. Januar 2010, 23:50

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.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Montag 25. Januar 2010, 03:08

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

Montag 25. Januar 2010, 05:29

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.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Montag 25. Januar 2010, 21:37

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
sonyfriend
User
Beiträge: 14
Registriert: Sonntag 24. Januar 2010, 23:32

Montag 25. Januar 2010, 22:29

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!
BlackJack

Montag 25. Januar 2010, 23:51

@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.
sonyfriend
User
Beiträge: 14
Registriert: Sonntag 24. Januar 2010, 23:32

Mittwoch 27. Januar 2010, 16:53

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.....
Benutzeravatar
HerrHagen
User
Beiträge: 430
Registriert: Freitag 6. Juni 2008, 19:07

Mittwoch 27. Januar 2010, 20:23

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
sonyfriend
User
Beiträge: 14
Registriert: Sonntag 24. Januar 2010, 23:32

Mittwoch 27. Januar 2010, 20:29

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:
Benutzeravatar
/me
User
Beiträge: 3204
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Donnerstag 28. Januar 2010, 08:10

sonyfriend hat geschrieben:Ich weiß. Es ging mir in diesem Threat [...]
Ehe sich das falsch im Kopf festsetzt:
Thread = Diskussionsfaden
Threat = Bedrohung
sonyfriend
User
Beiträge: 14
Registriert: Sonntag 24. Januar 2010, 23:32

Donnerstag 28. Januar 2010, 21:35

Ouuuh, danke!

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