Inhaltsverzeichnis
Python
Python ist eine einfache aber mächtige Programmiersprache, die sich besonders für die Programmierung des Raspberry Pi, für die Systemadministration oder Webanwendungen eignet. In einem Artikel schreibt Guido van Rossum (Erfinder der Sprache) über die Entstehungsgeschichte von Python. Aktuell ist die Version 3, obwohl auch die ältere Version 2.7 noch häufig verwendet wird. Wir konzentrieren uns jedoch auf die neuere Version 3.1)
Installation
Python 3 kann von der Webseite heruntergeladen und installiert werden.
Wichtig Setze bei der Installation unter Windows den Haken bei „Add Python to Path“. Damit wird python.exe dem Pfad hinzugefügt, in dem Windows nach ausführbaren Dateien sucht und der Befehl kann in der Eingabeaufforderung direkt eingegeben werden. Wenn du dies vergessen hast, deinstalliere Python und installiere es erneut.
Alles hat geklappt, wenn bei den Programmen „IDLE (Python)“ auftaucht und in einem Fenster der Eingabeaufforderung „python“ ausgeführt werden kann. Sollte letzteres nicht klappen, so kann alternativ der „Python Launcher“ mit dem Aufruf von „py“ Python starten.
Erste Schritte
Einführungskurs: Erste Schritte in Python
Hilfe erhalten
Wenn du den Kurs von cscircles erfolgreich beendet hast, bietet Jetbrains mit PyCharm-Edu einen mächtiger Editor inkl. einem eingebauten Einsteigerkurs an. Probiere ihn aus.
Die wichtigsten Konzepte von Python kannst du bei Introduction to Python oben im Abschnitt Python Essentials nachschlagen. Hier findest du gute Zusammenfassungen mit Beispielen.
Python hat ein sehr gutes eingebautes Hilfesystem. Über den Befehl help()
können für viele Module, Klassen und Befehle Informationen abgerufen werden. Probiere es z.B. mit help(print)
einmal aus. Außerhalb von Python leistet pydoc3
Hilfestellung. So liefern die Befehle pydoc3 print
oder unter Windows python -m pydoc print
Hilfe zu der Funktion print
. Mit pydoc3 -p 8080
kann sogar ein kleiner Webserver gestartet werden, der das Hilfesystem über den Browser zugänglich macht.
IRC-Chat und Forum
Wer schnell Hilfe von anderen Programmierern gekommen möchte, findet Unterstützung in einem der zahlreichen IRC-Kanäle, die über den Webchat von Freenode oder einen eigenen Client wie Thunderbird, mIRC (Windows) oder HexChat (Windows, Linux und OS X.) erreichbar sind. Hinter IRC verbirgt sich ein Chatprotokoll. Den Einstieg erleichtert ein Artikel von ubuntuusers.de.
Für Python sind der internationale Kanal #python
oder der deutlich kleinere deutsche Kanal #python.de
interessant. Für den Zugang zu #python
muss der eigene Username zuerst registriert werden. Unter dem obigen Link gibt es eine Anleitung zu dem Prozess. Dann findet man im Kanal #python
über 1000 Entwickler2), die weiterhelfen können. Für den Einstieg reicht aber sicher auch Blick in den deutschen Kanal.
Das deutsche Python Forum beantwortet seit 2002 Fragen rund um Python.
Bücher
Das deutsche Buch Python Crashkurs von Eric Matthes (622 Seiten, 32,90 €, dpunkt.verlag, ISBN Print3): 978-3-86490-444-8) dient als guter Einstieg in die Programmiersprache Python und enthält verschiedene Übungen und kleine Projekte zur Auflockerung. Es gibt neben der elektronischen Version auch eine gedruckte Version, welche ich empfehlen würde.
Das englische Buch The Hitchhiker’s Guide to Python! beschreibt ausführlich für Anfänger und Fortgeschrittene viele Python-Konzepte.
Das Buch Cracking Codes with Python stellt verschiedene Verschlüsselungsmethoden vor und zeigt, wie sich diese mit Python überwinden lassen. Man kann es kaufen oder online lesen.
Bevor du ein Buch kaufst, kannst du in der DigiBib recherchieren und prüfen, ob es in Büchereien in Bochum und Umgebung ausleihbar ist.
Vertiefungen
In diesem Wiki findest du noch weitere Programmierübungen, die du ausprobieren solltest.
Wie geht es weiter, wenn man alle Aufgaben erledigt hat? Auf der Seite gibt es Tipps für Fortgeschrittene mit Quellen für vertiefende Forschungen.
Das Python-Wiki gibt eine reichhaltige Auswahl deutschsprachiger Quellen für Videos, Tutorials, Foren, Bücher, etc.
Bei hackr.io gibt es in der Rubrik Python verschiedene Tutorials, die von den Nutzern beurteilt wurden. Darüber hinaus hilft es bei der Vermittlung von „programming buddies“, mit denen man gemeinsam lernen kann.
Auch Google bietet einen Programmierkurs für Python an: Google's Python Class. Beim MIT gibt es den Kurs Introduction to Computer Science and Programming.
Quelltext lesen
Ein weiterer Weg, um Python zu lernen, ist sicherlich das Lesen von gutem Quelltext. So kann man sich von erfahrenen Programmierern abschauen, wie sie ein Problem gelöst haben. Der Text Reading Great Code empfiehlt den Quelltext einiger Projekte. Dort wird z.B. howdoi erwähnt, das vom Umfang gering und überschaubar für den Einstieg ist. Auch die Standard-Bibliotheken von Python selbst bieten sich für ein Selbst-Studium an - Learn by reading code beschreibt interessante Module.
Das Buch Code The Classics stellt verschiedene klassische Computerspiele und deren neue Implementierung in Python vor.
Projekte
- Project-based learning stellt Projekte für Python und andere Programmiersprachen vor.
- Mit Python einen Twitterbot programmieren, oder einen Twitch-Chatbot - Twitch Plays Pokémon. hemppa oder opsdroid oder errbot ermöglichen das Erstellen von Chatbots für Matrix, die mit matterbridge auf verschiedene Plattformen gebracht werden können.
- Raspberry Pi programmieren mit Python Kapitel 8.3 »Pong revisited«
- Für Projekte auf einem Mikrocontroller, wie dem ESP8266, existiert eine Miniversion von Python, die sich Micropython nennt.
Weblinks
Python lernen
- Snakify ist ein ausführlicher interaktiver Online-Kurs für Python
- Karel ist ein kleiner Roboter, der in Python programmiert werden kann.
- programiz ist eine App für Android/iOS, um Python zu lernen. Es gibt eine freie und eine kommerzielle Version.
- Software101 stellt verschiedene Python-Bibliotheken und erste Schritte mit ihnen vor.
- Computer Science Circles - schönes deutsches Tutorial mit interaktiven Übungen. Basierend auf diesem Kurs hat Thomas Karp eine Seite mit zusätzlichen Informationen erstellt.
- PythonStdioGames enthält eine Sammlung verschiedener Spiele, die jeweils mit einem kurzen Python-Programm realisiert wurden und zudem gut dokumentiert sind. Sie laden ein, durch eigene Ideen erweitert zu werden.
- Vertiefende Übungen gibt es bei inf-schule.de: Umfangreichere Fallstudien, kleinere Übungen.
- Programmierkurs bei Codecademy - Neben Grundlagen werden hier auch die Konzepte der Objekt-Orientierten Programmierung (OOP) in einem interaktiven Kurs vorgestellt.
- Programmiereinführung mit Python von der opentechschool, die sich an die Programmierung von Turtles anlehnt. Am Ende ist eine schöne Literaturliste.
- Automate the Boring Stuff with Python ist ein freies Buch mit schönen Projekten
- Learn Python the Hard Way ist ein freies Buch mit Übungen und Videos, wobei die Videos nur gegen Bezahlung verfügbar sind.
- Wie man mit Python auch funktional programmieren kann, zeigt A practical introduction to functional programming.
- Kapitel 8: Objekt-orientierte Programmierung in dem Buch Raspberry Pi programmieren mit Python beschreibt, wie die Objekt-Orientierte Programmierung in Python realisiert wurde.
- Auf der Seite von CodinGame kann man eine Programmiersprache durch Programmieren von Spielen lernen. Natürlich ist auch Python mit dabei. Die Seite The AI Games verfolgt ein ähnliches Ziel.
- Wer unterwegs nicht auf Python verzichten möchte, findet in der App Learn Python einen Helfer für die Programmiersprache. Der Anbieter der App bietet unter sololearn.com auch einen Python-Kurs, der im Browser absolviert werden kann.
- Über das Spiel checkio können verschiedene Probleme über die Webseite auf spielerische Art gelöst werden.
- PEP8 ist ein Styling-Guide für Python-Quelltext. Eine Zusammenfassung beschreibt die wichtigsten PEP8 Regeln.
- nullege ist eine Suchmaschine speziell für Python-Quelltexte.
- Pythontutor kann Quelltext visualisieren und hilft mit freiwilligen Helfern, wenn du ein konkretes Problem mit einem Programm hast.
- Python3 in one pic stellt die wichtigsten Python-Konzepte in einer Mindmap dar.
- Die PythonChallenge stellt über 30 ctf-artige Rätsel, die es (nicht unbedingt nur mit Python) zu lösen gilt.
- DMOJ stellt viele Programmierprobleme bereit, die man online lösen kann.
- Python Notes for Professionals ist ein sehr umfangreiches Buch aus Artikeln von Stackoverflow unter freier Lizenz zu Python.
- Bei exercism.io können unterschiedliche Übungen gemacht werden, die sogar von einem Mentor betreut werden.
- Der Python Podcast gibt in der Folge Python für Einsteiger Tipps für Anfänger.
- W3Schools bietet ebenfalls Informationen zu Python.
- GUI mit tkinter - einfache grafische Oberflächen lassen sich mit
tkinter
erstellen.
- Python für C-Sharp Programmierer - Übersicht für den Wechsel von C# nach Python
- Python Tutorials von Corey Schafer - Tipps eines Schülers
- learn to program ist eine Liste mit verschiedenen Quellen, um Programmieren zu lernen.
- The Little Book of Python Anti-Patterns stellt auf einer Webseite vor, wie man besser nicht in Python programmieren sollte.
- Introduction to Python for absolute beginners ist eine Sammlung von Artikeln zu unterschiedlichen Themen der Python-Programmierung.
- Issuehub.io und gauger.io sammeln Fehler unterschiedlicher Open-Source Projekte, die auch für Einsteiger geeignet sind. Bei github wird man mit der derfolgenden Suchanfrage oder diese oder diese ebenfalls fündig.
Entwicklungsumgebungen (IDEs)
- Mit IDLE ist bereits eine einfache IDE in jeder Python-Installation integriert. Sie reicht für viele Projekte bereits aus. IDLE steht für Integrated DeveLopment Environment oder Integrated Development and Learning Environment.
- Mu ist ein weiterer sehr einfacher und für Anfänger gut geeigneter Editor.
- Thonny ist eine einfache Entwicklungsumgebung mit einem anschaulichen Debugger, die von der Universität Tartu in Estland entwickelt wird. Bei Fehlern werden typische Fehlerquellen genannt.
- PyCharm von JetBrains ist eine professionelle IDE, die als kostenlose Community- oder kostenpflichtige Professional-Version erhältlich ist. Die IDE bietet eine aufgeräumte Oberfläche und sehr gute Unterstützung bei der Vervollständigung von Schlüsselwörtern und Umbenennung von Methoden, Klassen, Attributen, Variablen und Dateien. Unter dem folgenden Link kann eine kostenfreie Studentenlizenz der Professional-Version erworben werden, wenn bei der Registrierung die TBS1-Adresse verwendet wird.
- Visual Studio Code ist ein leichtgewichtiger und freier Editor für Linux, Windows und MacOS mit einer mächtigen Integration für Python und andere Programmiersprachen. Mit VSCodium existiert eine Variante, die ohne Telemetrie und Microsoft-spezifische Anpassungen auskommt. Mit dem Plugin codetour können Touren durch den eigenen Quelltext aufgezeichnet werden.
- GuiPy (Windows only) ist eine IDE mit Integration für GUI-Design und UML-Modellierung.
- Sublime Text ist ein mächtiger und ressourcenschonender kommerzieller Editor, der frei genutzt werden kann. Er ist nicht nur für Python geeignet. Mehr Informationen gibt es unter dem Link.
- Geany ist eine Mischung aus IDE und Texteditor. Nicht nur für Python ist das kleine aber feine und übersichtliche Programm geeignet. Auch Quelltexte anderer Programmiersprachen lassen sich gut damit bearbeiten.
Damit der Editor für Python gut funktioniert sollten folgende Dinge konfiguriert werden:
In den Einstellungen (unter Editor, Einrückung) den Typ auf „Leerzeichen“ stellen.
Unterstützung für pep8 installieren (pip install pep8
), damit der Befehl „Erstellen → Lint“ funktioniert. - ptpython ist eine mächtige Erweiterung der Konsole und kann mit
pip install ptpython
leicht installiert werden. - pudb ist ein einfacher grafischer Debugger für die Konsole. Hiermit können Programme schrittweise ausgeführt werden.
- nano ist ein einfacher Editor für Linux und den Raspberry Pi. Damit in Python-Dateien die Tabs durch vier Leerzeichen ersetzt werden, muss nano mit
nano -ET4 datei.py
gestartet werden. - repl.it ist eine einfache Online-Programmierumgebung. Sie läuft vollständig im Browser und kann auch in anderen Webseiten eigebunden werden.
- Project Jupyter ist eine Weboberfläche, in der Python-Quelltext mit Text gemischt und in sogenannten Notebooks abgelegt werden kann. Die Installation kann einfach über pip erfolgen.
- TigerJython ist eine in Java geschriebene IDE für die Python-Programmierung. Die Seite bietet auch ein Skript und ein Online-Tutorial.
- LiClipse verbindet Eclipse und PyDev zu einer IDE.
- Wing ist eine weitere professionelle Entwicklungsumgebung, die es in kostenpflichtigen und auch kostenfreien Varianten gibt.
Weitere Links
- Mit flet lassen sich Desktop- und Web-Anwendungen (inklusive PWA) mit Python erstellen.
- Brython ist eine JavaScript-Bibliothek, die Python im Browser ausführen kann (länger nicht mehr aktualisiert).
- Bei RobotGame müssen kleine Roboter in Python programmiert werden, die dann gegeneinander im Wettstreit antreten. Leider scheint das Projekt derzeit (Oktober, 2019) nicht aktiv weiterentwickelt zu werden.
- wtfpython stellt verwunderliches Verhalten von Python vor und erklärt es.
- Donkeycar ermöglicht das Ansteuern von fernsteuerbaren Autos mit Python. Leider mit ~250 € recht teuer.
- calmcode erklärt verschiedene Python-Bibliotheken in einer guten Mischung aus Texten und kurzen Videos.