Hallo zusammen,
Da ich bald mit meiner Lehre fertig bin suche ich ein Gebiet für die Zukunft, das mit auch interessiert. Nachdem ich an C ziemlich gescheitert bin habe ich mir mal Python angeschaut und bin positiv überrascht.
Habe mir dann heute mal ein Python-Tutorial durchgearbeitet und bin nun interessiert, mehr zu lernen!
Im Tutorial ging es um Python allgemein und um das grundlegende wie Variablen, Listen, Tupel, Strings etc.
Allerdings stellen sich mir für die Zukunft noch ein paar Fragen:
1.) Was braucht man alles für Tools? Ich entwickle auf Mac OS X und habe zur Zeit XCode, Python 2.6 und Textmate installiert.
2.) Was kann man mit Python alles programmieren?
3.) Ist es Möglich auch Programme mit grafischer Oberfläche zu schreiben?
4.) Sind die Programme OS-Übergreifend? Also kann ich ein Programm, welches ich auf OS X geschrieben habe, auch auf Windows ausführen?
Das war es erstmal. Ich hoffe ich habe nichts vergessen und danke schonmal für die Hilfe.
Mit Python anfangen - noch einige Fragen
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Hallo Furgy, willkommen im Forum und in Python!
Gehe ich recht in der Annahme, dass es "irgendein" Tutorial war und nicht das offizielle?
1. Keine Weiteren.
2. Alles. Mit Ausnahme eines Betriebssystems vllt Reicht die Geschwindigkeit nicht, kann man auch auf C/C++ bzw Pyrex ausweichen.
3. Ja. Tk ist in der Stdlib und Bindings fuer Qt, wxWindows und GTK existieren.
4. Im Prinzip schon, es muss nur ein Python-Interpreter vorhanden sein. Das kommt natuerlich auf die verwendeten Module und die Programmierung an. Man kann auch in Python nicht-plattformuebergreifende Programme schreiben.
Gehe ich recht in der Annahme, dass es "irgendein" Tutorial war und nicht das offizielle?
1. Keine Weiteren.
2. Alles. Mit Ausnahme eines Betriebssystems vllt Reicht die Geschwindigkeit nicht, kann man auch auf C/C++ bzw Pyrex ausweichen.
3. Ja. Tk ist in der Stdlib und Bindings fuer Qt, wxWindows und GTK existieren.
4. Im Prinzip schon, es muss nur ein Python-Interpreter vorhanden sein. Das kommt natuerlich auf die verwendeten Module und die Programmierung an. Man kann auch in Python nicht-plattformuebergreifende Programme schreiben.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
Hallo cofi,
Das Tutorial war von der Uni Frankfurt von Sebastian Schäfer vom 5.5.2002.
1.) Ok, danke
2.) Dann hat man ja lange nicht alles gesehen
3.) Sorry, das verstehe ich nicht ganz.
4.) Das muss man dann wohl anpassen...
Das Tutorial war von der Uni Frankfurt von Sebastian Schäfer vom 5.5.2002.
1.) Ok, danke
2.) Dann hat man ja lange nicht alles gesehen
3.) Sorry, das verstehe ich nicht ganz.
4.) Das muss man dann wohl anpassen...
Hmmm...von 2002? Ok, alte Bücher müssen nicht schlecht sein (siehe die Bibel) aber Tut's von 2002?Furgy hat geschrieben:Das Tutorial war von der Uni Frankfurt von Sebastian Schäfer vom 5.5.2002
Ich stehe gerade auf dem selben Level wie du (Beginner in Python) und habe mich mit den Wiki-Books angefreundet!
http://de.wikibooks.org/wiki/Python_unter_Linux ist zwar für Linux, sollte aber doch genügend allgemein gültiges Lehrmaterial beinhalten.
Ansonsten würde ich mir 'ne aktuelle Version von www.python.org besorgen und mich durch http://tutorial.pocoo.org/index.html kämpfen.
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Dass das mehr als ein halbes Jahrzehnt alt ist, hat dich nicht stutzig gemacht?Furgy hat geschrieben:Das Tutorial war von der Uni Frankfurt von Sebastian Schäfer vom 5.5.2002.
Schau dir mal das offizielle an:
2.6: http://docs.python.org/tutorial/index.html
3.1: http://docs.python.org/3.1/tutorial/index.html
Die Diskussion was zum lernen besser ist, hatten wir letztens erst hier: http://www.python-forum.de/topic-20040.html
Das sind die 3 grossen GUI-Toolkits (+Tk). Mit den Python-Bindings (PyQt, wxPython, pyGTK) kann man sie benutzen. Google erzaehlt dir sicher mehrFurgy hat geschrieben:3.) Sorry, das verstehe ich nicht ganz.
Was meinst du damit? Ich sollte betonen, dass man sich sehr anstrengen muss, um Plattformabhaengig zu schreiben. Es gibt uebrigens auch zahlreiche Moeglichkeiten den Interpreter dazuzupacken (py2app, cx_freeze, pyinstaller, py2exe, ...)Furgy hat geschrieben: 4.) Das muss man dann wohl anpassen...
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
Unter Mac OS kannst du auch normale Cocoa-Programme mit pyobjc schreiben, das ist dann aber natürlich nicht mehr OS-übergreifend.Furgy hat geschrieben:3.) Ist es Möglich auch Programme mit grafischer Oberfläche zu schreiben?
Kannst ja mal "from Cocoa import *" versuchen und mit "dir()" gucken was da dann alles im Interpreter rumschwirrt.
Dafür kann man den verdammt guten InterfaceBuilder von OS X benutzen. Und eigentlich reicht doch auch OS X aus, oder? ;)Darii hat geschrieben:Unter Mac OS kannst du auch normale Cocoa-Programme mit pyobjc schreiben, das ist dann aber natürlich nicht mehr OS-übergreifend. ;)
Wenn man aber will und sich ein bisschen Mühe gibt (z.B. keine Dateinamen hart verdrahten, sondern os.path benutzen, genau zwischen Text und Binärdateien unterscheiden, Text-Encodings lernen), sind auch plattformübergreifende Anwendungen nicht schwerer als z.B. in Java.
Stefan
Danke erstmal für die Antworten!
@zenker: Werde mir das mal durchlesen und durcharbeiten, danke für die Links.
@cofi: Habe mir da nicht soviel Gedanken darüber gemacht. Die Toolkits werde ich mir mal anschauen, ebenfalls aber auch noch den Interface Builder von OS X selber.
Das mit der Plattformabhänigkeit war eigentlich nur gefragt - ich werde es wohl kaum brauchen - OS X reicht.
@Darii: Ist das das gleiche, wie Python programmieren, nur vom XCode aus?
@sma: Wie kann ich denn bei einer Grafischen Oberfläche Code hinzufügen?
@zenker: Werde mir das mal durchlesen und durcharbeiten, danke für die Links.
@cofi: Habe mir da nicht soviel Gedanken darüber gemacht. Die Toolkits werde ich mir mal anschauen, ebenfalls aber auch noch den Interface Builder von OS X selber.
Das mit der Plattformabhänigkeit war eigentlich nur gefragt - ich werde es wohl kaum brauchen - OS X reicht.
@Darii: Ist das das gleiche, wie Python programmieren, nur vom XCode aus?
@sma: Wie kann ich denn bei einer Grafischen Oberfläche Code hinzufügen?
xcode brauchst du dafür nicht, aber es hilft (speziell durch durch den Interface Builder, der wirklich toll ist ) Leider hat Apple bei 10.6 die PyObjC Templates für xcode rausgeschmissen, die gibts um Moment unter http://svn.red-bean.com/pyobjc/trunk/py ... bjc-xcode/, aber ich bin mir sicher, dass da irgendwann noch ein vernünftiges Installer-Paket zur Verfügung gestellt wird.Furgy hat geschrieben:@Darii: Ist das das gleiche, wie Python programmieren, nur vom XCode aus?
pyobjc selbst ist eine Schnittstelle, die zwischen Objective C und Python vermittelt. Leider ist die Doku ziemlich/extrem/unglaublich mau, am besten mal die Projektseite: http://pyobjc.sourceforge.net besuchen.
Um damit GUI-Anwendungen erstellen zu können ist die Kenntnis von Cocoa notwendig und die von Objective-C hilfreich.
Die Frage verstehe ich nicht. Was meinst du?@sma: Wie kann ich denn bei einer Grafischen Oberfläche Code hinzufügen?
1.) vi(m) ist ein schöner Editor ...Furgy hat geschrieben:1.) Was braucht man alles für Tools? Ich entwickle auf Mac OS X und habe zur Zeit XCode, Python 2.6 und Textmate installiert.
2.) Was kann man mit Python alles programmieren?
3.) Ist es Möglich auch Programme mit grafischer Oberfläche zu schreiben?
4.) Sind die Programme OS-Übergreifend? Also kann ich ein Programm, welches ich auf OS X geschrieben habe, auch auf Windows ausführen?
2.) Im Prinzip alles, soweit es die Geschwindigkeit hergibt.
3.) Schau Dir mal Tkinter näher an, denn
4.) geht mit Tkinter relativ unproblematisch, weil es bei den Python-Distributionen unter Win, Lin und Mac mit dabei ist. Ein paar Anpassungen muß man dann noch vornehmen, z.B.:
Code: Alles auswählen
if os.name == "nt":
print "Win!"
courierfont = ("courier new", 10)
Nebenbei:
Es gibt viele Tools, aber Pyrex ist ein bißchen out und eigentlich durch Cython ersetzt - auch wenn Greg sich vorbehält Pyrex weiterzuentwickeln.cofi hat geschrieben: Reicht die Geschwindigkeit nicht, kann man auch auf C/C++ bzw Pyrex ausweichen.
Quasi, pyobjc vermittelt zwischen Python und der ObjC-Laufzeitumgebung, die eingebauten Datentypen werden z.B. auch übersetzt, wenn du einer Methode die ein NSArray erwartet, eine Python-Liste übergibst, funktioniert das trotzdem und umgekehrt kannst du ein NSArray behandeln wie eine Liste (natürlich hier und da mit Einschränkungen).Furgy hat geschrieben:Dann ist also pyobjc eine 1:1 Übersetzung von Python in Objective-C?
Code: Alles auswählen
from Cocoa import *
array = NSMutableArray.array() # ObjC-Objekt
array.append("Hello World") # Python-Methode
print array[0] # Python-Methode
Code fügst du im Interface-Builder gar nicht hinzu, nur Interfaceelemente die du dann mit dem Code verknüpfst. Hier gibts eine ausführliche mehrteilige Einführung zu pyobjc, das dort geschriebene sollte auch noch für Snow Leopard gelten.Das mit dem GUI: Ich mache mir mit dem Interface Builder ein Fenster oder was auch immer - wie füge ich denn da Code hinzu? z.B. Beenden-Button etc.