N00b: Was kann man denn alles mit Python machen?...

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
jogi
User
Beiträge: 2
Registriert: Freitag 16. Februar 2007, 23:04
Kontaktdaten:

Hallo,

wie oben erwähnt bin ich absoluter Anfänger in Sachen programmieren. Das will ich jetzt ändern und generall mal fragen ob es überhaupt gut ist mit Python anzufangen.
Außerdem ist mir bei der Lektüre einiger Faqs, wikis, etc nicht ganz klar geworden wo genau denn der Unterschied liegt, was man denn mit einer "richtigen"(?) Programmiersprache wie C, oder einer Skriptsprache wie Python machen kann.
Kann man denn mit Python z.b. ein Spiel schreiben, in dem man im Netzwerk gegeneinander treten kann?
Oder wird Python nur im Web benutzt?
Was bedeutet es, wenn [wiki=Python#WerSetztEsEin]wiki.python.de[/wiki] schreibt, dass OpenSource 3D Engine, Bittorrent oder Gentoo Python benutzt?

ich freue und bedanke mich falls mir jmd antwortet und damit weiterhilft!
mfg
Jogi :D
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Hallo und willkommen im Python-Forum Jogi...

also zu Python kann ich folgendes sagen:

Es ist eine sogenannte Multi-Purpose-Programmiersprache. Mit Python kann man sozusagen fast alles machen. So spezielle Dinge wie der CompilerBau oder extrem systemnahe Dinge sind allerdings schwierig bis nicht machbar.

Ansonsten ist Python sehr "konfortabel". Du hast damit eigentlich nie solche programmiertechnischen Problem wie mit C oder dergleichen. Außerdem ist alles schoener geloest, als in C oder zB Java (meiner Meinung nach)

Einziges Manko an Python: Es ist eine interpretierte Sprache (nein noch nicht direkt das Manko), die recht langsam ist.
Wenn du zeitkritische oder sehr große Sachen schreibst, ist Python evtl nicht so gut wie Java oder C/C++.

Ansonsten ist Python aber einfach genial. Ich wuerde dich gern mit Internas volllappen, aber ich glaube nicht, dass es was bringen wuerde.

Ich empfehle die Tutorials durchzulesen, denn um sowas kommt man bei keiner Programmiersprache drumrum...
http://www.python.org/doc/ bietet da schonmal eine Auswahl.

Ansonsten bist du hier im Forum eigentlich genau richtig. Frag was auch immer du zu fragen hast, hier wird dir eigentlich immer geholfen.

MfG und so weiter
pSy
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

nkoehring hat geschrieben:Hallo und willkommen im Python-Forum Jogi...
Da schließe ich mich an
Es ist eine sogenannte Multi-Purpose-Programmiersprache. Mit Python kann man sozusagen fast alles machen. So spezielle Dinge wie der CompilerBau oder extrem systemnahe Dinge sind allerdings schwierig bis nicht machbar.
Hier eher weniger. Das Compiler Bau funktioniert zeigt pypy und als Betriebssystem haben^Whatten wir unununium.
Ansonsten ist Python sehr "konfortabel". Du hast damit eigentlich nie solche programmiertechnischen Problem wie mit C oder dergleichen. Außerdem ist alles schoener geloest, als in C oder zB Java (meiner Meinung nach)
Größtenteils ja. Eigentlich durch die Bank schöner als C und bis auf den IO Zugriff schöner als Java :) Die Interfaces in Java sind vielleicht stellenweise etwas was unter Python abgeht.
Einziges Manko an Python: Es ist eine interpretierte Sprache (nein noch nicht direkt das Manko), die recht langsam ist.
rPython lässt sich kompilieren, pypy hat einen JIT (gut, der ist *noch* langsam) und dann gibts auch noch psyco.
Wenn du zeitkritische oder sehr große Sachen schreibst, ist Python evtl nicht so gut wie Java oder C/C++.
Doch. Weil wenn du was zeitkritisches hast kannst du Quellcodeteile immer noch in C auslagern. Für was gibts die Python API.
Ansonsten ist Python aber einfach genial. Ich wuerde dich gern mit Internas volllappen, aber ich glaube nicht, dass es was bringen wuerde.
Da schließe ich mich wieder an :D
TUFKAB – the user formerly known as blackbird
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Ehm... Unununium kommt ohne C fuer die systemnahen Sachen nicht aus.
PyPy ist das einzigste mir bekannte Projekt, dass sowas versucht. Klar funktioniert es, aber es ist verdammt aufwendig zu loesen ;)

Was ist in Java denn schoener beim IO??
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Ene Uran
User
Beiträge: 125
Registriert: Sonntag 17. September 2006, 20:14
Wohnort: Hollywood

Wenn es um die Schnelligkeit des Programmes geht, sind Python und Java Schnecken. Willst Du mal schnell ein Programm schreiben, ist Python meist zehn mal schneller als Java oder C/C++.
Atomkraftwerkaktienbesitzer
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Schoen gesagt...

Allerdings stimm es mit Java nicht so ganz. Java ist zwar etwas langsamer als reines C, aber bei C++ ist zB schonwieder kein großer Unterschied (ja doch, ein wenig noch) zu merken.
Python allerdings ist in der Ausfuehrung, wie alle interpretierten und "einfachen" Sprachen sehr langsam. Das liegt zum Einen daran das sie interpretiert werden, zum Anderen daran, dass man durch 5 bis 10 Abstraktionsschichten muss, bevor man so nahe am System ist, wie C.

Uebrigens: Java kann man langsam machen, indem man seine Klassen-Typen massiver benutzt. Damit mein ich zB den Listentyp, der alle Datentypen aufnehmen kann und sowas.
Allerdings sind die Arrays die Java von C direkt uebernommen einfach mal schnell wie schwein...
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hallo yogi, willkommen im Forum,
jogi hat geschrieben:Das will ich jetzt ändern und generall mal fragen ob es überhaupt gut ist mit Python anzufangen.
Mit Python zu programmieren ist fein - das Problem könnte aber sein, dass wenn du erstmal Python kannst, keine Lust hast, etwas anderes zu nutzen. Das observiere ich an mir selbst - denn die meisten meiner Probleme lassen sich mit Python sauberer, klarer und schneller lösen.
jogi hat geschrieben:wo genau denn der Unterschied liegt, was man denn mit einer "richtigen"(?) Programmiersprache wie C, oder einer Skriptsprache wie Python machen kann.
Lösen wird uns von Begriff Skriptsprache. Die meisten Leute stempeln Sprachen die nicht zu native Code Kompiliert werden als minderwertige Skriptsprache ab. Ist Java eine Skriptsprache? Sie kann ja nur in *.class-Dateien kompiliert werden. Das kann Jython auch. Die Unterschiede zu C sind, dass du mit C systemnaher programmieren kannst, also etwa Kerneltreiber schreiben kannst. Sowas macht man aber in der Regel nicht oft.
jogi hat geschrieben:Kann man denn mit Python z.b. ein Spiel schreiben, in dem man im Netzwerk gegeneinander treten kann?
Ja. Mit Pygame hast du ein Binding an die SDL.
jogi hat geschrieben:Oder wird Python nur im Web benutzt?
Nein, es wird auch im Web benutzt. Meist über Frameworks wie Django oder TurboGears - analog zu Ruby on Rails.
jogi hat geschrieben:Was bedeutet es, wenn [wiki=Python#WerSetztEsEin]wiki.python.de[/wiki] schreibt, dass OpenSource 3D Engine, Bittorrent oder Gentoo Python benutzt?
Der ursprüngliche BitTorrent-Client (inzwischen als Mainline bezeichnet) wurde in Python geschrieben. Und Gentoo Linux' Paketmanagement Portage ist in Python geschrieben, ebenso wie pkgcore.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Leonidas hat geschrieben:
jogi hat geschrieben:Kann man denn mit Python z.b. ein Spiel schreiben, in dem man im Netzwerk gegeneinander treten kann?
Ja. Mit Pygame hast du ein Binding an die SDL.
http://www.ogre3d.org/wiki/index.php/PyOgre
http://www.panda3d.org/
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

nkoehring hat geschrieben:Was ist in Java denn schoener beim IO??
Zb, dass du problemlos Unicode aus jedem file(-like) Objekt lesen kannst.
TUFKAB – the user formerly known as blackbird
BlackJack

Das stimmt nicht. Woher soll Java denn wissen in welcher Kodierung die Datei vorliegt? Es nimmt einfach eine bestimmte Kodierung an. UTF-8 glaube ich war das.

Das kann man in Python mit dem `codecs`-Modul auch machen. Etwas mehr Schreibarbeit in Python aber trotzdem weniger als in Java, wo man erst die verschiedenen Reader-Objekte zusammenstöpseln muss um das gleiche Ergebnis zu erhalten.
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

BlackJack hat geschrieben:... Etwas mehr Schreibarbeit in Python aber trotzdem weniger als in Java ...
... wie wahr, ich plage mich inzwischen beruflich mit diesem Problem herrum und muss sagen, dass gerade bei Lösungen für verschiedenen Plattformen eine runde und sauberere Implementierung unter Python frustfreier zu schreiben ist, als in Java.

Was natürlich nicht heissen muss, dass der Python-Rechner überhaupt nicht die Fensterrahmen passieren wird ... es ... geht halt eben nur nicht so schnell ;).
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

In Java ist das schlimm...

Code: Alles auswählen

import java.io.*
// klassenschmuß
BufferedReader readSth = new BufferedReader(new InputStreamReader(System.in));
sth = readSth.read();
diese Codezeilen brauche ich (neben all dem Klassenschmuß) in Java, allein um ein bissl Text einzulesen...

Code: Alles auswählen

import java.io.*
// klassenschmuß
BufferedReader readSth = new BufferedReader(new FileReader(FILEOBJECT));
sth = readSth.read();
So oder so aehnlich muesste es bei Java aussehen, wenn man ne Datei auslesen will.


...ich mein... das allein ist schon ein Grund, ueber den "Vorteil" das Java komplett Unicodefaehig ist, drueber weg zu sehen ;)

PS: in python sind die beiden sachen in jeweils ein bis zwei Zeilen loesbar ;)
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Am besten in dem Fall Jython, JRuby, Rhino, Scala, Beanshell, Nice oder Groovy zu nutzen. Dann kann man sich eine kleine Stdlib darin schreiben, die etwas simpler ist und fertig. Die Java-VM als Target ist aber zugegebenermaßen ein interessantes Ziel.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
jogi
User
Beiträge: 2
Registriert: Freitag 16. Februar 2007, 23:04
Kontaktdaten:

Danke für eure Antworten!

Daraus kann ich das einheitliche Resultat entnehmen, dass Python schon sehr vielseitig ist und trotzdem leichter zu programmieren ist als andere Sprachen.
Demnächst werde ich wohl damit anfangen mich durch Tutorials zu arbeiten....
Habt ihr noch Buchempfehlungen? Aus nem Buch lernen ist schon auch immer etwas anderes als pdfs zu lesen...
Ihr werdet bestimmt noch des öfteren in naher Zukunft von mir hören, wenn ich auf ein "unlösbares" Problem stoßen werde.

bis dann
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

jogi hat geschrieben:Habt ihr noch Buchempfehlungen? Aus nem Buch lernen ist schon auch immer etwas anderes als pdfs zu lesen...
Ja schon klar - aber benutzt doch bitte die Suchfunktion, das wurde nun wirklich oft besprochen.
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:

Hab via birkenfeld gerade das eventuell neue IO System gefunden: http://svn.python.org/view/sandbox/trunk/sio/

Schaut doch etwas Java ähnlich aus.
TUFKAB – the user formerly known as blackbird
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Armin, das alte IO-Sys bleibt doch aber erhalten in Py3K oder?

EDIT: Ne schon gut, habs mit was anderem verwechselt.
Antworten