Frage von Daniel079, 110

Ich möchte Python lernen, aber...?

Hallo allerseits.

Wie bereits im Titel steht, möchte ich Python lernen. Warum genau Python und nichts anderes tut im Moment nichts zur Sache. Ich habe im Internet schon einige gute OnlineBücher gefunden wie zum Beispiel "A Byte of Python", nur bezog sich dies auf die alte 2.x Versio und ist somit nutzlos für mich, da das alles nicht auf 3.x funktioniert...

Gestern habe ich mir wieder eine neue ewig lange PDF-Datei runtergeladen (findet man hier: https://media.readthedocs.org/pdf/py-tutorial-de/python-3.3/py-tutorial-de.pdf), doch dies ist so unnötig kompliziert verfasst und ich habe schon nach den ersten paar Beispielen aufgegeben, da ich einfach nichts nachvollziehen kann.

Ich möchte dennoch immer noch Python lernen und wollte fragen, ob ihr mir da irgendein PDF oder ein Buch empfehlen könnt? Auf Amazon lese ich immer negative Bewertungen betreffend "zu schwer für Einsteiger usw." und da sind mir zBsp 20-50€ zu schade, es einfach mal zu riskieren.

Ich will jetzt bitte nichts von Youtube Tutorials hören, da ich mit denen zuhause nicht arbeiten kann, da wir unser wlan erst einrichten müssen und dabei gibts ein paar Probleme, die zuerst geklärt werden müssen.

Also zusammengefasst noch einmal:

Kann mir jemand von euch ein gutes Buch für Python Neulinge empfehlen? Ich habe zwar schon HTML und CSS Kenntnisse, die helfen mir bei Python aber nicht weiter ^^

Freue mich auf eure Antworten

Gruß , Daniel

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von roffermann, 106

Auch ich suchte ein gutes Buch und das Beste war das "Openbook Galileo" : http://gwise.itwelzel.biz/Books/Openbook%20GalileoComputing/python/index.htm

Dieses Buch ist zwar für Python 2x aber auch damit kann man Python bestens lernen. Eventuell mal nach den Unterschieden von 2x und 3x bei GF.net fragen (oder Googlen). Die Unterschiede sind nicht sehr groß, also "print in Klammern e.t.c.".

Dieses "Openbook Galileo Python" gibt es aber auch für 3x, es dann aber nicht kostenlos wie dieses hier. Doch diese Bücher sind die besten zum lernen. Viel Vergnügen - Goofy -

Kommentar von Daniel079 ,

Danke, konnte mich jetzt für das Openbook Galileo Python 3 entscheiden :) 37€ ist es mir auf jeden Fall wert!

Antwort
von SunnySonja19, 95

Hallo Daniel,

mit den Programmiersprachen ist das so eine Sache...man sollte sie vielleicht nicht aus purem Aktionismus heraus lernen. Ich finde, dass es eher eine Art Lebenseinstellung ist! So wie es Leute gibt, die gerne Dinge selbst basteln und andere kaufen sie lieber im Laden. Du kannst aber nicht als Anfänger sagen: ich würde gerne einen Schrank bauen. Es geht am Anfang darum, dass du einfache Dinge machst - egal ob sie einen Nutzen haben oder nicht. Du musst Erfahrung sammeln und mit der Zeit immer mehr Transfer hinbekommen.

Ich will dich nur vorwarnen...es ist normal nicht so, dass man sich ein Buch kauft, das durchmacht und nach einem halben Jahr plötzlich ein guter Programmierer ist.

Ich habe auch neulich mit Python begonnen, habe vorher aber schon andere Sprachen ein bisschen gelernt. Uns hat man im Studium gesagt, wir sollen besser Python 2.x lernen - aber auch irgendwie nicht begründet. Habe ein nettes Tutorial im Internet gefunden...google mal nach "Learn Python the hard way".

Ansonsten: learning by doing. Schreib dir so viel wie möglich Programme selbst. Vielleicht kann jemand aus deiner Familie ein bestimmtes Programm brauchen (habe meiner Mutter mal das Spiel "MasterMind" nach-programmiert)?

Viel Erfolg!

P.S.: jetzt bin ich natürlich neugierig xD wieso willst du uns nicht verraten, wofür du Python brauchst?

Antwort
von Denno2015, 110

Warum du Python lernen willst kann ich mir schon denken...

Am einfachsten sind nunmal Youtube Videos, auch wenn du davon nichts hören willst.

Lad dir die Videos einfach runter, da wo du den anderen Kram auch geladen hast und dann ziehst du dir die auf nen USB Stick. Youtube Videos von 1 Stunde sind meistens nicht größer als 100MB. Was anderes würde mir jetzt auch nicht wirklich einfallen. Ist vorallem auch die günstigste Lösung.

Kommentar von Daniel079 ,

Danke für die Antwort, das Problem bei den Videos ist, dass es sehr schnell unübersichtlich wird. Angenommen ein Video dauert eine Stunde und darin wird kurz etwas erwähnt, etwas wichtiges, dass man später immer wieder "nachschlagen" muss. Jetzt muss ich später wieder hergehen und die exakte Minute suchen bzw irgendwo notieren...das ist bei Büchern natürlich viel einfacher, des Weiteren dauert das Downloaden ja ewig bei diesen Unsummen von Videos :/

Da wäre mir ein gutes Buch lieber, wobei ich selber langsam zum Schluss komme, dass es kein gutes Buch für Quereinsteiger gibt und ich wirklich zu Videos greifen muss....

Kommentar von Daniel079 ,

Sollte ich vielleicht zuerst Python 2.5 oder 2.7 lernen? Dazu gibt es viele Bücher, zu 3.5 gibts noch gar nichts, höchstens zu 3.3...

Kommentar von Denno2015 ,

Naja, das Problem ist auch, dass das Thema Programmiersprachen, jetzt mal egal welche, sehr komplex ist. Ich würde dir auch empfehlen, dich mal im Python Forum anzumelden https://www.python-forum.de/ .

Da kann man am besten miteianander diskutieren und direkte Hilfe von Programmierern die Erfahrung haben ist natürlich auch immer wichtig bei so einem Thema. Ich werde nachher mal einen Dozenten fragen, ob er was gutes an Lesestoff empfehlen kann. Werde den wohl erst heute Nachmittag treffen und könnte dir dann heute Abend schreiben was er gesagt hat.

Was die Videos angeht gebe ich dir natürlich recht. Teilweise lückenhaft und auch fehlerhaft. Aber das Problem hast du bei Youtube Videos auch, deshalb auch die direkte Hilfe aus den Forum am besten nutzen.

Kommentar von grtgrt ,

Im Buch Learn Python the Hard Way (für Einsteiger) liest man:

A programmer may try to get you to install Python 3 and learn that. Say, "When all of the Python code on your computer is Python 3, then I'll try to learn it." That should keep them busy for about 10 years. I repeat, do not use Python 3. Python 3 is not used very much, and if you learn Python 2 you can easily learn Python 3 when you need it. If you learn Python 3 then you'll still have to learn Python 2 to get anything done. Just learn Python 2 and ignore people saying Python 3 is the future.

Kommentar von TeeTier ,

Also ein Kumpel von mir hat mit Python 3.x angefangen. Danach hat er sich ca. eine halbe Stunde rangesetzt, und kannte alle wichtigen Unterschiede zwischen 2.x und 3.x.

Es wird immer so getan, also ob Python 2.x und 3.x verschiedene Sprachen wären. Mit Verlaub, aber da unterscheidet sich C++11 und C++14 ja wesentlich mehr.

Die Unterschiede lernt JEDER Anfänger binnen 30 Minuten. Hinzu kommen noch kleinere Unterschiede in wenigen Modulen, die man dann lernen kann, wenn man drüber stolpert. Und dass nimmt dann jeweils auch noch mal 5 Minuten in Anspruch.

Es ist völlig wurscht, ob man mit 2.x oder 3.x anfängt. Und wenn in dem Buch so sehr vor Python 3.x gewarnt wird, weil sich 3.x angeblich noch nicht durchgesetzt hat, dann würde ich vielleicht mal auf das Veröffentlichungsdatum des Buches achten.

Fast alle neuen Python-Skripte werden für 3.x geschrieben. Einige wenige zwar immer noch in 2.x, aber die stammen dann von Leuten, die zu faul waren, sich mal eine halbe Stunde auf den eigenen Hintern zu setzen.

Wem Python 3.x zu kompliziert ist, der KANN auch kein guter Python 2.x Programmierer sein.

Also wirklich, immer diese Angst vor Neuem. Die Unterschiede sind nun wirklich marginal! Das Tool "2to3" hilft bei der "Übersetzung" von 2.x auf 3.x und an den Stellen, an denen das nicht automatisch klappt (die gibt es tatsächlich oft!), muss man dann halt Hand anlegen. Na und? Ich habe schon riesige Python 2.x Projekte mal eben binnen wenigen Minuten auf Python 3.x upgegradet, einfach nur, weil ich persönlich Python 3.x Features nutzen wollte. Dabei bin ich nicht ein einziges mal ins Grübeln oder Stolpern gekommen! Nicht EIN einziges mal!

Und Python-Projekte, die es IMMER noch nicht als 3.x-Version gibt, zeugen nicht gerade von Qualität. Ich habe damals Socksipy von 2.x auf 3.x "erweitert", und war nach vielleicht 2 bis 3 Minuten damit fertig. Inzwischen hat das auch der Maintainer eingesehen, und das Projekt läuft als Dual-Version.

Mit Verlaub, aber wer als Python-Programmierer einer der Hauptversionen solche Angst vor der Anderen hat, ist entweder faul, unfähig oder muss irgendwie auf den Kopf gefallen sein.

Man kann erst 2.x lernen, und dann 3.x. Oder umgekehrt. Oder nur eine der beiden Versionen, wobei ich in letzterem Falle stark zu Python 3.x raten würde.

--- Wegen Begrenzung auf 5000 Zeichen, gehts gleich weiter ... ---

Kommentar von TeeTier ,

--- So, hier ist der 2te Teil meines Romans: ---

Als ob jemand, der in sienem Garten einen Birnenbaum pflanzt, sich nicht traut, einen Apfelbaum daneben zu pflanzen, weil er ja nur Ahnung von Birnenbäumen hat. Der unterschied ist so gering, dass ihn der Gärtner vermutlich gar nicht bemerken würde.

Und anstatt ständig Artikel von irgendwelchen "berühmten Cracks" zu zitieren, die vor Python 3.x warnen, vielleicht einfach mal anfangen zu lernen, und nach sehr (!) kurzer Zeit feststellen, dass es offensichtlich alles Quatsch war, was die Hälfte der alt-eingerosteten Python 2.xler so schreibt.

Ich glaube, auf keinem anderen Gebiet ist es so einfach und geht so schnell, sich ein eigenes Bild basierend auf eigenen Erfahrungen zu machen. In der selben Zeit, die man benötigen würde, um das Vorwort von "Learn Python the Hard Way" zu lesen, hat man schon 90% aller Versions-Unterschiede soweit verstanden, um sie in Zukunft auch einsetzen zu können.

Ehrlich, die Unterschiede sind so einleuchtend, dass man sie selbst nach einmaligem Überfliegen nicht mehr vergessen wird.

Die größten Unterschiede findet man in solchen Modulen wie "urllib", die tatsächlich "ziemlich" anders aufgebaut sind. Na und? Jeder Programmierer kommt damit klar, wenn er die API-Docs liest. Und das tut man genau ein einziges mal, und dann hat mans eben drauf und weiß, wie man eine beliebige Webseite unter 2.x ebenso wie unter 3.x runterlädt.

Die Module, die sich in den versch. Versionen so krass unterscheiden wie die besagte "urllib", kann man an beiden Händen abzählen. Und die Erweiterungen in vielen Modulen, wie "collections", die lernt man eben on-the-fly während man die Doku liest.

Wer es unter 2.x geschafft hat, die Docs zu "os.spawn" zu lesen, der schafft auch das gleiche unter 3.x für "subprocess".

Und damit hätten wir schon mal die wichtigsten Module abgehakt! War das jetzt so schlimm? Es ist tatsächlich nicht sonderlich viel mehr!

Ich denke meistens nicht mal drüber nach, ob ich nun in 2.x oder 3.x programmiere. Ich wähle einfach automatisch das, was das Projekt erfordert. Fertig. Mir ist nie aufgefallen, dass ich dabei irgendwelche Probleme oder Inkompatibilitäten haben sollte. So etwas wird immer nur von Leuten angedichtet, die entweder NUR 2.x ODER 3.x beherrschen. Für jemanden, der 2.x UND 3.x kann, sind die Unterschiede nicht nur nicht erwähnenswert, sondern vermutlich größtenteils nicht mal mehr spürbar.

Das Märchen, dass Python 3.x eine Art de-facto Alpha-Status anhaftet, kommt aus der Zeit, in der Python 3.x der Alpha-Status anhaftete. Aber diese Zeit ist schon seit Jahren vorbei. Das ist Geschichte. Das war einmal! Guten Morgen! :)

Also, was sollte man als Anfänger lernen? Beides! Und idealerweise fängt man natürlich mit 3.x an. Wenn man das dann halbwegs drauf hat, lernt man in 30 Minuten die Unterschiede zu 2.x um mit Legacy-Code klar zu kommen, und alle sind glücklich.

Ideal sind natürlich Lehrbücher, die sich auf Python 3.x fokussieren, und nebenbei die Unterschiede zu 2.x abhandeln, wenn man denn an den entsprechenden Stellen vorbei kommt.

Warum sollte man mit Python 3.x anstatt 2.x anfangen? Weil die 3er Version ggü. der 2er wesentlich besser durchdacht ist, weniger Inkonsistenzen hat, und dementsprechend für Einsteiger leichter fassbar ist.

Fazit: Wer vor Python 3.x warnt, ist kein richtiger Python-Programmierer! Auch wenn er noch so berühmt ist, und noch so viele Bücher verfasst hat. Sorry! :)

Und STOPP! Bevor jetzt jemand antwortet, dass mein Text Quatsch ist, bitte stattdessen einfach bei Google "Python 2 3 differences" suchen, und in der Zeit, die man für einen Kommentar verschwendet hätte, einfach mal die Unterschiede lernen. Wenn man dann noch lustig ist, evtl. noch mal die 3.xer API Docs überfliegen.

Hier, für den Anfang:

http://sebastianraschka.com/Articles/2014_python_2_3_key_diff.html

Mir kann keiner Erzählen, dass er länger als 10 Minuten dafür benötigt. Prima, dann bleiben ja noch 20 Minuten für andere Quellen, die man bei Google gefunden hat! :)

Schönen Abend noch an alle! :)

Kommentar von TeeTier ,

PS: Noch eine Mini-Anmerkung ...

Die Python-Bibliothek entwickelt sich ständig weiter. Und der Unterschied von 2.7 auf 3.0 dürfte nur unwesentlich größer sein, als der Unterschied zwischen 2.6 und 2.7.

Es ist keine Kunst, Python-Code so zu schreiben, dass er sowohl unter 2.x, als auch unter 3.x lauffähig ist. Und zwar auch noch sehr elegant und ohne Knickeier! An den wenigsten Stellen dürften überhaupt Änderungen notwendig sein.

Da wir ja noch vom letzten Dokument 20 Minuten übrig haben, einfach mal die Zeit hier rein investieren:

http://python-future.org/compatible_idioms.html

Wer diesen Link und obigen Link wirklich gelesen hat, der wird nicht mehr behaupten können, dass einen die Versions-Unterschiede vom Programmieren in Python 3.x / 2.x abhalten.

Ehrlich, Software-Entwickler sollten es gewohnt sein, ihr Hirn einzusetzen, Probleme zu erkennen und zu lösen, sich ständig weiter zu bilden, X Programmiersprachen zu lernen und mit unzähligen Tools klar zu kommen.

Und dann sollen sie nicht mit solchen Trivialitäten wie 2.x-3.x Unterschieden klar kommen? Da stimmt dann aber was nicht! Solche Pussies sind Python-Entwickler nun auch wieder nicht, dass sie sich von so einer Kleinigkeit aufhalten lassen. :)

Aktuell ist Python 3.x und 2.x wird definitiv früher sterben als 3.x. Dass es momentan noch mehr Legacy-Code für 2.x gibt, ist logisch, aber warum arbeitet man heutzutage wohl mit .Net anstelle von der Win32-API? Es gab auch mal eine Zeit, in der es mehr Win32-Legacy-Zeug gab, als .Net-Code. Aber zugegeben, damals gab es auch Leute, die gesagt haben: "Äääähhh, Maaamaa! Dott-Nett maaag ich nicht!". Die sind zum Glück größtenteils ausgestorben (auch wenn es heute sogar noch sinnvolle Anwendungszwecke für Win32-API gibt, aber das bewegt sich im Promille-Bereich ... anderes Thema)

Und genauso werden über kurz oder lang die "Python 3.x is soooo schweeeer" Leute ebenfalls aussterben.

Jeder ernsthafte und gute Pythoner sollte sich schämen, sich bis jetzt vor 3.x gedrückt zu haben! Aber solchen Leuten sei verziehen, WENN sie sich JETZT sofort ransetzen, und obige Links durcharbeiten.

Ehrlich, ich brauche für mein Mittagessen länger, als diese Texte durchzulesen.

Oh man, ich merke gerade, dass ich zu viel Kaffee getrunken habe. Es ist schon Nachts halb Eins, und ich komm gar nicht mehr runter.

Sorry für meinen langen Text heute, aber das musste ehrlich mal alles gesagt werden! Ich kann absolut nicht nachvollziehen, warum hier auf dieser Plattform einige wirklich richtig gute Software-Ingenieure unterwegs sind, die bisher großartige Sachen geschrieben haben, und dann bei so einer Lapalie klein bei geben, weil ihnen die Versions-Unterschiede unüberwindbar scheinen.

Reißt euch mal ein bisschen zusammen, ihr Weicheier! Ich weiß, dass ihr das könnt!

Oh man, ich hab echt zu viel Kaffee getrunken. Ich mach jetzt schluss ... :)

Antwort
von grtgrt, 72

Ich würde dir zum Einstieg in Python empfehlen:

http://www.amazon.de/Programmieren-lernen-Python-Allen-Downey/dp/3955618064/ref=...

Vorweg aber würde ich (an deiner Stelle) in einer Stadtbibliothek nach solchen Büchern suchen.

Kommentar von grtgrt ,

Ein guter Einstieg für dich könnte auch sein: http://www.tutorialspoint.com/python/

Kommentar von grtgrt ,
Du sagst: Die Kosten scheue ich keineswegs, doch ich lese immer nur die selben Bewertungen. Zu schlecht, zu einfach, falsch übersetzt, Fehlerhaft, viele Lücken usw... da fällt es mir doch ein wenig schwer, mich zu entscheiden.

Darauf antworte ich: Am von mir oben empfohlenen Buch wirst du diese Mängel ganz sicher nicht entdecken. 

Antwort
von FooBar1, 100

Es gibt auch schöne kinder Bücher über Python. Die sind sicher nicht zu schwer. Shu bei Amazon

Kommentar von Daniel079 ,

Nun, so einfach brauche ich es auch wieder nicht - ich will nur gute Erklärungen dazu. Des Weiteren denke ich, dass diese Kinderbücher Schrott sind, da sie definitiv nicht alles behandeln :/ Naja gibt es überhaupt ein Buch, das Python zu 100% behandelt?

Kommentar von FooBar1 ,

Entscheide dich mal. entweder willst du es einfach oder du liebst die sprachreferenz wenn du es zu hundert Prozent willst. Wenn du keine Ahnung hast dann fang einfach mit nem Kinderbuch an. Die gibt's übrigens auch in deiner lokalen Bibliothek wenn du die Kosten scheust.

Kommentar von Daniel079 ,

Die Kosten scheue ich keineswegs, doch ich lese immer nur die selben Bewertungen. Zu schlecht, zu einfach, falsch übersetzt, Fehlerhaft, viele Lücken usw...da fällt es mir doch ein wenig schwer, mich zu entscheiden.

Kommentar von FooBar1 ,

Hamm ich würde da nicht soviel drum geben. Das ist meckern auf hohem Niveau. Aber ich bin auch kein Python Experte. Könnte dir für c# was empfehlen. Aber bleib ruhig bei Python. Ist auch ne schöne Sprache

Kommentar von Daniel079 ,

c# ist nach python dran :) aber dennoch danke für die infos ^^

Kommentar von FooBar1 ,

Dann halt dich mal ran. Hast viel zu tun.

Antwort
von Missingo1996, 68

Wenn ich mich richtig erinnere sind auf der Webseite von Python auch gute Anleitungen als PDF zum herunterladen

Antwort
von Seanna, 72

Python von Kopf bis Fuß ausm O'Reilly Verlag.

Keine passende Antwort gefunden?

Fragen Sie die Community