Seite 1 von 1
Allererste Schritte mit IDLE
Verfasst: Donnerstag 5. Januar 2006, 11:12
von frenchcancan
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.
Re: Allererste Schritte mit IDLE
Verfasst: Donnerstag 5. Januar 2006, 11:53
von gerold
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

OK Danke + weitere Frage
Verfasst: Donnerstag 5. Januar 2006, 14:11
von frenchcancan
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
Verfasst: Donnerstag 5. Januar 2006, 15:03
von mr.hide
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.
er ist aber kostenpflichtig oder?
Verfasst: Donnerstag 5. Januar 2006, 16:34
von frenchcancan
und ich soll im Moment nur testen, ob wir von VC++ auf Python umsteigen.
Gruß
frenchcancan
Verfasst: Donnerstag 5. Januar 2006, 16:36
von mr.hide
Kommt darauf an wie Produktiv ihr arbeiten woll

ja und was empfiehlst du?
Verfasst: Donnerstag 5. Januar 2006, 16:46
von frenchcancan
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
Re: ja und was empfiehlst du?
Verfasst: Donnerstag 5. Januar 2006, 18:33
von tabellar
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

... 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
Danke!
Verfasst: Freitag 6. Januar 2006, 09:01
von frenchcancan
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
doch noch eine Frage!
Verfasst: Freitag 6. Januar 2006, 09:32
von frenchcancan
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ß
Re: doch noch eine Frage!
Verfasst: Freitag 6. Januar 2006, 09:59
von tabellar
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

... 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.
Re: doch noch eine Frage!
Verfasst: Freitag 6. Januar 2006, 20:13
von Leonidas
tabellar hat geschrieben:Frag mich nicht, wie die auf Python 2.5 kommen

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.
Verfasst: Mittwoch 25. Januar 2006, 15:26
von Craven
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
Verfasst: Mittwoch 25. Januar 2006, 16:59
von gerold
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!
- 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

Verfasst: Mittwoch 25. Januar 2006, 17:05
von gerold
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

Danke
Verfasst: Mittwoch 25. Januar 2006, 20:33
von Craven
Hi,
Danke für deine Hilfe, Gerold, ich habs probiert, und es ging.
Ich wollte Python nicht schlechtmachen, sondern nur wissen, ob ich's nicht lieber mit C++, oder so, am Anfang versuchen sollte ^^
Aber wenn alle in diesem Forum so schnell helfen, sehe ich keine Probleme, warum ich python nicht lernen könnte :D
Thx, Gerold
Verfasst: Mittwoch 25. Januar 2006, 22:53
von BlackJack
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()
Ich kann auch keinen Syntaxfehler entdecken. Hast Du das aus einem evt. etwas älteren Tutorial? In neueren Python-Versionen kannst Du `.readlines()` nämlich weglassen. Der Unterschied ist, das mit dem Aufruf erst die gesamte Datei eingelesen wird und dann jede Zeile ausgegeben wird und ohne den Aufruf zeilenweise gelesen und geschrieben wird.
Kann mir jemand helfen? (Bzw. Wenn ich dort schon nicht weiter komme, kann mir wer sagen, ob Python richtig ist, um mit Programmieren anzufangen?)
Python ist auf jeden Fall wesentlich einfacher und anfängerfreundlicher als C++.
Verfasst: Sonntag 29. Januar 2006, 19:28
von Craven
Hi,
Du hast Recht, das Tutorial arbeitet mit einer Python Version, die noch vor 2.3 erschienen ist (ka, welche genau).
Danke
MfG,
Craven