Hallo liebe Python Experten,
ich bin Totalanfänger und das auch nur, weil mein Sohn (13) sich entschlossen hat, in einem Schulprojekt das Thema Computer und Computersprachen näher zu beleuchten. Wir haben uns exemplarisch Python als Sprache ausgesucht, da es hier ein schön und relativ einfaches Buch "Python kinderleicht" von J.R. Briggs gibt. Nun stoße ich aber an meine Grenzen bei dem Versuch eine Minianwendung zu speichern und über "run module" wieder auszuführen. Ich habe in tkinter ein Leinwand erzeugt und ein Viereck gezeichnet. Das ganze sieht wie folgt aus:
>>> from tkinter import *
>>> import random
>>> tk = Tk()
>>> canvas = Canvas(tk, width=400, height=400)
>>> canvas.pack()
>>> def random_rectangle(width, height):
x1 = random.randrange(width)
y1 = random.randrange(height)
x2 = x1 + random.randrange(width)
y2 = y2 + random.randrange(height)
canvas.create_rectangle(x1, y2, x2, y2)
>>> random_rectangle(400, 400)
Wenn ich das dann als .py Datei speichere, es schließe, wieder öffne und dann auf "run module" gehe erhalte ich "invalid syntax". Die Leinwand wird auch nicht mehr geöffnet. Zu sagen wäre evtl. noch, dass ich die Python Version 3.4.0 verwende. Ich bin eigentlich genau nach Anweisung in dem Buch vorgegangen (S. 172/173 englische Version). Das ist wahrscheinlich für die meisten ein völlig banales Thema, aber ich komme über diese Klippe nicht. Wie kann ich generell Codes speichern und sie später wieder ausführen? Da ich am Ende ein kleines Spiel mit ihm programmieren will ("bounce" aus dem Buch) brauche ich das Speichern. Es wäre toll, wenn jemand einem entnervten Vater helfen könnte, der keine wirkliche Ahnung vom Programmieren hat, aber seinem Sohn helfen will, sich dem Thema zu nähern. Freue mich über ein paar leicht verständliche Hinweise (:-)). Viele Grüße MS23
Speichern und wieder Ausführen
Hallo und willkommen im Forum!
Das ">>> " zeigt, dass die Befehle im interaktiven Interpreter ausgeführt werden. Der ist eigentlich "nur" dazu gedacht, dass man schnell mal Code ausprobieren kann und sich ggf. mit anderen Modulen vertraut macht. Wenn du ein Programm schreibst, dann musst du den Code einfach mit einem Editor in einer Datei abspeichern. Ausführen kannst du den Code dann mittels "python programmname.py", das rufst du einfach in der Konsole/Kommandozeile auf.
Das ">>> " zeigt, dass die Befehle im interaktiven Interpreter ausgeführt werden. Der ist eigentlich "nur" dazu gedacht, dass man schnell mal Code ausprobieren kann und sich ggf. mit anderen Modulen vertraut macht. Wenn du ein Programm schreibst, dann musst du den Code einfach mit einem Editor in einer Datei abspeichern. Ausführen kannst du den Code dann mittels "python programmname.py", das rufst du einfach in der Konsole/Kommandozeile auf.
Das Leben ist wie ein Tennisball.
Hallo EyDu,
vielen Dank für die schnelle Antwort! Das habe ich so grundsätzlich verstanden und hilft mir beim generellen Verstehen. Kannst Du mir vielleicht noch auf die Sprünge helfen, wie ich mit einem Editor speichere? Muss ich gleich von Beginn an Python anders öffnen? Ich öffne immer die idle Ink und gehe dann über File..save. Danke nochmals und eine sonniges Wochenende. MS23
vielen Dank für die schnelle Antwort! Das habe ich so grundsätzlich verstanden und hilft mir beim generellen Verstehen. Kannst Du mir vielleicht noch auf die Sprünge helfen, wie ich mit einem Editor speichere? Muss ich gleich von Beginn an Python anders öffnen? Ich öffne immer die idle Ink und gehe dann über File..save. Danke nochmals und eine sonniges Wochenende. MS23
Du nimmst einen beliebigen Texteditor Deiner Wahl (nicht notepad.exe), schreibst Dein Programm, speicherst es unter einem beliebigen Dateinamen mit der Endung .py.
Ich nutze unter Windows meist notepad++.
Um IDLE sollte man einen Bogen machen, gerade wenn man Tkinter-Programme schreibt.
Ich nutze unter Windows meist notepad++.
Um IDLE sollte man einen Bogen machen, gerade wenn man Tkinter-Programme schreibt.
"Du bist der Messias! Und ich muss es wissen, denn ich bin schon einigen gefolgt!"
Das 2. y2 existiert an dieser Stelle noch gar nicht. Entsprechend du wirst den FehlerMS23 hat geschrieben: y2 = y2 + random.randrange(height)
>>> random_rectangle(400, 400)
Code: Alles auswählen
local variable 'y2' referenced before assignment
Code: Alles auswählen
y2 = y1 + random.randrange(height)
Am Ende des Programms muss noch
Code: Alles auswählen
tk.mainloop()
@MS23: In IDLE müsstest Du über den Dateidialog ein neues Fenster öffnen und dort den Programmtext eingeben und dann abspeichern. Darüber das bei IDLE die Shell geöffnet wird und das speichern des Fensterinhalts erlaubt, zumindest ohne einen deutlichen Warnhinweis, ist äusserst anfängerunfreundlich. In diese ”Falle” tappen nämlich viele Anfänger.
Hi,
habe ich auch schon so gemacht, nur ich kann hier gar nicht programmieren da der prompt (>>>) nicht erscheint. Gebe ich den promp in jeder Zeile händisch ein, geschieht auch nichts. Keine Leinwand öffnet sich aus tkinter und es wird auch nichts gezeichnet. Gruß MS23
habe ich auch schon so gemacht, nur ich kann hier gar nicht programmieren da der prompt (>>>) nicht erscheint. Gebe ich den promp in jeder Zeile händisch ein, geschieht auch nichts. Keine Leinwand öffnet sich aus tkinter und es wird auch nichts gezeichnet. Gruß MS23
@MS23: Doch *da* kannst Du programmieren, also nicht nur etwas eingeben was sofort ausgewertet wird, sondern tatsächlich Programme schreiben. Die musst Du dann ausführen. In IDLE über das Menü oder die entsprechende Taste (F5).