Allererste Schritte mit IDLE

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
frenchcancan
User
Beiträge: 13
Registriert: Dienstag 3. Januar 2006, 17:27

Donnerstag 5. Januar 2006, 11:12

Hallo!
ich mache meine allerersten Schritte in Python, komme von C++ Programmierung mit der MFC.
ich wollte das im Forum empfohlenen Tutorial von http://www.way2python.de/kurs/kurs2.html durcharbeiteh und scheitere schon an der Bedienung der shell.
ich habe noch nicht verstanden, wie man programme eingibt und abspeichert.
ich möchte Folgendes Programm schreiben (im Kurs vorgegeben)

Code: Alles auswählen

class test: 
    def  __init__(self): 
        self.text =  '' 
    def funktion2(self): 
        print  self.text 

t = test() 
    # nicht das Klammenpaar vergessen! 
t.text = 'alles ok.'
t.funktion2() 
Wenn ich einfach in der shell alles hintereinander eingebe, bekomme ich bei t=test() die Fehlermeldung Syntaxfehler oder manchmal auch funktion2ist nicht teil von test. Es wird offensichtlich alles sofort interpretiert und ausgeführt!
wie gebe ich es in einer.py-Datei ein und lasse es dann ausführen? oder wie macht man das sonst?
Es wäre schön, wenn der Weg ganz konkret beschrieben werden könnte, da ich offensichtlich etwas Grundssätzliches in der Benutzung der IDLE nicht verstanden habe. (z. B. Menü Datei New Windows, text eintippen, save as, usw...)
Vielen Dank im Voraus für Eure Hilfe
frenchcancan

Edit (Leonidas): Code in Tags gesetzt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Donnerstag 5. Januar 2006, 11:53

frenchcancan hat geschrieben:ich habe noch nicht verstanden, wie man programme eingibt und abspeichert.
Hi frenchcancan!

Hier wird alles beschrieben:
http://hkn.eecs.berkeley.edu/~dyoo/pyth ... x_ger.html

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
frenchcancan
User
Beiträge: 13
Registriert: Dienstag 3. Januar 2006, 17:27

Donnerstag 5. Januar 2006, 14:11

Vielen Dank, es hat tatsächlich funktioniert.
Im 2. Teil geht es um grafische Dialoge und TKinker. Ich weiß, dass es bei mir installiert ist, aber "sehe" nichts davon.

Gibt es nicht eine GUI wo ich Dialogfenster malen kann wie beim VC++ und hinter den Schaltflächen Funktionen hinterlege?
Danke für die Hilfe
frechcancan
mr.hide
User
Beiträge: 108
Registriert: Montag 29. August 2005, 14:02

Donnerstag 5. Januar 2006, 15:03

Ja gibt es.

Die Beste (meiner Meinung nach) ist QT von Trolltech.

Da gibt es einen Designer mit dem es geht.


Einziger Hacken, eine sehr Aufwändige Installation.
Grüße
Matthias

- Fluchen befreit von Kummer und Leid -
frenchcancan
User
Beiträge: 13
Registriert: Dienstag 3. Januar 2006, 17:27

Donnerstag 5. Januar 2006, 16:34

und ich soll im Moment nur testen, ob wir von VC++ auf Python umsteigen.
Gruß
frenchcancan
mr.hide
User
Beiträge: 108
Registriert: Montag 29. August 2005, 14:02

Donnerstag 5. Januar 2006, 16:36

Kommt darauf an wie Produktiv ihr arbeiten woll :wink:
Grüße
Matthias

- Fluchen befreit von Kummer und Leid -
frenchcancan
User
Beiträge: 13
Registriert: Dienstag 3. Januar 2006, 17:27

Donnerstag 5. Januar 2006, 16:46

ich muss dann unsere vorhandene Programme, die zum Teil Messungen über USB oder Seriellen Schnittstellen oder CAN-Bus oder irgendwelche Steuerungen portieren.
kann man das gut mit Python? oder vorhandene dlls einbinden?
frenchcancan
tabellar
User
Beiträge: 186
Registriert: Mittwoch 4. September 2002, 15:28

Donnerstag 5. Januar 2006, 18:33

Hi frenchcancan,
frenchcancan hat geschrieben:ich muss dann unsere vorhandene Programme, die zum Teil Messungen über USB oder Seriellen Schnittstellen oder CAN-Bus oder irgendwelche Steuerungen portieren.
kann man das gut mit Python? oder vorhandene dlls einbinden?
frenchcancan
Du bist ja ziemlich in den Foren unterwegs :wink: ... Die Möglichkeiten mit
und um Python sind am Anfang nicht ganz leicht zu erkennen. Daher mein
Rat, bleibe am Anfang einfach und benutze die Bordmittel von Python bis
Du einen Überblick hast.

PROGRAMMIERUMGEBUNG (WIN):
Ich z.B. verwende sehr gerne PythonWin. PythonWin ist in den Python for Windows extensions enthalten und bietet Dir "links" ein Klassen Ansichtsfenster und "rechts" den Source Code. Den Python Interpreter verwende ich von der DOS Shell aus. Durch Eingabe in der DOS-Shell von "python" (Pfad muss gesetzt sein), wird der Python Interpreter gestartet und Du kannst Python Code interaktiv testen. Dies hat den Vorteil, dass du Eingabezeilen durch die Pfeiltasten (doskey-Befehlsspeicher) erneut aufrufen kannst und in jeder DOS Shell einen super "Taschenrechner" hast.


GRAFIK TOOLKIT (GUI):
Für den Anfang würde ich Dir das "Tkinter" GUI empfehlen, da es bei der Installation von Python mit dabei ist. Tkinter ist plattformneutral und für den Anfang ausreichend.

GRAFIKPROGRAMMIERUNG:
Ich vermute mal, dass Du Dich bisher noch nicht all zu sehr mit der Trennung von Benutzereingabe und der eigentlichen Anwendung befasst hast. Thema hierzu ist das sogenannte MVC Konzept (Model View Controler). Bei Beherzigung dieses Programmierkonzepts kannst Du jederzeit verschiedene GUIs als Benutzerinteraktion aufsetzen (Tkinter, GTK,Qt, HTML-CGI, etc.).

SCHNITTSTELLENPROGRAMMIERUNG:
Wurde an anderer Stelle schon behandelt (pyserial, etc.). Ich selber habe vor kurzer Zeit ein USB-Testboard zum Ansteuern von Relais gebastelt...

DLLs:
Hier hilft dir das Modul "ctypes". DLLs können problemlos in den Python Code integriert werden.

Tabellar
frenchcancan
User
Beiträge: 13
Registriert: Dienstag 3. Januar 2006, 17:27

Freitag 6. Januar 2006, 09:01

ja, ich stand gestern völlig unter Zeitdruck und ohne Ahnung in welche Richtung ich gehe soll.
Jetzt habe ich einige Antworten zusammen und kann mit meinen neuen Büchern einige Sachen ausprobieren. Das Dumme ist nur, dass ich nicht ewig spielen darf sondern schnell erfassen soll, ob wir auf Python umsteigen oder nicht. Wenn man VC++ programme in Fülle hat, und somit ein Gerüst für jedes neue Programm, ist es schon schwer zusagen, ob man später effektiver wird oder nicht.
Jedensfalls danke für die Tips. Ich kann nicht mit allen etwas anfangen, habe sie aber abgelegt und gucke sie mir wieder in einige Tage/Wochen an, wahrscheinlich sagen sie mir dann mehr.
Gruß,frenchcancan
frenchcancan
User
Beiträge: 13
Registriert: Dienstag 3. Januar 2006, 17:27

Freitag 6. Januar 2006, 09:32

ich habe pywin32-205 von https://sourceforge.net/projects/pywin32/ heruntergeladen. Bei der Installation meldet er : "Python 2.5 ist required for this package."
ich habe Python 2.4.2 installiert und dachte, es ist die neueste Version?
oder welches Programm meint er?
Gruß
tabellar
User
Beiträge: 186
Registriert: Mittwoch 4. September 2002, 15:28

Freitag 6. Januar 2006, 09:59

frenchcancan hat geschrieben:ja, ich stand gestern völlig unter Zeitdruck und ohne Ahnung in welche Richtung ich gehe soll.
Jetzt habe ich einige Antworten zusammen und kann mit meinen neuen Büchern einige Sachen ausprobieren. Das Dumme ist nur, dass ich nicht ewig spielen darf sondern schnell erfassen soll, ob wir auf Python umsteigen oder nicht. Wenn man VC++ programme in Fülle hat, und somit ein Gerüst für jedes neue Programm, ist es schon schwer zusagen, ob man später effektiver wird oder nicht <snip>
Ja, ja, das alte Thema mit den Bäumen und dem Wald ... Zwecks Unterlagen
schau mal hier im Forum unter Links und Tutorials, speziell diesen Python Kurs
möchte ich Dir empfehlen. Vielleicht können wir Dir ja helfen zwecks der
Evaluierung. Warum wollt Ihr wechseln? Was soll mit Python besser und
effektiver werden?
frenchcancan hat geschrieben:ich habe pywin32-205 von https://sourceforge.net/projects/pywin32/ heruntergeladen. Bei der Installation meldet er : "Python 2.5 ist required for this package."
ich habe Python 2.4.2 installiert und dachte, es ist die neueste Version?
oder welches Programm meint er?
Gruß
Frag mich nicht, wie die auf Python 2.5 kommen :oops: ... Ich habe auch die
v2.4.2. Installier einfach die pywin32-205.win32-py2.4.exe, dann sollte alles passen.

Tabellar

Edit Nachtrag:
Zwecks der effektiven GUI Programmierung (z.B. in Tkinter) legt man sich
mit der Zeit eine Sammlung von Fensterklassen an. Jedes Fenster(View)
ist eine eigene Klasse. Hab ich also mal ein Grundgerüst eines Eingabe-
fensters mit z.B. einem Menü als Klasse (Buch, Internet, etc.), so kann ich
durch copy and paste sehr schnell neue Fenster erzeugen. Wie schon
oben gesagt, bei sauberer Trennung zwischen Benutzereingabe und Anwendung,
kannst Du so sauberen, flexiblen und wartungsarmen Code erzeugen.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 6. Januar 2006, 20:13

tabellar hat geschrieben:Frag mich nicht, wie die auf Python 2.5 kommen :oops:
Ich vermute mal, dass sie pywin32 auch schon für die SVN-Versionen von Python 2.5. Ist ja auch gut so, dann sind wenigstens 2.5er-Releases pünktlich zu Python 2.5 final fertig.. allerdings bin ich überrascht, wie schnell die da sind, es gibt noch nichtmal Python 2.5 alpha.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Craven
User
Beiträge: 223
Registriert: Dienstag 24. Januar 2006, 13:37

Mittwoch 25. Januar 2006, 15:26

Hi,
Ich hab ein problem mit einem Tutorial.
Man muss eine .txt-Datei erstellen, und diese dann öffnen, um sie zu lesen und dann wieder schliessen, aber ich bekomme eine Fehlermeldung! (invalid syntax)

Code: Alles auswählen

# Zuerst öffnet das File zum Lesen(r)
inp = open("menue.txt","r")
# liest die Datei in eine Liste und druckt dann
# jedes Bestandteil
for line in inp.readlines():
    print line
# schließt es wieder
inp.close()
Kann mir jemand helfen? (Bzw. Wenn ich dort schon nicht weiter komme, kann mir wer sagen, ob Python richtig ist, um mit Programmieren anzufangen?)
Achja, macht das einen Unterschied, ob ich das mit IDLE oder mit der commandline mache?
Danke
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Mittwoch 25. Januar 2006, 16:59

Craven hat geschrieben: Kann mir jemand helfen? (Bzw. Wenn ich dort schon nicht weiter komme, kann mir wer sagen, ob Python richtig ist, um mit Programmieren anzufangen?) Achja, macht das einen Unterschied, ob ich das mit IDLE oder mit der commandline mache?
Hi Craven!

Natürlich kann dir hier jemand helfen. Es ist allerdings auch wichtig, dass du hier bei Fehlern auch den kompletten Traceback, also die Fehlermeldung, postest.

Alleine aus dem von dir gezeigten Quellcode kann man nichts herauslesen. Der sieht nämlich so aus als ob er stimmen würde. Einzige Möglichkeit, die ich bei diesem Codebeispiel sehe, vielleicht gibt es die Datei nicht im Ordner, in dem das Programm ausgeführt wird, aber dann gibt es eine aussagekräftige Fehlermeldung.

Was mir Spaß macht ist, dass du in einem Python-Board fragst, ob es Python Wert ist, dass man es lernt. :?

Natürlich ist Python die beste Programmiersprache der Welt! :P :P

- Python lässt sich einfach erlernen.
- Python versucht Programmierer dazu zu bringen, schönen Code zu schreiben.
- Python ist einfach
- Python kann trotzdem extrem viel.
- ...

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Mittwoch 25. Januar 2006, 17:05

Craven hat geschrieben:

Code: Alles auswählen

# Zuerst öffnet das File zum Lesen(r)
inp = open("menue.txt","r")
# liest die Datei in eine Liste und druckt dann
# jedes Bestandteil
for line in inp.readlines():
    print line
# schließt es wieder
inp.close()
Hi Craven!

Doch! Etwas fällt mir auf. Du verwendest Umlaute in den Beschreibungstexten. Das funktioniert nur, wenn du in die erste oder zweite Zeile deines Modules # -*- coding: iso-8859-1 -*- schreibst.
Allerdings hatte ich mit IDLE auch dann schon Probleme mit Umlauten. Probier sie einfach mal raus zu nehmen um zu testen, ob es daran liegen könnte.

Code: Alles auswählen

# -*- coding: iso-8859-1 -*-

# Zuerst öffnet das File zum Lesen(r)
inp = open("menue.txt","r")
# liest die Datei in eine Liste und druckt dann
# jedes Bestandteil
for line in inp.readlines():
    print line
# schließt es wieder
inp.close()
mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten