Hallo,
ich hab mich nun hier registriert da ich mir in den Kopf gesetzt hab Python zu lernen da ich momentan etwas viel Freizeit habe. Meine Programmiererfahrung beschränkt sich grob genommen auf C und das auch nicht sehr gut
Bevor ich nun anfange irgendwas zu lernen, wollte ich fragen was denn nun mehr Sinn macht, Python 2.x oder gleich 3.x?
Ich nehme auch gerne Empfehlungen für Tutorials entgegen, mit Englisch habe ich überhaupt keine Probleme. Da es aber doch einige verschiedene Tutorials gibt und ich als Anfänger nicht einschätzen kann wie brauchbar die jeweils sind, wäre ich ganz froh wenn mich jemand beraten könnte der Ahnung hat.
Sollten wenn möglich aber keine Bücher sein, die sind mir in der Regel zu teuer^^
Danke schon im Vorraus
Anfänger - Python 2.x oder 3.x?
Hallo und Wilkommen im Forum,
am besten du schaust dir mal die offiziellen Tutorials (2.6, 3.1) an. Um dir eine Empfehlung für die Version geben zu können, müsstest du uns noch sagen wofür und wann du Python verwenden möchtest. Ansonsten gibts dazu auch schon einige Themen im Forum.
Grüße
Gerrit
Edit (Leonidas): Thread verschoben. Hat in "Links" nichts zu suchen.
am besten du schaust dir mal die offiziellen Tutorials (2.6, 3.1) an. Um dir eine Empfehlung für die Version geben zu können, müsstest du uns noch sagen wofür und wann du Python verwenden möchtest. Ansonsten gibts dazu auch schon einige Themen im Forum.
Grüße
Gerrit
Edit (Leonidas): Thread verschoben. Hat in "Links" nichts zu suchen.
-
- User
- Beiträge: 18
- Registriert: Mittwoch 1. Juli 2009, 14:20
Hallo!
Im Moment dürfte 2.6.2 die aktuell gebräuchlichste Version sein. 3.1 ist ganz neu und nicht 100% Code kompatibel. Um anzufangen würde ich darum 2.6 empfehlen, da auch 99.9% der Module damit laufen.
Die Umstellung auf Python3 wird erst in den nächsten Jahren erfolgen und der Unterschied ist dann für einen Umstieg auch nicht soooooo schwer.
MfG
Christian
Im Moment dürfte 2.6.2 die aktuell gebräuchlichste Version sein. 3.1 ist ganz neu und nicht 100% Code kompatibel. Um anzufangen würde ich darum 2.6 empfehlen, da auch 99.9% der Module damit laufen.
Die Umstellung auf Python3 wird erst in den nächsten Jahren erfolgen und der Unterschied ist dann für einen Umstieg auch nicht soooooo schwer.
MfG
Christian
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Nein, ganz so schlimm wie amiganer68 es darstellt ist es nicht. PyQt ist beispielsweise auch schon Python3 kompatibel.
Python3 ist weit sauberer zu lernen und IMHO ist der Weg Python3->Python2 nicht schwieriger als andersrum, jedoch muss man nicht zwangsweise auf Python2 zurueckfallen.
Im Unternehmensumfeld ist das allerdings u.U. eine andere Angelegenheit.
Der beste Weg Python zu lernen ist das Tutorial und es danach praktisch anzuwenden gute Python-Buecher (v.a. auf deutsch) sind rar. Aber "A Byte of Python" und "Dive into Python" (beide frei) zaehlen dazu. Wie es da mit der Python3 Version aussieht kann ich allerdings nicht sagen.
Python3 ist weit sauberer zu lernen und IMHO ist der Weg Python3->Python2 nicht schwieriger als andersrum, jedoch muss man nicht zwangsweise auf Python2 zurueckfallen.
Im Unternehmensumfeld ist das allerdings u.U. eine andere Angelegenheit.
Der beste Weg Python zu lernen ist das Tutorial und es danach praktisch anzuwenden gute Python-Buecher (v.a. auf deutsch) sind rar. Aber "A Byte of Python" und "Dive into Python" (beide frei) zaehlen dazu. Wie es da mit der Python3 Version aussieht kann ich allerdings nicht sagen.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Es fallen einige Spezialfaelle weg, wie z.b. die new-/old-Style-Klassen oder das ``print``-Statement und dessen Eigenheiten[1] (nun sauber mit der neuen ``print``-Funktion kontrollierbar).
Gleichzeitig lernt man auch direkt Generatoren/Iteratoren/Views kennen und stoesst nicht spaeter darauf.
Nur ein paar Kleinigkeiten die mir direkt einfallen, aber IMHO dazu beitragen das Lernen zu erleichtern.
[1] Man hatte immer min. ein Leerzeichen, will man das vermeiden, muss man auf ``sys.stdout`` ausweichen.
Gleichzeitig lernt man auch direkt Generatoren/Iteratoren/Views kennen und stoesst nicht spaeter darauf.
Nur ein paar Kleinigkeiten die mir direkt einfallen, aber IMHO dazu beitragen das Lernen zu erleichtern.
[1] Man hatte immer min. ein Leerzeichen, will man das vermeiden, muss man auf ``sys.stdout`` ausweichen.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
-
- User
- Beiträge: 3
- Registriert: Donnerstag 27. August 2009, 00:27
Danke für die Antworten
Das heißt dann im Klartext es ist eher ne Glaubenssache mit was man anfängt?^^
Ich schätze für 2.6 wird es momentan weit mehr Tutorials geben als für 3.1, oder?
Das heißt dann im Klartext es ist eher ne Glaubenssache mit was man anfängt?^^
Ich schätze für 2.6 wird es momentan weit mehr Tutorials geben als für 3.1, oder?
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Nein es ist keine Glaubenssache. Der Schritt zwischen den Versionen ist auch nicht so gross, dass es einen Riesenunterschied in der Anwendung macht.
Die Menge der Tutorials ist die gleiche - zumindest was offizielle angeht (daneben sind IMHO nur die genannten Buecher eine Alternative) - wobei es fuer 3.1 eine deutsche Uebersetzung gibt.
Die Frage - die uebrigens schon laenger im Raum steht - ist, was willst du genau damit anfangen?
Lernen, um des Lernens willen? -> Python3
Konkretes Projekt, inklusive Zeitplanung / Third Party Libs benoetigt? ->Python2.6
Andernfalls Python3.
Die Menge der Tutorials ist die gleiche - zumindest was offizielle angeht (daneben sind IMHO nur die genannten Buecher eine Alternative) - wobei es fuer 3.1 eine deutsche Uebersetzung gibt.
Die Frage - die uebrigens schon laenger im Raum steht - ist, was willst du genau damit anfangen?
Lernen, um des Lernens willen? -> Python3
Konkretes Projekt, inklusive Zeitplanung / Third Party Libs benoetigt? ->Python2.6
Andernfalls Python3.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
Wie wäre es denn einfach mit dem offiziellen Tuturial für Python 3.1?
Der wirklich große Nachteil entsteht IMHO erst, wenn man Module nutzen will, die nicht bereits in Python integriert sind. Dort kann es häufig sein, dass Python 3.x noch nicht unterstützt wird. Von 99,9% würde ich dabei aber nicht sprechen.
Eine alphabetische Übersicht der integrierten Module findet sich übrigens hier. Du kannst ja mal die Kurzbeschreibungen durchgucken und solltest dann sehen, ob 3.1 für dein Vorhaben geeignet ist.
Pauschal kann man dir die Antwort wie gesagt nicht geben. Ich finde es nur schade, Anfänger direkt auf die 2.6 zu verweisen und Python 3 damit gewissermaßen "abkacken" zu lassen.
Der wirklich große Nachteil entsteht IMHO erst, wenn man Module nutzen will, die nicht bereits in Python integriert sind. Dort kann es häufig sein, dass Python 3.x noch nicht unterstützt wird. Von 99,9% würde ich dabei aber nicht sprechen.
Eine alphabetische Übersicht der integrierten Module findet sich übrigens hier. Du kannst ja mal die Kurzbeschreibungen durchgucken und solltest dann sehen, ob 3.1 für dein Vorhaben geeignet ist.
Pauschal kann man dir die Antwort wie gesagt nicht geben. Ich finde es nur schade, Anfänger direkt auf die 2.6 zu verweisen und Python 3 damit gewissermaßen "abkacken" zu lassen.
Was mich an Python 3.x total annervt, ist diese
-Geschichte.
Warum hat man da nicht DANEBEN noch die gesamte
-Syntax von Python 2.x erhalten? Ob hinter dem Ausdruck Klammern stehen (Funktion) oder nicht (Statement) könnte der Interpreter doch problemlos erkennen und auseinanderhalten.
Ebenso hätte man NEBEN
auch das frühere
gültig lassen können.
Ich meine, es war an diesen wichtigen Stellen absolut unnötig, die Abwärtskompatibilität zu brechen.
An den anderen wahrscheinlich auch. So hat man sich nun ein hausgemachtes Problem geschaffen, ohne dafür zusätzliche Funktionalität zu erhalten.
Ich kann nur hoffen, daß in Python 4.x zusätzlich auch wieder die Syntax von Python 2.x mit unterstützt wird.
Gruß
Code: Alles auswählen
print("Hallo")
Warum hat man da nicht DANEBEN noch die gesamte
Code: Alles auswählen
print "Hallo"
Ebenso hätte man NEBEN
Code: Alles auswählen
import tkinter
Code: Alles auswählen
import Tkinter
Ich meine, es war an diesen wichtigen Stellen absolut unnötig, die Abwärtskompatibilität zu brechen.
An den anderen wahrscheinlich auch. So hat man sich nun ein hausgemachtes Problem geschaffen, ohne dafür zusätzliche Funktionalität zu erhalten.
Ich kann nur hoffen, daß in Python 4.x zusätzlich auch wieder die Syntax von Python 2.x mit unterstützt wird.
Gruß
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Ich glaube du hast den Sinn von Python3 nicht verstanden. Es war von Anfang an dazugedacht mit der Rueckwaertskompatibilitaet zu brechen, um ein paar von Pythons Jugendsuenden zu bereinigen.
Mich stoert eher, dass die Veraenderungen nicht weit genug gingen.
Die meisten Veraenderungen sind uebrigens mit 2to3 automatisch portierbar, wenn nicht faengt spaetestens die `-3` Flag die Inkompatibilitaeten ab.
An der Funktion-/Statement-Geschichte haengt IMHO weit mehr dran, als nur das simple Keyword, um ehrlich zu sein, ich werde das Statement nicht vermissen.
Mich stoert eher, dass die Veraenderungen nicht weit genug gingen.
Die meisten Veraenderungen sind uebrigens mit 2to3 automatisch portierbar, wenn nicht faengt spaetestens die `-3` Flag die Inkompatibilitaeten ab.
An der Funktion-/Statement-Geschichte haengt IMHO weit mehr dran, als nur das simple Keyword, um ehrlich zu sein, ich werde das Statement nicht vermissen.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
@problembär: Ich hatte bei den Ankündigungen zur Änderung von print in eine Funktion statt einem Statement auch erst Bauchschmerzen. Aber die Vorteile überwiegen imho denn doch.
Sieh es vor allem mal so: Für einen Anfänger werden die Elemente wesentlich klarer, je mehr Konsistenz eine Sprache hat. "print" erinnert nun einmal stark an eine Funktion - da ist es dann alleine schon inhaltlich konsistent, das auch so zu gestalten.
Modulnamen konsequent klein zu schreiben ist ebenfalls eine Frage der Konsistenz. Was ist daran also so schlimm, sich das als Python-Kenner umzugewöhnen? Du kennst Dich ja ansonsten in der Sprache schon gut aus, da ist so was doch ein Klaks!
Nebenbei gibt es dazu bei vielen Design-Entscheidungen interne Faktoren, die eine starke Rolle gespielt haben dürften und die ich als Laie sicherlich gar nicht in der Lage wäre, umfassend zu beurteilen. Insofern muss man "Guido" schon vertrauen und sich erst einmal darauf einlassen - man gewöhnt sich doch viel schneller an Dinge als man denkt (Oder kannst Du noch besser DM und Pfennige auseinander halten als Euros? )
Sieh es vor allem mal so: Für einen Anfänger werden die Elemente wesentlich klarer, je mehr Konsistenz eine Sprache hat. "print" erinnert nun einmal stark an eine Funktion - da ist es dann alleine schon inhaltlich konsistent, das auch so zu gestalten.
Modulnamen konsequent klein zu schreiben ist ebenfalls eine Frage der Konsistenz. Was ist daran also so schlimm, sich das als Python-Kenner umzugewöhnen? Du kennst Dich ja ansonsten in der Sprache schon gut aus, da ist so was doch ein Klaks!
Nebenbei gibt es dazu bei vielen Design-Entscheidungen interne Faktoren, die eine starke Rolle gespielt haben dürften und die ich als Laie sicherlich gar nicht in der Lage wäre, umfassend zu beurteilen. Insofern muss man "Guido" schon vertrauen und sich erst einmal darauf einlassen - man gewöhnt sich doch viel schneller an Dinge als man denkt (Oder kannst Du noch besser DM und Pfennige auseinander halten als Euros? )
Ja.Hyperion hat geschrieben:(Oder kannst Du noch besser DM und Pfennige auseinander halten als Euros? )
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Also du findest komplizierte Regeln besser als einfache?problembär hat geschrieben:Was mich an Python 3.x total annervt, ist diese-Geschichte.Code: Alles auswählen
print("Hallo")
Warum hat man da nicht DANEBEN noch die gesamte-Syntax von Python 2.x erhalten? Ob hinter dem Ausdruck Klammern stehen (Funktion) oder nicht (Statement) könnte der Interpreter doch problemlos erkennen und auseinanderhalten.Code: Alles auswählen
print "Hallo"
Dann definier dir doch eine Tkinter.py, wenn du sie so vermisst.problembär hat geschrieben:Ebenso hätte man NEBENauch das frühereCode: Alles auswählen
import tkinter
gültig lassen können.Code: Alles auswählen
import Tkinter
Ich hoffe dass das blos nicht passiert. Ich hoffe eigentlich dass dort dann auch ``global`` und ``nonlocal`` verschwinden.problembär hat geschrieben:Ich kann nur hoffen, daß in Python 4.x zusätzlich auch wieder die Syntax von Python 2.x mit unterstützt wird.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- User
- Beiträge: 18
- Registriert: Mittwoch 1. Juli 2009, 14:20
Hallo!
Jetzt macht ihr den Frager aber etwas meschugge.
Ich möchte cofi recht geben: Wenn Du kannst, fange gleich mit 3.1 an. Solltest Du aber auf "Third PArty Module" zurück greifen wollen, so kann es sein, das diese noch nicht nach 3.1 portiert sind. Wenn Du also ein Projekt erstellen willst, schau erst nach, ob das "Rad das Du erfinden willst" auch in V3 erstellbar ist, dass also alle abhänigen Module in V3 erhältlich sind.
Ich selber habe geschrieben, was ich geschrieben habe, weil ich gerade ein Projekt erstelle, dass leider mit Modulen arbeiten (muss), die es noch nicht für V3 gibt.
MfG
Christian
Jetzt macht ihr den Frager aber etwas meschugge.
Ich möchte cofi recht geben: Wenn Du kannst, fange gleich mit 3.1 an. Solltest Du aber auf "Third PArty Module" zurück greifen wollen, so kann es sein, das diese noch nicht nach 3.1 portiert sind. Wenn Du also ein Projekt erstellen willst, schau erst nach, ob das "Rad das Du erfinden willst" auch in V3 erstellbar ist, dass also alle abhänigen Module in V3 erhältlich sind.
Ich selber habe geschrieben, was ich geschrieben habe, weil ich gerade ein Projekt erstelle, dass leider mit Modulen arbeiten (muss), die es noch nicht für V3 gibt.
MfG
Christian
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Wo lebt ihr denn, dass ihr ständig noch mit DM-Münzen konforntiert werdet? Also ich bi mir sicher, dass ich da jetzt auf Anhieb Probleme hätte...snafu hat geschrieben:+1BlackVivi hat geschrieben:Ja.Hyperion hat geschrieben:(Oder kannst Du noch besser DM und Pfennige auseinander halten als Euros? )
-
- User
- Beiträge: 3
- Registriert: Donnerstag 27. August 2009, 00:27
Da ich Python eher aus Spaß an der Freude lernen will und eigentlich kein konkretes Projekt im Kopf habe, werde ich mich dann nun mal mit Python 3.1 auseinandersetzen
Danke für die Antworten.
mfg
Danke für die Antworten.
mfg
Ich glaube nicht, dass ich Probleme hätte. Ich sag heute noch gelegentlich "paar Mark fuffzich" oder "hab nur noch Pfennige". Denn Cent klingt ja noch gräßlicher als Euro. Gegen "Groschen" können die auf jeden Fall nicht anstinken. Sagt man seit dem Euro eigentlich noch Heiermann? Das passt irgendwie auch nicht mehr wirklich.
Ich finde, dass das Lernen der Syntax an sich noch das Leichteste und Schnellste an der ganzen Sache ist. Erst beim Einsatz von 3rd party Modulen wird's interessant... und da wird die 3.X-er immer noch recht spaerlich unterstuetzt.AngerIsAGift hat geschrieben:Das heißt dann im Klartext es ist eher ne Glaubenssache mit was man anfängt?
Wenn Du Spass an Python schon jetzt haben willst, also auch beim Lernen, wuerde ich die 2.6-er Version empfehlen (evtl. sogar noch die 2.5-er): da stolperst Du nicht immer auf fehlende Module, wenn Du mal was Interessantes basteln willst, das jenseits der Python Standard Library liegt.
Man kann's natuerlich auch anders sehen. Es ist alles eine Frage der persoenlichen Vorlieben beim Lernen.