PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Was soll ich programmieren um Python zu lernen?


Gast
2008-06-02, 18:35:35
Ich möchte mir Python beibringen, aber ich weiß überhaupt nicht was ich darin am besten Programmieren soll.
Das Progamm sollte für mich am Schluß schon einen Nutzen haben.



Programmieren mit anderen Progammiersprachen wie z.B. Java, C++, C, Pascal kann ich schon.

Mir geht's halt darum, daß ich
A) Python durch Praxis lerne
und
B) ich das anhand eines Programmes mache, bei dem man nicht sagen kann,
daß man das besser in Java, C++ usw. schreiben sollte.


B) ist mir hier halt wichtig, denn sobald mir irgendetwas einfällt, daß ich programmieren könnte, komme ich auf die Idee, das ich so ein Programm dann doch besser in einer richtigen programmiersprache und keiner Scriptsprache umsetze.

Ich brauche also etwas, wo Python als Scriptsprache Sinn macht, aber man trotzdem Python lern.

Marscel
2008-06-02, 18:47:56
Das tolle bei Python ist ja, dass man es für die allermeisten Sachen recht bequem verwenden kann, also über Webanwendungen, Skripte, Benutzerdialoge, OpenGL, DirectX, Datenbanken.

Was mir persönlich dabei gut geholfen hat, die Beispielscripts von wxWidgets oder PyQt durchzugucken, zu bearbeiten. Da kommt man wirklich flott in Python rein, gerade weil der Code ziemlich Pseudo-Code ist und es sinnvoll angewendet wird.

nonTS
2008-06-02, 18:52:06
Gibt es Python "Spezialitäten", also Sachen, die mit der Sprache besonders gut gelingen, bezogen auf den Syntax, nicht auf die Bibliotheken?

Marscel
2008-06-02, 19:01:20
Meiner Erfahrung nach ist für nicht allzu speed-relevante Anwendungen kleineren bis mittleren Ausmaßes der Vorteil an Python einfach, dass man deutlich schneller am Ziel ist, heißt fertig mit dem Programmieren ist.
Das mag auch an meinen zittrigen C++ Kenntnissen liegen, aber mit Python bin ich in der Hinsicht noch nirgendwo hängen geblieben

PatkIllA
2008-06-02, 19:10:47
Ich hab mir Python angeeignet, um bei EventGhost (http://www.eventghost.org/) mir noch fehlende Sachen hinzuzufügen.
Sprache wechseln geht nicht, weil der Rest in Python ist und es gibt praktische Anwendungen.

Vielleicht findest du ja was sinnvolles oder ein anderes Projekt.

Shink
2008-06-02, 19:57:15
Gibt es Python "Spezialitäten", also Sachen, die mit der Sprache besonders gut gelingen, bezogen auf den Syntax, nicht auf die Bibliotheken?
Würd sagen: Nein, sonst wärs ja keine General Purpose-Sprache.:tongue:

Mit PHP gelingen (vom Konzept her/angeblich:rolleyes:) besonders gut einfache Webanwendungen, mit Perl Daten Mantschen (aka Data Munging) und mit Python... so ziemlich alles wofür man normalerweise Java oder Ähnliches verwendet.

Ich würd mit einem einfachen Spiel ala Tetris anfangen (da ich das mit jeder Programmiersprache gemacht hab und weils mich einfach am besten motiviert).

nonTS
2008-06-02, 20:06:05
Würd sagen: Nein, sonst wärs ja keine General Purpose-Sprache.:tongue:

....

Nagut, hätte ich mir im Zeitalter der Frameworks&Schnickschnack ja auch irgendwie denken können.

Dark Basic wäre als Beispiel so ein Kandidat - aber der ist zu exotisch.


*alle Hoffnung auf ne besonders intuitive, spezialisierte Programmiersprache für heute begrab* :usad:

Gast
2008-06-02, 20:08:48
Ich möchte mir Python beibringen, aber ich weiß überhaupt nicht was ich darin am besten Programmieren soll.
Das Progamm sollte für mich am Schluß schon einen Nutzen haben.



Programmieren mit anderen Progammiersprachen wie z.B. Java, C++, C, Pascal kann ich schon.

Mir geht's halt darum, daß ich
A) Python durch Praxis lerne
und
B) ich das anhand eines Programmes mache, bei dem man nicht sagen kann,
daß man das besser in Java, C++ usw. schreiben sollte.


B) ist mir hier halt wichtig, denn sobald mir irgendetwas einfällt, daß ich programmieren könnte, komme ich auf die Idee, das ich so ein Programm dann doch besser in einer richtigen programmiersprache und keiner Scriptsprache umsetze.

Ich brauche also etwas, wo Python als Scriptsprache Sinn macht, aber man trotzdem Python lern.

Schau Dir mal http://adesklets.sourceforge.net/index.html bzw. http://adesklets.sourceforge.net/doc/en/Programming-adesklets.html#Programming-adesklets an. Dafür bieten sich "Skript"-sprachen an.

Gast
2008-06-02, 20:31:20
Auch eine Möglichkeit:
http://www.pythonchallenge.com

rotalever
2008-06-03, 21:41:12
Ich würde nicht anfangen mit Python Spiele zu programmieren, auch nicht Tetris. Dabei lernt man wohl kaum das umfangreiche Featureset kennen. Vor allem ist das vielleicht ein Gebiet wo Python nicht soo der Bringer sein wird.

Die Frage ist halt immer auch, für welchen Zweck willst du Python lernen? Einfach so, damit man es kann? Wenn du keine spezifische Aufgabe hast, wirst du es nur wenig in der Praxis einsetzen und schnell wieder verlernen. Man sollte sich einmal das komplette Tutorial von der Python-Seite durchlesen, dann kann man alle wesentlichen Aspekte der Sprache. Anschließend benötigt man ein konkretes Problem. Dieses künstlich zu schaffen um den 100000sten Tetris Klon zu machen halte ich nicht für sinnvoll. Wenn man kein Problem hat, das man lösen möchte, dann brauch man auch die Sprache nicht zu lernen.

Shink
2008-06-04, 08:53:54
Anschließend benötigt man ein konkretes Problem. Dieses künstlich zu schaffen um den 100000sten Tetris Klon zu machen halte ich nicht für sinnvoll. Wenn man kein Problem hat, das man lösen möchte, dann brauch man auch die Sprache nicht zu lernen.
Ach, nun komm...:rolleyes:

Es soll immer noch Leute geben die zum Spaß programmieren und nicht weil sie konkrete Probleme haben. Auch so kann man etwas lernen, es kann motivierender sein als z.B. zu spielen und man kann das erworbene Wissen vielleicht mal profitabel einsetzen.

Ganon
2008-06-04, 09:19:23
Vor allem ist das vielleicht ein Gebiet wo Python nicht soo der Bringer sein wird.

Eve Online läuft doch afaik mit Python...

rotalever
2008-06-04, 13:56:30
Eve Online läuft doch afaik mit Python...
Alles, oder nur die Skripting-Engine?

Gast
2008-06-04, 14:01:48
http://de.wikipedia.org/wiki/Eve_online#Technik

Kommunikation zwischen Client, Proxy und SOL-Knoten erfolgt mit Hilfe des von CCP entwickelten RPC-Protokolls MachoNet. Die Verarbeitung erfolgt durch eine spezielle Version der Programmiersprache Python, Stackless Python, deren Entwicklung von CCP maßgeblich gefördert wird. Durch den Verzicht auf den Prozessorstack können Stackless-Python-Threads besonders einfach serialisiert werden. Dies macht sich EVE zum Beispiel beim Wechsel des Spielers zwischen Sonnensystemen zu Nutze

NonTS
2008-06-04, 14:07:59
Hmmm, wird irgendwie immer interessanter, dieses "Python":

Python wurde mit dem Ziel entworfen, möglichst einfach und übersichtlich zu sein. Dies wird durch zwei Dinge erreicht: Zum einen enthält die Sprache einen sehr mächtigen Funktionsumfang in nur wenigen Schlüsselwörtern, zum anderen wurde die Syntax reduziert und auf Übersichtlichkeit optimiert. Dies führt dazu, dass Python eine Sprache ist, in der man schnell, einfach und leicht programmieren kann. Sie ist daher besonders dort geeignet, wo Übersichtlichkeit und Lesbarkeit des Codes eine herausragende Rolle spielen – z. B. in der Teamarbeit, bei Beschäftigung mit dem Quellcode nach längeren Pausen oder bei Programmieranfängern.

Durch die Möglichkeit, auch Programme anderer Sprachen als Modul einzubetten, werden viele Nischen in der Programmierung abgedeckt. Bei Bedarf lassen sich schnellere Routinen maschinennah programmieren, oder Python kann als Skriptsprache eines anderen Programms dienen (Beispiele: OpenOffice.org, Blender, Maya, PyMOL und Gimp).

Als Blender-Api: http://www.blender.org/documentation/244PythonDoc/API_intro-module.html

rotalever
2008-06-04, 15:33:34
http://de.wikipedia.org/wiki/Eve_online#Technik

Kommunikation zwischen Client, Proxy und SOL-Knoten erfolgt mit Hilfe des von CCP entwickelten RPC-Protokolls MachoNet. Die Verarbeitung erfolgt durch eine spezielle Version der Programmiersprache Python, Stackless Python, deren Entwicklung von CCP maßgeblich gefördert wird. Durch den Verzicht auf den Prozessorstack können Stackless-Python-Threads besonders einfach serialisiert werden. Dies macht sich EVE zum Beispiel beim Wechsel des Spielers zwischen Sonnensystemen zu Nutze
Ja, das hört sich für mich aber an, als würde der Server über Python laufen. Meine Aussage keine Spiele in Python zu programmieren bezog sich eher auf die (3d-)Engine des Spiels etc.

Gast
2008-06-04, 15:41:42
Also im Python Wiki Artikel steht:

Ebenso lassen sich Spiele und andere Anwendungen mit einer modernen 3D Grafikengine realisieren, wie die Spieleschmiede CCP Games mit EVE-Online zeigte.

rotalever
2008-06-04, 15:57:43
Also im Python Wiki Artikel steht:

Ebenso lassen sich Spiele und andere Anwendungen mit einer modernen 3D Grafikengine realisieren, wie die Spieleschmiede CCP Games mit EVE-Online zeigte.
OK wenn das da steht wird das wohl stimmen. Wundert mich allerdings ein bisschen, da doch bei so etwas die meisten Berechnungen sehr zeitraubend sind.

Coda
2008-06-04, 16:05:42
Also im Python Wiki Artikel steht:

Ebenso lassen sich Spiele und andere Anwendungen mit einer modernen 3D Grafikengine realisieren, wie die Spieleschmiede CCP Games mit EVE-Online zeigte.
Was bei Wikipedia steht muss man nicht immer auf die Goldwaage legen. Es würde mich sehr wundern, wenn die Engine in Python geschrieben wäre.

Shink
2008-06-04, 16:31:42
Hmm... keine Ahnung ob man das so auffassen könnte:

The graphic engine is based on DX8, with GeForce 256 as minimum hardware requirement. Through a powerful Python programmed API the artists at CCP have a tool that enables the to easily realize their vision and giving them great flexibility and freedom in creating graphics of cinematic quality.

http://foros.3dgames.com.ar/469217-post30.html

Ist ja auch eigentlich egal. Aber niemand kann mir sagen Python wär besonders schlecht zum Programmieren von Spielen (mir, der ich dafür bevorzugt Java verwende).

Die Sprache ist nett und übersichtlich und man kann damit wirklich so gut wie alles machen; selbst Embedded-(Microcontroller) oder Serveranwendungen sind halbwegs verbreitet.

rotalever
2008-06-04, 17:09:16
Ich finde es doch sehr zweifelhaft wenn man Echtzeitanwendungen in einer Sprache schreibt die locker 100x langsamer ist als C++..
Man muss halt immer differenzieren, wenn man sagt eine Anwendung ist in Python geschrieben. Wie viel ist denn nun wirklich in der Sprache und wie viel als "Bibliothek", die dann in C implementiert ist? Der Extremfall wäre sowas :biggrin::

import game
mygame = game.game()
mygame.run()

Und das Modul "game" ist in C geschrieben. So, ist das jetzt ein Python-Programm?

PatkIllA
2008-06-04, 17:10:53
Ich finde es doch sehr zweifelhaft wenn man Echtzeitanwendungen in einer Sprache schreibt die locker 100x langsamer ist als C++.. Quelle?

Marscel
2008-06-04, 17:16:18
Das mit dem Speed finde ich auch fragwürdig, ich meine, dass die Python-Entwickler irgendwo bei ihren Jobbeschreibungen stehen haben/hatten, dass sie C nur dann verwenden, wenn es wirklich auf die letzten Prozent ankommt, für alles andere wird Python verwendet (Aufgabe weiß ich nicht mehr).

rotalever
2008-06-04, 17:24:41
Quelle?
http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=python&lang2=gpp

Coda
2008-06-04, 17:26:10
Hmm... keine Ahnung ob man das so auffassen könnte:

http://foros.3dgames.com.ar/469217-post30.html

Ist ja auch eigentlich egal. Aber niemand kann mir sagen Python wär besonders schlecht zum Programmieren von Spielen (mir, der ich dafür bevorzugt Java verwende).

Die Sprache ist nett und übersichtlich und man kann damit wirklich so gut wie alles machen; selbst Embedded-(Microcontroller) oder Serveranwendungen sind halbwegs verbreitet.
Also ich fass das eben so auf, dass es eine Python-API zur Grafikengine gibt. So hab ich das auch erwartet.

Python ist für Spielelogik bestimmt sehr gut geeignet. Da würde ich eh eine Scriptsprache einsetzen.

rotalever
2008-06-04, 17:30:28
Python ist für Spielelogik bestimmt sehr gut geeignet. Da würde ich eh eine Scriptsprache einsetzen.
Ja genau, weil dort eben nicht sonderlich viel gerechnet werden muss. Eine Skriptsprache ist da ideal, da es einfacher ist zu programmieren. Aber überall wo massiv Dinge berechnet werden müssen, macht Python einfach keinen Sinn.