Think Python, 3. Auflage
(allendowney.github.io)- Python-Einführung für Menschen, die Programmieren zum ersten Mal lernen oder bei früheren Lernversuchen Schwierigkeiten hatten; die gedruckte Ausgabe und das E-Book der 3. Auflage können bestellt werden
- Das gesamte Buch liegt als Jupyter-Notebook vor, sodass Lesen, Code-Ausführung und das Bearbeiten von Übungen in einem durchgängigen Ablauf möglich sind
- Die Notebooks zu den einzelnen Kapiteln lassen sich direkt in Colab ausführen, sodass der Einstieg ohne separate Installation leichtfällt
- Die 3. Auflage strukturiert den Lernfluss durch überarbeiteten Text, eine angepasste Reihenfolge einiger Kapitel und erweiterte Übungen neu
- Die Vorschläge am Ende der Kapitel zur Nutzung von ChatGPT und Colab AI dienen als Hilfsmittel, um an schwierigen Stellen zusätzliche Erklärungen und Unterstützung bei Übungen zu erhalten
Python-Einführung für Einsteiger
- Think Python ist eine Python-Einführung für Menschen, die zum ersten Mal mit Programmierung in Berührung kommen oder es schon einmal versucht haben und dabei Schwierigkeiten hatten
- Die gedruckte Ausgabe und das E-Book der 3. Auflage können bei Bookshop.org und Amazon bestellt werden
- Die Landingpage des Buchs bei Green Tea Press ist unter Think Python 3rd Edition zu finden
- Die 3. Auflage ist vollständig als Jupyter-Notebook aufgebaut und behandelt Text, ausführbaren Code und Übungen an einem Ort
- Die Notebooks können in Colab ausgeführt werden, was den Installationsaufwand reduziert
- Der Text wurde deutlich überarbeitet und die Reihenfolge einiger Kapitel wurde umgestellt
- Es gibt mehr Übungen
- Am Ende jedes Kapitels wird beschrieben, wie sich ChatGPT und Colab AI beim Lernen und beim Lösen von Übungen einsetzen lassen
Colab-Notebooks und Materialien für den Unterricht
-
Notebooks nach Kapitel
- Alle Notebooks werden in 19 Kapiteln bereitgestellt
- Kapitel 1: Programming as a way of thinking — In Colab ausführen
- Kapitel 2: Variables and Statements — In Colab ausführen
- Kapitel 3: Functions — In Colab ausführen
- Kapitel 4: Functions and Interfaces — In Colab ausführen
- Kapitel 5: Conditionals and Recursion — In Colab ausführen
- Kapitel 6: Return Values — In Colab ausführen
- Kapitel 7: Iteration and Search — In Colab ausführen
- Kapitel 8: Strings and Regular Expressions — In Colab ausführen
- Kapitel 9: Lists — In Colab ausführen
- Kapitel 10: Dictionaries — In Colab ausführen
- Kapitel 11: Tuples — In Colab ausführen
- Kapitel 12: Text Analysis and Generation — In Colab ausführen
- Kapitel 13: Files and Databases — In Colab ausführen
- Kapitel 14: Classes and Functions — In Colab ausführen
- Kapitel 15: Classes and Methods — In Colab ausführen
- Kapitel 16: Classes and Objects — In Colab ausführen
- Kapitel 17: Inheritance — In Colab ausführen
- Kapitel 18: Python Extras — In Colab ausführen
- Kapitel 19: Final Thoughts — In Colab ausführen
-
Materialien für Lehrkräfte
- Notebooks mit Lösungen können aus dem GitHub-Repository ThinkPythonSolutions heruntergeladen werden
- Quizfragen zu den einzelnen Kapiteln sowie ein umfassendes Quiz zum gesamten Buch werden auf Anfrage bereitgestellt
- Wie man Jupyter effektiv im Unterricht einsetzt, lässt sich im Online-Buch Teaching and Learning with Jupyter nachlesen
- In notebookbasiertem Unterricht können Lehrkräfte Live Coding einsetzen, bei dem sie Code schreiben und die Studierenden in ihren eigenen Notebooks mitmachen
- Materialien zur Lehrkräftefortbildung für die Programmierausbildung gibt es bei The Carpentries unter Instructor Training
- Leere Notebooks, bei denen der Originaltext erhalten bleibt, aber der Großteil des Codes entfernt wurde, sind nützlich für Mitmachübungen, bei denen Lernende Lücken ausfüllen; sie sind unter blank notebooks zusammengestellt
1 Kommentare
Hacker-News-Kommentare
Ich freue mich wirklich über diese Nachricht. Als Practical Deep Learning for Coders als Jupyter Notebook veröffentlicht wurde, hatten wir darüber gesprochen, einige von Allens Büchern auf die gleiche Weise zu machen.
Jetzt passiert das tatsächlich, und noch besser: Es gibt sogar großartige Tools wie ein Jupyter-basiertes turtle, das Inline-Grafiken direkt im Notebook anzeigen kann.
Wenn es erscheint, dürfte das sehr wahrscheinlich die beste Art sein, Python-Programmierung zu lernen.
Ich erinnere mich, dass ich früher auch einen Proof of Concept gezeigt habe, bei dem Teile der 2. Auflage dieses Buchs in nbdev-Notebooks umgewandelt wurden: https://github.com/fastai/nbdev_cards/blob/master/01_deck.ip...
Dieses Notebook wird in dieses HTML gerendert: https://fastai.github.io/nbdev_cards/deck.html
Wenn ich mit so etwas wie AdventOfCode eine neue Sprache lerne, ist meine erste Aufgabe immer, ein Jupyter-Image für diese Sprache zu bauen.
Die 2. Auflage von Think Python hat die Richtung meines Lebens verändert. Ich hatte einmal einen Java-Kurs belegt, ihn gehasst und das Programmieren dann aufgegeben. Ein paar Jahre später arbeitete ich als Netzwerkingenieur und stieß auf ein Problem, das sich wohl mit einem Skript lösen ließ. Ich griff zu Think Python und verliebte mich in Python und ins Programmieren selbst.
Ich überlege gerade, die Richtung meines Lebens stärker in Richtung Community/Maker/Lehrerrolle zu verändern, und habe eine Idee für eine freiberufliche Tätigkeit bzw. ein kleines Geschäft im Bildungsbereich, wofür ich Material mit einem „lockeren Curriculum“ brauche.
Während ich als professioneller Webentwickler gearbeitet habe, brauchte ich Python nie, deshalb lerne ich es jetzt. Ich habe fast alle webzentrierten Sprachen benutzt, einschließlich Perl und Ruby.
Python scheint eine geeignete Sprache zu sein, um allgemeine Konzepte zu vermitteln, und ein Buch als Referenz wäre hilfreich.
Ungefähr zu dieser Zeit wurde Java zur Hauptsprache meines Teams, und nachdem ich die Vorteile von statischer Typisierung gesehen hatte, konnte ich nicht mehr zurück.
Seitdem hat sich Python mit optionaler Typisierung und IDEs, die diese erzwingen können, stark weiterentwickelt, aber heute bin ich vollkommen in Richtung statisch typisierter Sprachen voreingenommen.
Für Utility-Skripte mag ich das deutlich ausgefeiltere Python immer noch lieber, als nur bash zu verwenden. Wenn ich aber die Sprache für eine vollwertige Anwendung frei wählen könnte, würde ich Java/Scala und Ähnliches bevorzugen. Rust ist ebenfalls großartig, aber für die meisten normalen Menschen ist die Lernkurve zu steil.
Ich habe Pythons optionale Typisierung mit Unterstützung von Tools wie PyCharm selbst nie benutzt, daher ist es gut möglich, dass die Tooling-Unterstützung zu einer Erfahrung führt, die statisch typisierten Sprachen ähnelt. Falls jemand Python mit aktivierter Typprüfung in IntelliJ Community Edition verwendet hat, würde ich gern von den Erfahrungen hören.
Ich mag Think Python und habe es vielen Lernenden empfohlen. Es schafft die Balance aus vielen Dingen, auf die ein Buch für neue Programmierer achten muss, wirklich sehr gut.
Allen Downey hat mehrere weitere Bücher mit einem ähnlichen Ansatz veröffentlicht: https://greenteapress.com/wp/
Ich finde, manche davon sind beim Verzicht auf Strenge vielleicht etwas zu weit gegangen, aber insgesamt waren die Bücher, die ich mir angesehen habe, ziemlich gut.
Ich saß einmal auf einer Konferenz mit Allen am selben Tisch, und als ich ihm erzählte, wie oft ich seine Bücher empfohlen oder verschenkt hatte, schien er zu denken, ich würde übertreiben.
Entschuldigt den kleinen Themenwechsel, aber gibt es, wenn man bereits praktische Erfahrung hat und sie im Job weiter ausbaut, Material von ähnlicher Qualität für Python-Entwickler auf mittlerem/fortgeschrittenem Niveau?
Ich habe immer das Gefühl, dass es in der Sprache oder der Standardbibliothek große Bereiche gibt, die ich nicht kenne.
https://docs.python.org/3/tutorial/index.html
https://docs.python.org/3/library/index.html
Jedes Mal, wenn eine neue Version erscheint, lese ich die What’s-New-Dokumente.
Außerdem lese ich gern den Quellcode der Standardbibliothek und beliebter Third-Party-Pakete. Dieser Rat gilt meist nicht nur für Python, sondern generell, wenn man eine neue Sprache lernt oder wieder auffrischt.
Und oft gewinne ich schon allein daraus Einsichten, wie man eleganten und prägnanten Python-Code schreibt, indem ich Norvigs jährliche Advent-of-Code-Implementierungen lese.
Der Autor veröffentlicht aktuelle Python-Projekte, vor allem zur Bayesianischen Datenanalyse, in seinem Blog unter https://www.allendowney.com/blog/; ich lese das mit ziemlich großem Interesse
Welche Bücher gibt es für Programmierung in Python auf mittlerem bis fortgeschrittenem Niveau? Python und Programmierung im Allgemeinen kenne ich bereits, aber ich möchte meine Python-Kenntnisse weiter ausbauen
Im Moment kenne ich eigentlich nur
Fluent PythonundCPython InternalsZum Beispiel zeigt Effective Pandas 2 häufige Muster beim Umgang mit tabellarischen Daten. Dabei kommen Comprehensions, Lambdas und Unpacking zum Einsatz, außerdem wird gezeigt, wie man mit pytest refaktoriert und Visualisierungen nutzt, um Daten besser zu verstehen
Der Autor bin übrigens ich
Fluent Pythonreicht völlig aus. Die übrigen Sprachfeatures versteht man, wenn man das offizielle Referenzhandbuch liestAuf https://www.redblobgames.com/ gibt es ebenfalls viele sehr geistreiche Texte
Das Buch ist nicht besonders bekannt, untersucht aber verschiedene Programmierstile, indem es dasselbe Problem unter unterschiedlichen Einschränkungen löst
Sobald man ein gewisses Niveau erreicht hat, also über das grundlegende professionelle Praxisniveau hinaus, bleibt am Ende nur noch Code zu lesen und zu schreiben
Verwandte Beiträge:
Think Python 2e - https://news.ycombinator.com/item?id=35421096 - April 2023, 30 Kommentare
Think Python: How to Think Like a Computer Scientist - https://news.ycombinator.com/item?id=1586000 - August 2010, 9 Kommentare
Ein Glücksfall. Ich habe gerade angefangen, Python-Mentoring zu machen, und bin ein großer Fan von Downey. Er ist wirklich ein herausragender Pädagoge und Renaissance-Mensch
Ich werde dieses Buch definitiv im Auge behalten
Auch für mich hat dieses Buch mein Leben verändert, als ich gerade erst programmieren lernte. Weniger im Sinne eines Karrierewechsels, sondern weil die Art, wie das Buch geschrieben ist, und einige der Konzepte bei mir als völligem Anfänger plötzlich Klick gemacht haben
Jetzt, 10 bis 15 Jahre später, die 3. Auflage zu sehen, löst starke Nostalgie aus, und dieses Buch kann ich gar nicht genug empfehlen
In der vorherigen Ausgabe von Think Java mochte ich besonders diese Stelle: https://files.catbox.moe/v1vgdc.jpg
Und noch eine großartige Passage ist diese: