Was kann man denn alles mit Python programmieren?

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
cm100
User
Beiträge: 6
Registriert: Freitag 12. März 2004, 22:11

Hallo,

ich bin neu hier und bin interessiert zu erfahren, was man mit Python denn programmiert?

Zwar habe ich schon versucht mir beim Durchlesen von Tutorials usw. ein Bild darüber zu machen, aber ganz klar ist mir das noch nicht. Nur etwas über Klassen und Module zu erfahren gibt mir keine Übersicht.

Mir gefällt gut, dass es eine einfach zu lernende Sprache sein soll. Aber wo sind die Grenzen, bzw. welche Wege verfolgt man besser nicht. Ich möchte zusammen mit meinem Sohn (14) in diese Materie "spielerisch" einsteigen. ;-)

Gruß
Carsten
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Also Python ist für kleine Tools hervorragend geeignet. Für größere würde ich das nicht empfehlen. "Kleine" professionelle in Python geschriebene Tools werden einem Anfänger aber schnell ein Boahh ey entlocken. Die Grenzen sind da bestimmt auch fließend. Beispiele solcher kleinen Tools sind z, B. die Installation von RedHat und Fedora. Ich glaube SuSE's Yast ist auch in Python geschrieben, bin mir aber da ncht sicher. YUM (Yellow Updater) ist auch in Python erstellt.

Schön ist, dass man erst mal von vorne anfangen kann, sprich Kommandozeile. Wenn das dann so halbwegs klar ist, kann man sich in die eine oder andere Oberfläche (GUI) einarbeiten.

....und wo man es nicht einsetzen kann? hmm, da fällt mir momentan wenig ein. Vielleicht wenn es um absolute Geschwindigkeit geht. Aber das bekommt man mit schlechtem Programmierstil in anderen Sprachen mit Sicherheit auch ganz schnell langsam.

Hans
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Hi cm100,

hier mal ein paar Anwendungen die mit Python erstellt wurden:
Skencil 2D-Zeichenprogramm
pychess Schachprogramm
pysol Solitair-Kartenspiel
http://www.pygame.org/ Module zur einfachen Spieleprogrammierung

ausserdem gibt es, viele Anwendungen, hauptsächlich OpenSource, die eine Pythonschnittstelle haben, um Plugins dafür zu erstellen.
Als Beispiele nenne ich mal Gimp, XChat, Blender ...

An die Grenzen stösst Ihr mit Python sicher nicht so schnell. Viele die glauben, daß etwas mit Python nicht geht, sind eher an die eigenen Grenzen gestossen als an die von Python.

Was wirklich nicht geht, ist ein Betriebssystem mit Python zu schreiben.


Gruß

Dookie
Gast

hallo cm100!

also zunächst mal zwei links:

http://www.python.org/community/users.html

ähnlich der:

http://pbf.strakt.com/success

ich glaube das ist ausgesprochen aufschlussreich, was du mit python machen kannst.

also ich bin da nicht ganz so bescheiden, wie dookie und hans. ich kann zwar noch nicht soviel programmieren wie die zwei, habe aber einen ziemlichen guten überblick über alle sprachen.

kenne auch einige programmierer, die viel mit anderen sprachen gemacht haben.

ich sehe es so, dass python durchaus das zeug hat die sprache #1 in den nächsten 5-10 jahren zu sein.

es ist halt fakt, dass in vielen bereichen gewisse sprachen sich schon etabliert haben und der prozess der ablöse ein langwieriger ist. aber er hat eigentlich in vielen bereichen begonnen. siehe perl vs python. viele linux und unix tools waren und sind noch immer in perl, aber besonders redhat und mandrake haben viel davon mit python ersetzt.

was macht python schlussendlich so gut?
überwiegend das design. eine kleine ausführung dazu:
durch die pflicht einzurücken entseht immer gut lesbarer code. gerade im oss bereich ein unschlagbares argument. man erkennt auf einen blick wo eine funktion etc. beginnt und wo sie aufhört.
ein vergleich zu ruby, ansich eine tolle sprache auch, aber:
bei ruby musst du immer mit end arbeiten.
also for.....end/ def.....end usw.
wenn der programmierer so nett ist bei einem langen programm einrückungen zu machen fein, wenn nicht, dann ordnest du zuerst mal einen tag lang die end zu.
hinzukommt, dass inkonsequenter weise kein beginn verlangt wird! wie bei manch anderen sprachen.

das klingt pedantisch, aber wenn du öfters code verschiedener sprachen vergleichst, wird dir sicher klar werden was solche kleinigkeiten im design ausmachen können.

genauso werte ich es als designfehler bei ruby, dass du bei der instanzierung eines objektes new verwenden musst (c = C.new) warum? wo war denn old?
das ist ein krauthaufen und kein design.

in python daher auch nur c=C

das desgin hat aber noch andere pluspunkte. in python schenkt man sich ; und {} (ich meine natürlich nicht dictionaries!)
von der logik her reicht es auch vollkommen zu schreiben:

Code: Alles auswählen

def meinefunktion():
      print "das ist ein gutes design"
ein doppelpunkt beendet den funktionskopf, der funktionskörper folgt. wer will da { am anfang und } am ende

gerade bei funktionen in denen mehrer verschiedene ebenen kommen ist das relevant. also es folgt in der funktion ein vergleich eine schleife oder sonstwas. da kommt freude auf, wenn es vor unnötigen zeichen nur so wimmelt :D

ich spreche hier auch aus erfahrung mit javascript. javascript mache ich nicht mehr. python schon, weil es auch aufgrund dieser genannten gründe spass macht, damit zu arbeiten.

mfg

rolgal
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Hi. Ich seh es schon wieder bescheidener... Ich bin ein kein waschechter Programmierer, sondern nur einer aus Lust und Laune. Aber ich würde es ähnlich wie Rogal begründen: das Sprachdesign ist einfach das beste, was mir bis jetzt begegnet ist und trotz seiner Einfachheit ist Python sehr mächtig. Das ist für mich auch ein Grund: wenn ich wiedermal ein kleines Tool für mich schreibe hab ich in meinem Baukasten schon fast alles parat was ich brauche. Damit kannst du deinen Sohn bestimmt auch gut heranführen, allerdings brauchst du dazu wohl selbst einen Überblick über alle Module Pythons.

Zu guten Tuts kann ich dir leider nix sagen, außer dass du im Forum mal nach Links suchen kannst, da ich das mittlerweile veraltete Buch "Das Python Buch" gelesen hab.

Milan
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Hallo nochmal,

ich möchte noch ein paar Anmerkungen machen, warum ich Python zum Programmieren bevorzuge.

1. Klare Struktur des Codes. Da Einrückungen zur Syntax gehören ist man "gezwungen" schönen Code zu schreiben. Goto gibt es nicht und daher auch keinen Spagetticode. Dokumentation des Programms/Moduls mit Docstrings direkt im Code. Einfache Modularisierung des Codes.

2. Sehr gutes Fehlerverhalten. Wenn zur Laufzeit ein Fehler auftritt wird eine Exception (Ausnahme) geworfen. Diese kann ich in meinem Programm abfangen und behandeln, oder es wird das Programm in einem definierten Zustand sauber beendet. Also Keine Abstürze mit einem lapidaren "segmentation fault" oder "Speicherzugriffsfehler". Vom Programm gehaltene Resourcen (belegter Speicher, offene Dateien, ...) werden im Fehlerfalle auch brav an das Betriebssystem zurückgegeben.

3. Die Möglichkeit prozedural, funktional und objektorientiert zu Programmieren. Nich immer braucht man für alles gleich eine Klasse, oft reichen einfache Prozeduren und Funktionen. Leider wird in vielen Büchern und Tutorials versucht alles Objektorientiert zu erledigen.

4. Interaktiver Pythoninterpreter. Hier kann man wunderbar in einer Interpreterkonsole kleine Codestückchen ausprobieren und auch einfach mal rumspielen.

5. pydoc, geniales Tool zum erforschen der installierten Module.

6. Sehr umfangreiche Modulbibliotheken. Ob es um XML-Parsing oder Numbercrunching geht oder um die Erstellung eines GUI, für fast alles gibt es fertige Module.

7. Relativ einfache Einbindung von Modulen in C-Code, so können die 5-10% des Codes in denen 90-98% des Rechenzeitbedarfs eines "normalen" Programms verbraten werden, wenn es wirklich sein muss, optimiert werden.

8. Die Betriebssystemunabhängigkeit. Wenn auf os-spezifische Sachen verzichtet werden kann, laufen Pythonprogramme unter allen gängigen Platformen.

9. Dieses Forum, aus dem ich auch schon einige sehr gute Anregungen bekommen habe und in dem ein sehr angenehmes Forenklima herrscht.

Die Liste liesse sich sicher noch fortsetzen. Das sind nur die Grundlegenden Punkte die IMHO für Python sprechen.


Gruß

Dookie

P.S.: Meine Programmiererfahrungen. CBM-Basic, 6502-Assembler, Pascal (C64); 68k-Assembler, Modula2, Oberon2, C (Amiga); C++, Java, Javascript, Applescript, PHP (Apple PowerMac); Python (Linux)
fs111
User
Beiträge: 170
Registriert: Samstag 15. November 2003, 11:42
Kontaktdaten:

Ich meine auch mal gelesen zu haben, dass das neue Myst Spiel ins Python geschrieben ist, also die Logik etc., die Engine wird wohl in C/C++ sein. Ansonsten kann man eingentlich fast alles in Python machen. Wenn man hier vor allem mal den ersten Link liest, dann merkt man recht schnell, was alles möglich ist:

http://pyro.sourceforge.net/projects.html

fs111


P.S.: Pyro ist genial!
cm100
User
Beiträge: 6
Registriert: Freitag 12. März 2004, 22:11

hi,

herzliches Dankeschön an Euch für die hilfreichen und ausführlichen Antworten! :o

Jetzt weiß ich, mit Python liege ich richtig und werde den Weg weiterverfolgen. Man kann ohne große Programme installieren zu müssen anfangen und kleine erste Schritte wagen... so werde ich erst einmal einen einfachen Editor suchen um dann einfache Eingabe/Ausgabe Anweisungen zu schreiben, um den Editor kennenzulernen.

Die Links habe ich alle besucht und schon als Lesezeichen gespeichert. ;-)

Mir gefällt übrigends sehr gut an Python die Möglichkeit sowohl Scripte für den WebServer zu schreiben, bzw. dynamische Websiten zu erstellen oder sogar Tools oder Programme zu schreiben.

Bis demnächst...

Gruß
Carsten
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Hallo nochmal,

als Editor kann ich dir http://www.vim.org empfehlen. Er braucht zwar auch etwas Einarbeitungszeit, ist aber sehr mächtig und hat auch Syntaxhighlighting, natürlich auch für Python.
Es gibt auch ein deutsches Tutorialscript für vim, falls es bei Deinem nicht dabei ist, kann ich es dir gerne zuschicken.


Gruß

Dookie
fs111
User
Beiträge: 170
Registriert: Samstag 15. November 2003, 11:42
Kontaktdaten:

<Werbung>
Falls Du wirklich vim nehmen solltest, probier mal mein pydoc Skript für vim. :D
http://www.vim.org/scripts/script.php?script_id=910
</Werbung>

fs111
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Hi fs111,

habs mir grad runtergeladen, hatte ja selber so was ähnliches schon erstellt, aber nicht so komfortabel wie deins.


Gruß

Dookie
fs111
User
Beiträge: 170
Registriert: Samstag 15. November 2003, 11:42
Kontaktdaten:

Freut mich, dass es Dir gefällt, falls Du noch Verbesserungsvorschläge hast, sag Bescheid.

Grüße fs111
murphy
User
Beiträge: 60
Registriert: Samstag 30. Oktober 2004, 01:34
Wohnort: Berlin
Kontaktdaten:

@Ruby:
rolgal hat geschrieben:das ist ein krauthaufen und kein design.
wen es interessiert, der kann sich die antworten einer Ruby-community unter
http://www.rubyforen.de/topic,171.html
anschauen - und mitreden.

Python und Ruby sind wohl zwei der größten fortschritte auf dem sprachenmarkt - darüber sollte man streiten können :)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

murphy hat geschrieben:Python und Ruby sind wohl zwei der größten fortschritte auf dem sprachenmarkt - darüber sollte man streiten können :)
Ich wollt mir Ruby auch schon länger anschauen (ich hab auch eine aktuelle Version installiert), angeblich soll es das Klassenkonzept besser unterstützen, aber ich sehe nicht den Sinn warum es beispielsweise Mixins gibt, aber nicht simple Mehrfachvererbung, und ausserdem schaut die Python Syntax für mich (aktuell) irgendwie logischer und mehr straightforward aus.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Das bisher warscheinlich größte Projekt in Python ist die Schuchmaschine google.
TUFKAB – the user formerly known as blackbird
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

blackbird hat geschrieben:Das bisher warscheinlich größte Projekt in Python ist die Schuchmaschine google.
Wobei Google nicht für jedermann als Software erhältlich ist, und warscheinlich auch nicht nur in Python gemacht ist. Aber ein großes Projekt ist Zope (X 3 erst kürzlich fertig).
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Nochwas. viele Projekte verwenden Python als Scriptsprache. :D
TUFKAB – the user formerly known as blackbird
Antworten