Mit Python anfangen - noch einige Fragen

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
Furgy
User
Beiträge: 5
Registriert: Donnerstag 3. September 2009, 19:06

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.
Benutzeravatar
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.
Furgy
User
Beiträge: 5
Registriert: Donnerstag 3. September 2009, 19:06

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...
zenker
User
Beiträge: 19
Registriert: Dienstag 25. August 2009, 17:04

Furgy hat geschrieben:Das Tutorial war von der Uni Frankfurt von Sebastian Schäfer vom 5.5.2002
Hmmm...von 2002? Ok, alte Bücher müssen nicht schlecht sein (siehe die Bibel) aber Tut's von 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.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Furgy hat geschrieben:Das Tutorial war von der Uni Frankfurt von Sebastian Schäfer vom 5.5.2002.
Dass das mehr als ein halbes Jahrzehnt alt ist, hat dich nicht stutzig gemacht?
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
Furgy hat geschrieben:3.) Sorry, das verstehe ich nicht ganz. :?
Das sind die 3 grossen GUI-Toolkits (+Tk). Mit den Python-Bindings (PyQt, wxPython, pyGTK) kann man sie benutzen. Google erzaehlt dir sicher mehr ;)
Furgy hat geschrieben: 4.) Das muss man dann wohl anpassen...
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, ...)
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Furgy hat geschrieben:3.) Ist es Möglich auch Programme mit grafischer Oberfläche zu schreiben?
Unter Mac OS kannst du auch normale Cocoa-Programme mit pyobjc schreiben, das ist dann aber natürlich nicht mehr OS-übergreifend. ;)

Kannst ja mal "from Cocoa import *" versuchen und mit "dir()" gucken was da dann alles im Interpreter rumschwirrt. ;)
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

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. ;)
Dafür kann man den verdammt guten InterfaceBuilder von OS X benutzen. Und eigentlich reicht doch auch OS X aus, oder? ;)

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
Furgy
User
Beiträge: 5
Registriert: Donnerstag 3. September 2009, 19:06

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?
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Furgy hat geschrieben:@Darii: Ist das das gleiche, wie Python programmieren, nur vom XCode aus?
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.

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.
@sma: Wie kann ich denn bei einer Grafischen Oberfläche Code hinzufügen?
Die Frage verstehe ich nicht. Was meinst du?
Furgy
User
Beiträge: 5
Registriert: Donnerstag 3. September 2009, 19:06

Dann ist also pyobjc eine 1:1 Übersetzung von Python in Objective-C?

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.
problembär

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?
1.) vi(m) ist ein schöner Editor ...
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)
Gruß
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Nebenbei:
cofi hat geschrieben: Reicht die Geschwindigkeit nicht, kann man auch auf C/C++ bzw Pyrex ausweichen.
Es gibt viele Tools, aber Pyrex ist ein bißchen out und eigentlich durch Cython ersetzt - auch wenn Greg sich vorbehält Pyrex weiterzuentwickeln.
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Furgy hat geschrieben:Dann ist also pyobjc eine 1:1 Übersetzung von Python in Objective-C?
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).

Code: Alles auswählen

from Cocoa import *
array = NSMutableArray.array() # ObjC-Objekt
array.append("Hello World") # Python-Methode
print array[0] # Python-Methode
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.
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.
Antworten