24,90 €
Richtig programmieren von Anfang an! - Umfangreiche Praxisprojekte laden zum Experimentieren ein - Sourcecode und Beispiele sind als Download verfügbar - Neu in der 2. Auflage: Bildverarbeitung und Large Language Models Mit diesem Buch gelingt Ihnen der Einstieg in Python mit Leichtigkeit, denn Sie werden auf Ihrer Entdeckungsreise vom erfahrenen Trainer Michael Inden begleitet. Zahlreiche Codebeispiele verdeutlichen die Lerninhalte und laden zum Experimentieren ein. Ergänzend werden Python-spezifische Besonderheiten erklärt, die Ihre Programme von Anfang an pythonic, stilistisch schön, machen. Das Erlernen wird durch einen interaktiven Einstieg mit dem Python-Kommandozeileninterpreter erleichtert, in dem Sie viele Beispiele direkt ausprobieren können und so schnelle Lernerfolge erzielen. Außerdem erfahren Sie, wie Sie eine Entwicklungsumgebung und die objektorientierte Programmierung sinnvoll einsetzen. Zahlreiche Aufgaben und Musterlösungen runden die Kapitel ab, sodass Sie schnell eigene Projekte verwirklichen können. Diese 2. Auflage ergänzt Kapitel zur Bildverarbeitung sowie zu populären LLMs und deren vielfältigen Einsatzmöglichkeiten. Schließlich werden die Neuerungen aus Python 3.13 im Anhang vorgestellt.
Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:
Seitenzahl: 468
Dipl.-Inform. Michael Inden ist Java- und Python-Enthusiast mit über 20 Jahren Berufserfahrung. Nach seinem Studium in Oldenburg hat er bei diversen internationalen Firmen in verschiedenen Rollen etwa als Softwareentwickler, -architekt, Consultant, Teamleiter, CTO sowie Leiter Academy gearbeitet. Seit Anfang 2022 ist er als Head of Development in Zürich tätig. Sein besonderes Interesse gilt dem Design qualitativ hochwertiger Applikationen sowie dem Coaching. Sein Wissen gibt er gerne als Trainer in internen sowie externen Schulungen und auf Konferenzen weiter, etwa bei der JAX/W-JAX, JAX London, Oracle Code One, ch.open sowie bei der Java User Group Switzerland. Zudem hält er Vorlesungen zum Thema Einstieg in Python im Rahmen eines CAS Machine Learning for Software Engineers.
Michael Inden
Grundlagen der Python-Programmierungleicht und verständlich erklärt
2., überarbeitete und erweiterte Auflage
Michael Inden
Lektorat: Benjamin Ziech, Sandra Bollenbacher
Copy-Editing: Ursula Zimpfer, Herrenberg
Satz: Michael Inden
Herstellung: Stefanie Weidner
Umschlaggestaltung: Eva Hepper, Silke Braun
Bibliografische Information der Deutschen Nationalbibliothek
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.
ISBN:
978-3-98889-022-1
978-3-98890-208-5
ePub
978-3-98890-209-2
2., überarbeitete und erweiterte Auflage 2025
Copyright © 2025 dpunkt.verlag GmbH
Wieblinger Weg 17
69123 Heidelberg
E-Mail: [email protected]
Schreiben Sie uns:
Falls Sie Anregungen, Wünsche und Kommentare haben, lassen Sie es uns wissen: [email protected].
Die vorliegende Publikation ist urheberrechtlich geschützt. Alle Rechte vorbehalten. Die Verwendung der Texte und Abbildungen, auch auszugsweise, ist ohne die schriftliche Zustimmung des Verlags urheberrechtswidrig und daher strafbar. Dies gilt insbesondere für die Vervielfältigung, Übersetzung oder die Verwendung in elektronischen Systemen.
Weiter darf der Inhalt nicht zur Entwicklung, zum Training oder zur Anreicherung von KI-Systemen, insbesondere generativen KI-Systemen, verwendet werden. Die Nutzung für Text- und Data Mining ist untersagt.
Es wird darauf hingewiesen, dass die im Buch verwendeten Soft- und Hardware-Bezeichnungen sowie Markennamen und Produktbezeichnungen der jeweiligen Firmen im Allgemeinen warenzeichen-, marken- oder patentrechtlichem Schutz unterliegen.
Alle Angaben und Programme in diesem Buch wurden mit größter Sorgfalt kontrolliert. Weder Autor noch Verlag können jedoch für Schäden haftbar gemacht werden, die in Zusammenhang mit der Verwendung dieses Buches stehen.
In Erinnerung an meine geliebte Mutter Marianne Inden.
Vielen Dank für deine bedingungslose Liebe und Unterstützung.
Copyright und Urheberrechte:
Die durch die dpunkt.verlag GmbH vertriebenen digitalen Inhalte sind urheberrechtlich geschützt. Der Nutzer verpflichtet sich, die Urheberrechte anzuerkennen und einzuhalten. Es werden keine Urheber-, Nutzungs- und sonstigen Schutzrechte an den Inhalten auf den Nutzer übertragen. Der Nutzer ist nur berechtigt, den abgerufenen Inhalt zu eigenen Zwecken zu nutzen. Er ist nicht berechtigt, den Inhalt im Internet, in Intranets, in Extranets oder sonst wie Dritten zur Verwertung zur Verfügung zu stellen. Eine öffentliche Wiedergabe oder sonstige Weiterveröffentlichung und eine gewerbliche Vervielfältigung der Inhalte wird ausdrücklich ausgeschlossen. Der Nutzer darf Urheberrechtsvermerke, Markenzeichen und andere Rechtsvorbehalte im abgerufenen Inhalt nicht entfernen.
Vorwort
IEinstieg
1Einführung
1.1Python im Überblick
1.2Los geht’s – Installation
1.2.1Python-Download
1.2.2Installation von Python
1.2.3Nacharbeiten nach der Python-Installation
1.2.4Python-Installation prüfen
1.2.5Python-Programm als Skript ausführen
1.3Arbeiten mit der Kommandozeile (Kurzeinführung)
1.3.1Für macOS
1.3.2Für Windows
1.3.3IDLE als Alternative
1.4Entwicklungsumgebung PyCharm (Optional)
1.4.1Installation von PyCharm
1.4.2PyCharm starten
1.4.3Erstes Projekt in PyCharm
1.4.4Erstes Modul in PyCharm
1.5Ausprobieren der Beispiele
1.5.1Python-Kommandozeileninterpreter
1.5.2Texteditor und direkte Ausführung
1.5.3IDE
1.5.4Abschließender Hinweis
2Schnelleinstieg
2.1Hallo Welt (Hello World)
2.2Variablen und Datentypen
2.2.1Definition von Variablen
2.2.2Variablen und Typen
2.2.3Ausgaben mit print()
2.2.4Bezeichner (Variablennamen)
2.3Operatoren im Überblick
2.3.1Arithmetische Operatoren
2.3.2Zuweisungsoperatoren
2.3.3Vergleichsoperatoren
2.3.4Logische Operatoren
2.4Fallunterscheidungen
2.5Funktionen
2.5.1Eigene Funktionen definieren
2.5.2Nützliche Beispiele aus Python
2.6Fehlerbehandlung und Exceptions
2.7Kommentare
2.8Module
2.8.1Imports – Einbinden anderer Funktionalitäten
2.8.2Zusammenfassung und Ergänzendes
2.9Built-in-Datentypen
2.9.1Listen (list)
2.9.2Tupel (tuple)
2.9.3Mengen (set)
2.9.4Dictionaries (dict)
2.10Schleifen
2.10.1Besonderheit: Ranges
2.10.2Indexbasierte for-in-Schleife
2.10.3Wertebasierte for-in-Schleife
2.10.4Die for-in-enumerate-Schleife mit Index und Wert
2.10.5Die while-Schleife
2.11Weiterführende Informationen
2.12Aufgaben und Lösungen
2.12.1Aufgabe 1: Mathematische Berechnungen
2.12.2Aufgabe 2: Bedingung vereinfachen
2.12.3Aufgabe 3: Funktion und if
2.12.4Aufgabe 4: Selbstabholerrabatt
2.12.5Aufgabe 5: Schleifen mit Berechnungen
2.12.6Aufgabe 6: Schleifen und fixe Schrittweite
2.12.7Aufgabe 7: Schleifen mit variabler Schrittweite
2.12.8Aufgabe 8: Verschachtelte Schleifen – Variante 1
2.12.9Aufgabe 9: Verschachtelte Schleifen – Variante 2
2.12.10 Aufgabe 10: Verschachtelte Schleifen – Variante 3
3Strings
3.1Schnelleinstieg
3.1.1Gebräuchliche Stringaktionen
3.1.2Suchen, Enthaltensein und Ersetzen
3.1.3Informationen extrahieren und formatieren
3.1.4Praxisrelevante Funktionen im Kurzüberblick
3.2Nächste Schritte
3.2.1Zeichenverarbeitung
3.2.2Strings und Listen
3.2.3Mehrzeilige Strings
3.3Aufgaben und Lösungen
3.3.1Aufgabe 1: Länge, Zeichen und Enthaltensein
3.3.2Aufgabe 2: Zeichen wiederholen
3.3.3Aufgabe 3: Vokale raten
3.3.4Aufgabe 4: String Merge
4Klassen und Objektorientierung
4.1Schnelleinstieg
4.1.1Grundlagen zu Klassen und Objekten
4.1.2Eigenschaften (Attribute)
4.1.3Verhalten (Methoden)
4.1.4Typprüfung mit isinstance()
4.1.5Objekte vergleichen – die Rolle von __eq__()
4.2Nächste Schritte
4.2.1Klassen ausführbar machen
4.2.2Packages
4.2.3Übergang zum Einsatz einer IDE
4.2.4Verstecken von Informationen
4.2.5Packages: Auswirkungen auf unsere Applikation
4.3Vererbung
4.4Aufgaben und Lösungen
4.4.1Aufgabe 1: Superheld
4.4.2Aufgabe 2: Zähler
4.4.3Aufgabe 3: Objekte mit Dictionary selbst gebaut
5Collections
5.1Schnelleinstieg
5.1.1Die Klasse list
5.1.2Die Klasse set
5.1.3Die Klasse dict
5.2Nächste Schritte
5.2.1Comprehensions
5.2.2Slicing – Zugriff auf Teilbereiche von Listen
5.2.3Sortierung – sort() / sorted()
5.2.4Tauschen von Elementen – swap()
5.2.5Reihenfolge umkehren – reverse() und reversed()
5.2.6Mehrdimensionale Listen
5.3Aufgaben und Lösungen
5.3.1Aufgabe 1: Tennisverein-Mitgliederliste
5.3.2Aufgabe 2: Liste mit Farbnamen füllen und filtern
5.3.3Aufgabe 3: Duplikate entfernen – Variante 1
5.3.4Aufgabe 4: Duplikate entfernen – Variante 2
5.3.5Aufgabe 5: Hauptstädte
5.3.6Aufgabe 6: Häufigkeiten von Namen
5.3.7Aufgabe 7: Rotation um eine oder mehrere Positionen
5.3.8Aufgabe 8: Dreieckige Liste: Upside Down
6Ergänzendes Wissen
6.1Benutzereingaben input()
6.2Zufallswerte und das Modul random
6.3Besonderheiten von Parametern
6.3.1Parameter mit Position bzw. Name
6.3.2Parameter mit Defaultwert
6.3.3Var Args – variable Anzahl an Argumenten
6.4Ternary-Operator
6.5Aufzählungen mit Enum
6.6Fallunterscheidungen mit match
6.7break, continue und else in Schleifen
6.7.1Funktionsweise von break und continue
6.7.2Wie macht man es besser?
6.7.3Besonderheit: else in Schleifen
6.8Ausdrücke mit eval() auswerten
6.9Rekursion
6.9.1Einführendes Beispiel: Fakultät
6.9.2Weiterführendes Beispiel: Fibonacci-Zahlen
6.9.3Weiterführendes Beispiel: Lineal
6.10Praxisbeispiel: Flächen füllen
6.11Aufgaben und Lösungen
6.11.1Aufgabe 1: Würfelspiel
6.11.2Aufgabe 2: Temperaturumrechnung
6.11.3Aufgabe 3: Palindrom-Prüfung mit Rekursion
6.11.4Aufgabe 4: Einarmiger Bandit
6.11.5Aufgabe 5: BMI-Rechner
7Verarbeitung von Dateien
7.1Schnelleinstieg
7.1.1Anlegen von Dateien und Verzeichnissen
7.1.2Informationen zu Verzeichnissen und Dateien
7.1.3Informationen in Dateien schreiben und daraus lesen
7.1.4Diverse Informationen ermitteln
7.1.5Kopieren und Umbenennen
7.1.6Löschen
7.2Praxisbeispiel: Directory-Baum darstellen
7.2.1Basisvariante
7.2.2Variante mit schönerer Darstellung
7.2.3Finale Variante mit ausgeklügelter Darstellung
7.3JSON-Verarbeitung
7.3.1JSON in eine Datei schreiben
7.3.2Lesen von JSON aus einer Datei
7.3.3Pretty Printing
7.4Aufgaben und Lösungen
7.4.1Aufgabe 1: Texte in Datei schreiben und wieder lesen
7.4.2Aufgabe 2: Dateigrößen
7.4.3Aufgabe 3: Existenzprüfung
7.4.4Aufgabe 4: Rechteprüfung
7.4.5Aufgabe 5: Verzeichnisinhalt auflisten
IIAufstieg
8Collections Advanced
8.1Sequenzielle Datentypen
8.2Spaß mit Listen
8.2.1Additionen und Multiplikationen mit Listen
8.2.2Trickserei mit Slicing
8.3Iteratoren
8.4Generatoren
8.5Datencontainer mit namedtuple
8.6Einstieg in Lambdas
8.6.1Syntax von Lambdas
8.6.2Lambdas im Einsatz mit filter() und map()
8.6.3Lambdas im Einsatz mit sort()
8.7Aufgaben und Lösungen
8.7.1Aufgabe 1: Obstkorb
8.7.2Aufgabe 2: Erwachsene aus Personenliste extrahieren
8.7.3Aufgabe 3: Eigene Implementierung von rindex()
8.7.4Aufgabe 4: Every-N-th-Iterator
8.7.5Aufgabe 5: Greeting-Generator
8.7.6Aufgabe 6: Fibonacci-Generator
8.7.7Aufgabe 7: Initialisierung mit List Comprehension und Multiplikation
9Fehlerbehandlung mit Exceptions
9.1Schnelleinstieg
9.1.1Fehlerbehandlung
9.1.2Exceptions selbst auslösen – raise
9.1.3Eigene Exception-Typen definieren
9.1.4Exceptions propagieren – throws
9.2Fehlerbehandlung in der Praxis
9.2.1Exceptions für Bereichsprüfungen
9.2.2Elegante Prüfungen mit assert
9.3Automatic Resource Management (with)
9.4Aufgaben und Lösungen
9.4.1Aufgabe 1: Abgesicherter Indexzugriff – Kür mit Fallback
9.4.2Aufgabe 2: Resource Handling
10Datumsverarbeitung
10.1Schnelleinstieg
10.1.1Zeitpunkte und die Klasse datetime
10.1.2Datumswerte und die Klasse date
10.1.3Zeit und die Klasse time
10.1.4Zeitdifferenzen und die Klasse timedelta
10.1.5Berechnungen mit Datumswerten
10.1.6Formatierung und Parsing
10.2Praxisbeispiel: Kalenderausgabe
10.3Aufgaben und Lösungen
10.3.1Aufgabe 1: Wochentage
10.3.2Aufgabe 2: Freitag, der 13.
10.3.3Aufgabe 3: Mehrmals Freitag, der 13.
10.3.4Aufgabe 4: Schaltjahre
11Bildverarbeitung und Kontakt zur Außenwelt
11.1Die Bibliothek Pillow / PIL
11.1.1Installation und Import
11.1.2Bildverarbeitung
11.1.3Praxisbeispiel
11.1.4Weiterführende Informationen
11.2Das Modul requests
11.2.1Installation und Import
11.2.2Request absetzen – auf Webseite zugreifen
11.2.3Wesentliche HTTP-Kommandos (GET, POST, PUT, DELETE, HEAD)
11.2.4Response als Datei sichern
11.2.5Weiterführende Informationen
11.3Das Modul webbrowser
11.3.1Datei im Webbrowser öffnen
11.3.2Google-Suche programmatisch ausführen
12LLMs mit Python im Kurzüberblick
12.1Einführung
12.1.1Was sind LLMs? Geschichte und Einsatzgebiete
12.2Einführende Beispiele mit transformers
12.2.1Textgenerierung mit transformers
12.2.2Analyse von Texten
12.2.3Was haben wir bisher gelernt?
12.3Experimente mit OpenAI
12.3.1Textgenerierung
12.3.2Sourcecode erklären lassen
12.3.3Sourcecode generieren lassen
12.3.4Textnachricht in MP3 wandeln
12.3.5Bildgenerierung
12.3.6Weiterführende Infos
IIIPraxisbeispiele
13Praxisbeispiel: Tic Tac Toe
13.1Spielfeld initialisieren und darstellen
13.2Setzen der Steine
13.3Prüfen auf Sieg
13.4Bausteine im Einsatz
14Praxisbeispiel: CSV-Highscore-Liste einlesen
14.1Verarbeitung von Spielständen (Highscores)
14.2Extraktion der Daten
14.3Besonderheiten der Implementierung
15Praxisbeispiel: Worträtsel
15.1Applikationsdesign – Vorüberlegungen zur Strukturierung
15.2Einlesen der verfügbaren Wörter
15.3Hilfsdatenstrukturen
15.4Datenmodell
15.4.1Datenspeicherung und Initialisierung
15.4.2Zufällige Wahl von Richtung, Position, Wort und Buchstabe
15.4.3Algorithmus zum Verstecken von Wörtern
15.4.4Wort prüfen und platzieren
15.5HTML-Erzeugung
15.6Ausgabe als HTML und Darstellung im Browser
15.7Hauptapplikation
15.8Fazit
IVSchlussgedanken
16Gute Angewohnheiten
16.1Grundregeln eines guten Programmierstils
16.1.1Keep It Human-Readable
16.1.2Keep it Understandable
16.2Coding Conventions
16.2.1PEP 8 – Coding Standard
16.2.2Zen of Python
16.2.3Namensgebung
16.2.4Dokumentation
16.2.5Programmdesign
16.2.6Parameterlisten
16.2.7Logik und Kontrollfluss
16.3Auch ans Testen denken
16.3.1Das Pytest-Framework
16.3.2Schreiben und Ausführen von Tests
17Schlusswort
VAnhang
ASchlüsselwörter im Überblick
A.1Schlüsselwörter im Überblick
BSchnelleinstieg Python-REPL
B.1Python-REPL
CNeuerungen in Python 3.13
C.1Verbesserungen bei Fehlermeldungen
C.1.1Namenskonflikte bei Modulen
C.1.2Tippfehler bei benannten Parametern
C.2Verbesserungen in der Python-REPL
C.3Verschiedenes
Literaturverzeichnis
Index
Zunächst einmal bedanke ich mich bei Ihnen, dass Sie sich für dieses Buch entschieden haben. Hierin finden Sie einen fundierten und interaktiven Einstieg in die Programmierung mit Python. Dabei fangen wir mit den Grundlagen an und bauen Ihr Wissen immer weiter aus, sodass Sie nach der Lektüre in der Lage sind, eigene Experimente zu wagen, und idealerweise sogar Programmieren als neues Hobby lieben gelernt haben. Insbesondere die ungeheuren Möglichkeiten, kreativ zu werden und dabei immer wieder Neues zu entdecken, werden Sie bestimmt ähnlich faszinieren wie mich seit über 30 Jahren.
Diese zweite Auflage von »Einfach Python« wurde in weiten Teilen im Vergleich zum Vorgänger leicht überarbeitet und hat dadurch ein Facelift sowie eine Aktualisierung erfahren. Dazu wurden einige Passagen ergänzt und derart modifiziert, dass sie noch besser nachvollziehbar sind. Auch potenziell missverständliche Formulierungen wurden korrigiert und sogar kleinere Teile entfernt, um dem Text mehr Stringenz zu verleihen.
Ohne auf jedes Detail eingehen zu wollen, möchte ich doch folgende Verbesserungen explizit herausheben:
An diversen Stellen im Text wurde die Verständlichkeit weiter verbessert, indem verschiedene Neuerungen, etwa aus Python 3.10, integriert wurden. Darüber hinaus wurden ein paar Informationen hinzugefügt, ab und an ein Beispiel ergänzt sowie Formulierungen präziser gestaltet. Das gilt beispielsweise für den nun deutlich ausführlicher beschriebenen Einstieg in Variablen oder Programmausgaben mit
print()
und später im Text bei der Behandlung von Besonderheiten bei Sortierungen.
Zum leichteren Einstieg und Verständnis wurden die Anwendungsgebiete und die zu lösenden Herausforderungen etwa für Schleifen oder Listen stärker motiviert. Analog gilt das für Beispiele, etwa für List Comprehensions und Slicing, die dabei helfen, Zusammenhänge besser verstehen zu können.
Um komplexere Sachverhalte besser nachvollziehbar zu gestalten, wurden mitunter erklärende Grafiken u. a. rund um negative Indizes bei Strings und Listen ergänzt.
Auch bei den Übungsaufgaben sind einige dazugekommen, etwa ein BMI-Rechner sowie Aufgaben zu List Comprehensions. Ein paar wenige Aufgaben wurden aus didaktischen Gründen entfernt.
In der ersten Auflage wurden mitunter die Begrifflichkeiten Methode und Funktion synonym verwendet. In dieser Überarbeitung wird im ganzen Text stringenter auf die korrekte Terminologie geachtet.
In der ersten Auflage wurden manchmal einige Parameter von Funktionen und Methoden analog zu Built-in-Funktionen benannt, etwa
input()
,
max()
,
min()
oder
sum()
. Das führt zu einer Redefinition und macht die Built-in-Funktionalitäten (temporär) nicht verfügbar. Im lokalen Kontext gilt dies nur für die Anweisungen der Funktion bzw. Methode. Dieses Shadowing wurde nun durch Umbenennungen oder das Hintenanstellen eines
_
an den Namen aufgelöst.
Sowohl einzelne Passagen als auch Praxisbeispiele wurden umgeordnet. Dadurch konnte der Lesefluss verbessert und Vorwärtsreferenzen auf spätere Themen vermieden werden.
Schließlich wurden einige zu komplexe Themen wie
reduce()
und
groupby()
sowie das Praxisbeispiel Stack entfernt, da sie sich mehr an den fortgeschrittenen Programmierer wenden und den Einsteiger eher verwirren als ihm nützen.
Neben den zuvor beschriebenen Detailverbesserungen wurden zwei Kapitel und ein Anhang ergänzt:
Kapitel 11 »Bildverarbeitung und Kontakt zur Außenwelt«
– In diesem Kapitel widme ich mich einführend der Bibliothek
Pillow
und deren Möglichkeiten zur Verarbeitung von Bildern. Darüber hinaus verdeutliche ich in dem Kapitel, wie einfach man mithilfe der Bibliothek
requests
Kontakt zu Webseiten aufnehmen kann, um etwa ein Bild herunterzuladen (weitere mögliche Anwendungsfelder bestehen darin, beispielsweise Wetterdaten abzufragen). Zudem lernen wir die in Python integrierte Bibliothek
webbrowser
kennen, um eine als Datei gespeicherte Grafik im Browser anzuzeigen oder eine Google-Suche auszuführen.
Kapitel 12 »LLMs mit Python im Kurzüberblick«
– Als ganz besonderes Highlight wurde ein einführendes Kapitel zu LLMs (Large Language Models) ergänzt, die derzeit in aller Munde sind. Deren Möglichkeiten wachsen ständig und die Qualität der produzierten Ergebnisse ist ebenso verblüffend wie beeindruckend. Mittlerweile ist es mit ziemlich wenig Aufwand möglich, den Computer sinnvolle Texte, kleine Geschichten oder sogar überschaubar komplexe Programme erstellen zu lassen. Ebenso kann man sich Programme durch den Computer erklären lassen. Zwei besonders interessante Einsatzgebiete sind die Erzeugung von gesprochener Sprache als MP3-Audio aus einem Text und die Generierung von Bildern, rein basierend auf ein paar Stichworten.
Anhang C »Neuerungen in Python 3.13«
– Dieser Anhang stellt einige der für das brandaktuelle Python 3.13 umgesetzten Erweiterungen vor. Manche davon können Ihnen die ersten Experimente und Gehversuche insbesondere mit dem Python-Kommandozeileninterpreter erleichtern.
Dieses Buch ist für Programmierneulinge gedacht. Es wendet sich somit an
Schüler und Schülerinnen
, die ein paar Tipps und Hilfestellungen suchen, die das Nachvollziehen des Informatikunterrichts erleichtern,
Studierende
, die ergänzende Erklärungen zu denen aus den Vorlesungen suchen, um Gelerntes schneller anwenden zu können oder besser für die nächste Prüfung vorbereitet zu sein,
und
alle Interessierten
, die einfach die wunderbare und vielfältige Welt der Programmierung mit Python kennenlernen möchten.
Zur Lektüre dieses Buchs sind Programmiererfahrungen keine zwingende Voraussetzung – allerdings schaden diese natürlich nicht. Selbst dann nicht, wenn Sie sich vielleicht eher mit Java, C#, TypeScript oder JavaScript beschäftigt haben. Es ist aber hilfreich, wenn Sie einigermaßen fit im Installieren von Programmen sind und wissen, was die Kommandozeile ist und wie Sie diese grundlegend bedienen können.
Dieses Buch bietet Ihnen einen unterhaltsamen Einstieg in Python. Dazu wird die trockene Theorie auf ein Minimum reduziert und Sachverhalte werden immer mit kleinen Beispielen illustriert. Zudem ist es ein Buch zum Mitmachen. Ich ermutige Sie, parallel zum Lesen auch immer ein paar Dinge auszuprobieren, vielleicht sogar mal das eine oder andere abzuwandeln. Man lernt Programmieren am besten, wenn man es praktiziert. Somit bietet es sich an, die abgebildeten Codeschnipsel abzutippen, also direkt im Python-Kommandozeileninterpreter einzugeben, oder später im Editor Ihrer Entwicklungsumgebung/IDE (Integrated Development Environment). Beide Varianten werden im Verlauf des Buchs noch genauer beschrieben.
Damit Sie nicht über einfache Probleme stolpern, führt das Buch behutsam und schrittweise in die jeweilige Thematik ein und gibt Ihnen immer auch einige Hinweise, auf was man achten oder was man vielleicht sogar vermeiden sollte. Dazu dienen diverse Praxistipps mit Hintergrundinformationen.
Tipp: Praxistipp
In derart formatierten Kästen finden sich im späteren Verlauf des Buchs immer wieder einige wissenswerte Tipps und ergänzende Hinweise zum eigentlichen Text.
Dieses Buch besteht aus jeweils in sich abgeschlossenen, aber aufeinander aufbauenden Kapiteln zu elementar wichtigen Bereichen der Programmiersprache Python. Abgerundet werden viele Kapitel mit Aufgaben und Musterlösungen, sodass das zuvor Gelernte direkt anhand neuer Problemstellungen praktiziert und das Wissen vertieft werden kann.
Für Ihren erfolgreichen Weg zur Python-Programmierung gliedert sich das Buch in die vier Teile Einstieg, Aufstieg, Praxisbeispiele und Schlussgedanken.
Im Teil »Einstieg« werden Grundlagen behandelt. Hier empfiehlt es sich, die Kapitel in der Reihenfolge des Buchs zu lesen, da mit jedem Kapitel neue Wissensbausteine und Themen hinzukommen, die im Anschluss vorausgesetzt und verwendet werden. Dann folgt der Teil »Aufstieg«. Dort beschäftigen wir uns mit leicht fortgeschrittenen Themen. Aus diesen können Sie zwar nach Lust und Laune eins der Kapitel zur Lektüre auswählen, aber auch hier bauen einige Themen aufeinander auf. Der Teil »Praxisbeispiele« verdeutlicht die bisherigen Lerninhalte anhand von vereinfachten, didaktisch aufbereiteten Beispielen aus der Praxis. Hier haben Sie viel Spielraum zum Experimentieren und Einbringen eigener Ideen. Im Teil »Schlussgedanken« wird ein Ausblick gegeben, etwa auf Programmierstil und Testen. Das Buch endet mit einem Rückblick und ein paar Hinweisen für nächste Schritte.
Kapitel 1 – EinführungDieses Kapitel gibt zunächst einen kurzen Überblick über Pythons mittlerweile fast 30-jährige Geschichte. Bevor wir mit dem Lernen von Python als Programmiersprache loslegen, müssen wir einige Installationen vornehmen: Zum einen benötigen wir Python an sich und zum anderen wird eine Entwicklungsumgebung/IDE (Integrated Development Environment) im Verlauf des Buchs mit zunehmender Komplexität der Beispiele immer nützlicher.
Kapitel 2 – SchnelleinstiegDieses Kapitel bietet einen Schnelleinstieg und stellt viele wesentliche Elemente von Python vor. Dabei wird ganz behutsam Fahrt aufgenommen: Wir beginnen mit einer einfachen Ausgabe eines Textes, traditionell »Hello World«, und lernen dann, wie wir das mithilfe von Variablen variieren. Zudem schauen wir uns bedingte Ausführungen mit Fallunterscheidungen und Wiederholungen mit Schleifen an.
Kapitel 3 – StringsZeichenketten oder Strings sind aus kaum einem Programm wegzudenken. Variablen vom Typ str repräsentieren Zeichenketten und dienen zur Verwaltung von textuellen Informationen. In diesem Kapitel behandle ich die Thematik genauer.
Kapitel 4 – Klassen und ObjektorientierungImmer wieder hört man, dass Python auch die objektorientierte Programmierung unterstützt. Doch was bedeutet das? Zum Verständnis gibt dieses Kapitel einen Einblick in den objektorientierten Entwurf von Software. Dazu vermittle ich die grundlegenden Ideen von Zustand (Daten) in Kombination mit Verhalten (Funktionen auf diesen Daten) und wie man dies in Python formuliert.
Kapitel 5 – CollectionsCollections bzw. Container bieten Flexibilität und Komfort beim Verwalten von Daten. In Python unterstützen die vordefinierten Listen, Mengen und Schlüssel-Wert-Abbildungen die Verwaltung von Daten.
Kapitel 6 – Ergänzendes WissenIn diesem Kapitel werden verschiedene Themen angesprochen, die in den vorherigen Kapiteln aus didaktischen Gründen bewusst ausgelassen wurden. Warum? Deren Beschreibung erfordert mehr Wissen rund um Python, was Sie mittlerweile erworben haben – vorher wäre das Ganze zu tief in die Details gegangen und hätte zu viele andere Kenntnisse vorausgesetzt. Hier angelangt lohnt es sich aber, das bisherige Wissen etwa mit Informationen zu Besonderheiten bei Parametern, dem Ternary-Operator, Aufzählungen mit Enum usw. zu komplettieren.
Kapitel 7 – Verarbeitung von DateienDieses Kapitel beschäftigt sich mit der Verarbeitung von Informationen aus Dateien. Dies ist für viele Anwendungen von großer Bedeutung, da Informationen oftmals nicht nur während der Programmlaufzeit von Interesse sind, sondern vor allem auch darüber hinaus – denken Sie etwa an die Highscore-Liste Ihres Lieblingsspiels.
Kapitel 8 – Collections AdvancedDieses Kapitel stellt fortgeschrittenere Funktionalitäten rund um Collections vor. Dort gehen wir beispielsweise auf sequenzielle Datentypen, Iteratoren und Generatoren ein. Spezielle benannte Datencontainer lassen sich mit Named Tuples erzeugen. Schließlich schauen wir uns noch einführend Lambdas an.
Kapitel 9 – Fehlerbehandlung mit ExceptionsVielleicht kennen Sie es schon: Manchmal tritt ein Programmfehler auf und das Programm stürzt ab. Wichtige Daten gehen potenziell verloren. So etwas ist ärgerlich. Daher gehört die Behandlung von Fehlern zum guten Ton beim Programmieren. Dieses Kapitel führt in die Thematik ein.
Kapitel 10 – DatumsverarbeitungPython bietet diverse praktische Funktionalitäten, um mit Datums- und Zeitangaben zu arbeiten, etwa zur Verarbeitung von Zeitpunkten, Zeitdifferenzen und Berechnungen. Dies und mehr wird in diesem Kapitel einführend dargestellt.
Kapitel 11 – Bildverarbeitung und Kontakt zur AußenweltPython bietet diverse Bibliotheken, etwa zur Verarbeitung von Bildern und zum Ausführen von Web-Requests. Beide Thematiken stellt dieses Kapitel einführend vor und zeigt abschließend, wie man mit der in Python integrierten Bibliothek webbrowser mit dem Webbrowser in Kontakt treten kann.
Kapitel 12 – LLMs mit Python im KurzüberblickDie Popularität von Python basiert vermutlich auch darauf, dass es viele Bibliotheken rund um KI (Künstliche Intelligenz), ML (Machine Learning) und LLMs (Large Language Models) gibt, die zudem oftmals noch recht gut in der Handhabung sind. Dieses Kapitel zeigt ein paar der vielfältigen Möglichkeiten auf, etwa wie man den Computer sinnvolle Texte erstellen oder Bilder generieren lässt.
Kapitel 13 – Praxisbeispiel: Tic Tac ToeIn diesem Kapitel entwickeln wir eine einfache Version des Strategiespiels Tic Tac Toe. Beim Implementieren wird verdeutlicht, warum man Programme in kleine Bausteine untergliedern sollte.
Kapitel 14 – Praxisbeispiel: CSV-Highscore-Liste einlesenDieses Kapitel verdeutlicht an einem weiteren Praxisbeispiel, wie die Verarbeitung von Dateien und kommaseparierten Daten, auch CSV (Comma Separated Values) genannt, mit Python erfolgen kann. Um das Ganze unterhaltsam zu gestalten, werden wir statt trockener Anwendungsdaten eine Liste von Spielständen als Eingabe nutzen.
Kapitel 15 – Praxisbeispiel: WorträtselDas dritte Praxisbeispiel umfasst eine etwas komplexere Programmieraufgabe, nämlich die Erstellung von Worträtseln, wie man sie aus Zeitschriften kennt. Dabei sollen aus einem scheinbaren »Buchstabensalat« verschiedene dort versteckte Begriffe extrahiert werden. Dieses Kapitel vermittelt, wie man Aufgaben in kleine Problemstellungen untergliedert und diese jeweils mit eigenen Klassen realisieren kann. Schließlich agiert die eigentliche Applikation dann wie ein Dirigent und fügt die Einheiten passend zusammen. Dabei lernen wir beispielsweise den Import möglicher Wörter aus Dateien, die Modellierung des Rätsels und einen einfachen Export nach HTML kennen.
Kapitel 16 – Gute AngewohnheitenDieses Kapitel stellt Ihnen ein paar Dinge zu gutem Programmierstil vor. Das umfasst sogenannte Coding Conventions, also Regeln beim Programmieren. Außerdem zeige ich, wie sich einige davon mit Tools prüfen lassen und wie man Programme mit Pytest testen und dadurch Fehler vermeiden kann.
Kapitel 17 – SchlusswortHier rekapitulieren wir kurz, was Sie durch die Lektüre dieses Buchs gelernt haben sollten und wie Sie möglicherweise weitermachen können.
Anhang A – Schlüsselwörter im ÜberblickIn Python existiert eine Reihe von Schlüsselwörtern, die reserviert sind und nicht als Bezeichner für Variablen, Funktionen und einiges anderes verwendet werden dürfen. Hier erhalten Sie einen Überblick.
Anhang B – Schnelleinstieg REPLIn diesem Buch werden diverse Beispiele direkt auf der Konsole ausprobiert. Der Grund ist vor allem, dass Python einen interaktiven Kommandozeileninterpreter als REPL (Read-Eval-Print-Loop) bietet.
Anhang C – Neuerungen in Python 3.13Dieser Anhang stellt einige der im brandaktuellen Python 3.13 enthaltenen Erweiterungen vor. Manche davon können Ihnen die ersten Experimente und Gehversuche insbesondere mit dem Python-Kommandozeileninterpreter erleichtern.
In diesem Buch gelten folgende Konventionen bezüglich der Schriftart: Neben der vorliegenden Schriftart werden wichtige Textpassagen kursiv oder kursiv und fett markiert. Englische Fachbegriffe werden eingedeutscht großgeschrieben, etwa Event Handling. Zusammensetzungen aus englischen und deutschen (oder eingedeutschten) Begriffen werden mit Bindestrich verbunden, z. B. Plugin-Manager. Listings mit Sourcecode sind in der Schrift Courier gesetzt, um zu verdeutlichen, dass diese einen Ausschnitt aus einem Python-Programm darstellen. Auch im normalen Text wird für Klassen, Funktionen, Methoden, Variablen und Parameter diese Schriftart genutzt.
Im Buch verwende ich die in der nachfolgenden Tabelle aufgelisteten Abkürzungen. Weitere Abkürzungen werden im laufenden Text in Klammern nach ihrer ersten Definition aufgeführt und anschließend bei Bedarf genutzt.
Abkürzung
Vollständige Bezeichnung
API
Application Programming Interface
ASCII
American Standard Code for Information Interchange
IDE
Integrated Development Environment
Ich hatte schon angedeutet, dass es zum Programmierenlernen hilfreich ist, die Beispiele und Sourcecode-Schnipsel selbst auszuprobieren und abzutippen. Um Ihnen ein wenig Tipparbeit und Mühe zu sparen, finden Sie viele der Beispiele als Programme in Form eines ZIP-Archivs, das unter www.dpunkt.de/Einstieg-in-Python-2 zur Verfügung steht. Dort erhalten Sie auch weitere Informationen zum genauen Vorgehen.
Nach dem Entpacken sollte das Resultat im Dateisystem in etwa so aussehen (links). Wenn Sie das übergeordnete Verzeichnis in die IDE PyCharm importieren, zeigt sich eine Darstellung wie rechts abgebildet.
Abbildung 0-1Python-Dateien nach dem Entpacken im Dateisystem (links) / nach dem Import in PyCharm (rechts)
Zu jedem Kapitel des Buchs korrespondiert ein Verzeichnis. Dort finden Sie jeweils einige oder manchmal sogar eine Vielzahl an Python-Programmen in Form von .py-Dateien. Wenn Sie auf der Konsole arbeiten, wechseln Sie in das jeweilige Verzeichnis und öffnen die Dateien etwa mit einem Texteditor oder führen Sie diese mit Python aus. Welche Schritte dazu notwendig sind, erfahren Sie in den folgenden Kapiteln.
Wenn Sie PyCharm als IDE einsetzen, ist die Navigation ein wenig einfacher und zudem kann man leichter zwischen verschiedenen Verzeichnissen und somit Themengebieten hin und her springen. In der IDE lassen sich die Programme auch einfacher bearbeiten und dadurch gehen kleine Experimente etwas leichter von der Hand.
Die Beispiele dieses Buchs wurden mit der im Sommer 2024 aktuellen Version 3.12 von Python überarbeitet oder neu entwickelt sowie getestet. Eine abschließende Prüfung erfolgte Anfang Oktober 2024 mit dem finalen Python 3.13. Wenn auf Ihrem Rechner die Python-Version noch nicht ganz so aktuell sein sollte, wird dies eher selten ein Problem darstellen. Die allermeisten Programme sollten ohne Änderungen auch in etwas älteren Python-Versionen wie 3.11 oder 3.10 funktionieren.
Beachten Sie bitte, dass sich in den abgebildeten Programmen immer wieder diverse Kommentare (hier fett markiert) finden, die die folgenden Anweisungen erklären und der Orientierung und dem besseren Verständnis dienen. In der Praxis sollte man derartige Kommentierungen mit Bedacht einsetzen und lieber einzelne Sourcecode-Abschnitte in Funktionen auslagern. Für die Beispiele des Buchs dienen diese Kommentare aber als Anhaltspunkte, weil die eingeführten oder dargestellten Sachverhalte für Sie als Leser vermutlich noch neu und ungewohnt sind.
Wie schon bei einigen meiner Bücher hat mich auch diesmal Michael Kulla wieder ganz besonders unterstützt, wie üblich breitgefächert vom Aufdecken von Tippfehlern bis hin zu diversen inhaltlichen Hinweisen. Auch Prof. Dr. Carsten Kern hat einige Kapitel mit wertvollen Anmerkungen weiter verbessert. Schließlich haben Maya Piepenbreier und Jean-Claude Brantschen mit ein paar Anregungen dazu beigetragen, den Text noch verständlicher zu machen und abzurunden.
Ebenso geht selbstverständlich ein Dankeschön an das Team des dpunkt.verlags (Dr. Michael Barabas, Dr. Benjamin Ziech, Sandra Bollenbacher, Alissa Melitzer und Stefanie Weidner) für die tolle Zusammenarbeit. Außerdem möchte ich mich bei Tobias Overkamp für die fundierte fachliche Durchsicht der ersten Auflage sowie bei Ursula Zimpfer für ihre Adleraugen beim Copy-Editing bedanken.
Abschließend geht ein lieber Dank an meine Frau Lilija für ihr Verständnis und die Unterstützung. Ihren ganz besonderen Anteil hat unser Sonnenschein Sophie Jelena dazu beigetragen, indem sie den Papa immer wieder zum Lachen gebracht hat.
Trotz großer Sorgfalt und mehrfachen Korrekturlesens lassen sich missverständliche Formulierungen oder sogar Fehler leider nicht vollständig ausschließen. Falls Ihnen etwas Derartiges auffallen sollte, so zögern Sie bitte nicht, mir dies mitzuteilen. Gerne nehme ich auch Anregungen oder Verbesserungsvorschläge entgegen. Kontaktieren Sie mich bitte per Mail unter:
Zürich, im November 2024
Michael Inden
Python wurde Anfang der 1990er-Jahre von Guido von Rossum entwickelt und 1994 in Version 1.0 veröffentlicht. Mittlerweile hat Python zwar schon rund 30 Jahre auf dem Buckel, wird aber nicht altersschwach, sondern kontinuierlich gepflegt und weiterentwickelt. Beispielsweise hat die bereits 2008 erschienene Hauptversion Python 3 diverse Aktualisierungen erfahren und liegt seit Oktober 2023 in der Version 3.12 vor. Im Oktober 2024 ist Python 3.13 erschienen.
Hinweis: Python 2
Tatsächlich findet man vereinzelt immer noch Projekte und Informationen zur Vorgängerversion Python 2. Das neuere Python 3 ist an einigen Stellen nicht rückwärtskompatibel, etwa bei print(), das in Python 2 noch ein Kommando war und mittlerweile eine Funktion ist, oder aber bei Aktionen auf Listen, wie Filterungen, die im Gegensatz zu Python 2 nicht mehr direkt ausgeführt werden, sondern ein Ergebnis zum Weiterverarbeiten liefern. Insgesamt bietet Python 3 modernere Konzepte und sollte für Neuentwicklungen bevorzugt werden. Deswegen wird Python 2 in diesem Buch nicht weiter behandelt.
In den letzten Jahren wurde Python immer beliebter und ist mittlerweile die populärste Programmiersprache. Stand November 2024 hat Python laut TIOBE-Popularitätsindex1 den 1. Platz inne und diesen bereits vor über einem Jahr erobert. Eine wichtige Rolle spielt vermutlich die freie Verfügbarkeit für alle relevanten Betriebssysteme. Zudem ist Python recht leicht zu erlernen (zum Einstieg deutlich einfacher als Java und insbesondere als C oder C++). Auch in der Forschung und Lehre wird Python zunehmend populärer und gewinnt an Bedeutung.
Darüber hinaus ist Programmieren ein wunderbares Hobby sowie ein faszinierender Beruf und es macht zudem noch jede Menge Freude, fördert die Kreativität und den Gestaltungswillen.
Wie Sie sehen, sprechen viele gute Gründe für einen Einstieg in die Programmierung mit Python. Das Wichtigste ist jedoch der Spaß am Programmieren, Tüfteln und Ausprobieren. Lassen Sie uns starten!
Python als Programmiersprache besitzt ebenso wie eine natürliche Sprache eine Grammatik und feststehende Begriffe (Wörter). Man spricht dabei von Syntax und Schlüsselwörtern (vgl. Anhang A).
Python-Programme werden textuell verfasst. Das wird Sourcecode genannt. Zum Einstieg betrachten wir zwei einfache Python-Programme. Wir beginnen mit der skriptbasierten (Zeile für Zeile abgearbeiteten) Variante des kürzestmöglichen Hello-World-Programms, der Ausgabe eines Grußes auf der Kommandozeile:
print("Hello world!")
Diese Zeile speichern Sie etwa in einer Datei helloworld.py und können diese später ausführen. Das schauen wir uns in Kürze an.
Die gezeigte Funktionalität lässt sich auch etwas komplizierter folgendermaßen im objektorientierten Stil mithilfe einer Klasse (vgl. Kapitel 4) verfassen – solche Darstellungen von Sourcecode nennt man auch Listing:
Keine Sorge, Sie müssen das Ganze noch nicht verstehen, wir werden das alles Stück für Stück erlernen. Hier ist zunächst nur wichtig, dass Sie elementare Bestandteile von Python-Programmen grob einordnen können. Dazu gehören die Schlüsselwörter, also Python-Befehle oder -Anweisungen, hier etwa class, def und Funktions- bzw. Methodenaufrufe wie print() und greet(). Ebenso wie die Begriffe in einer Sprache tragen diese reservierten Wörter eine besondere Bedeutung, ganz analog etwa zu den Nomen Auto, Haus, Tür usw. oder den Verben laufen, knobeln etc. im Deutschen.
Genau wie im Deutschen können (oder besser sollten) Begriffe nicht wahllos miteinander verknüpft werden, denn dann ergibt dies höchstwahrscheinlich keinen Sinn. Um einen gültigen Satz zu formulieren, bedarf es der Einhaltung einiger Regeln. Diese werden als Grammatik bezeichnet. Auch in Python existiert eine solche. Damit wird etwa festgelegt, dass es def greet() heißen muss, aber nicht greet() def. Man spricht dann davon, dass das Programm syntaktisch korrekt ist, wenn es den Regeln der Grammatik entspricht.
Zudem sehen wir Einrückungen. Diese kann man sich wie Absätze in einem Text vorstellen. In Python bündeln diese Einrückungen Anweisungen. Man spricht auch von Blöcken oder Suites. Einrückungen sind im Gegensatz zu anderen Programmiersprachen wie Java äußerst wichtig. Wird in einem Python-Programm falsch eingerückt oder werden Einrückungen ganz weggelassen, so lässt sich das Programm nicht ausführen.
Wie schon angedeutet, wird Python immer populärer. Beleuchten wir ein paar Gründe für diesen Trend. Zwei wesentliche sind sicher das breite Einsatzspektrum sowie die recht flache Lernkurve beim Einstieg.
Einfaches Experimentieren und erste SchritteErste Experimente mit Python gehen oftmals schnell von der Hand. Dabei hilft die auf das Wesentliche reduzierte Syntax (die wenigen Schlüsselwörter und Anweisungen) in Kombination mit einigen eleganten Sprachfeatures. Zum einfachen Ausprobieren weniger Anweisungen existiert ein interaktiver Modus. Dieser steht nach der im Anschluss (vgl. Abschnitt 1.2) beschriebenen Installation von Python automatisch zur Verfügung.
Im folgenden Text nutze ich immer $ zur Kennzeichnung von Eingaben auf der Kommandozeile (eine Kurzeinführung finden Sie in Abschnitt 1.3). Von dort starten Sie Python im interaktiven Modus mit dem Aufruf python (Windows) bzw. python3 (macOS). Dies sollte in etwa wie folgt protokolliert werden:
$ python3
Python 3.13.0 (v3.13.0:60403a5409f, Oct 7 2024, 00:37:40) [Clang 15.0.0 (clang -1500.3.9.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
Die drei >>> zeigen an, dass Python nun auf Ihre Eingaben und Befehle wartet. In diesem Modus können Sie einzelne Anweisungen und kleinere Berechnungen Zeile für Zeile eingeben und direkt die Resultate sehen, etwa folgendermaßen:
>>> 7 * 6
42
>>> print("Willkommen zum Python-Buch")
Willkommen zum Python-Buch
print(7 * 6)
print("Willkommen zum Python-Buch")
Eine solche Datei mit Python-Anweisungen lässt sich dann wie folgt ausführen – mehr Details zu dieser skriptbasierten Ausführung behandelt Abschnitt 1.2.5:
$ python3 <dateiname>.py
Konkret würde ein Aufruf so aussehen und die nachfolgenden Ausgaben produzieren:
$ python3 intro.py
42
Willkommen zum Python-Buch
Weitere VorteileDie gut verständliche Formatierung und Gestaltung von Blöcken mit Einrückungen statt der in anderen Programmiersprachen üblichen geschweiften Klammern erleichtern den Einstieg. Neben dieser optischen Hilfe und Strukturierung besitzt Python eine überschaubare Anzahl an Befehlen (Schlüsselwörter).
Damit eine Programmiersprache eine gewisse Popularität erreichen kann, muss sie fast zwangsläufig für alle gängigen Betriebssysteme wie Windows, macOS und Unix verfügbar sein. Das ist für Python gegeben.
Eine weitere Rolle spielt das sogenannte Ökosystem, also die Menge an externen Tools und Frameworks sowie Bibliotheken, die für eine Programmiersprache existieren. Lange Zeit war hier Java vorbildlich und extrem stark. Python spielt in den Bereichen Künstliche Intelligenz (KI) und Machine Learning (ML) eine Vorreiterrolle und holt in anderen Bereichen stetig auf: Es gibt diverse gute Entwicklungstools und weitere Bibliotheken, herausragend sind eben die in den Bereichen KI und ML.
Als Vorgeschmack sei auf die Kapitel 11 und 12 hingewiesen. Im ersten von beiden beschäftigen wir uns mit verschiedenen Bibliotheken zur Verarbeitung von Bildern und zum Ausführen von Web-Requests. Das zweite genannte Kapitel liefert einen Einstieg in KI und beleuchtet einige Möglichkeiten von Large Language Models (LLMs), etwa die Generierung von Texten, Audioausgaben in MP3 und Bildern.
Genug der vielen Informationen. Nachfolgend werden wir die Dinge gründlich besprechen und didaktisch immer wieder neue Themengebiete ergründen, bis wir schließlich einen guten Einstieg in die Python-Programmierung vollzogen haben werden. Vorab wollen wir Python selbst und optional die IDE namens PyCharm2 installieren und erste Schritte ausführen, um für unsere weitere Entdeckungsreise gewappnet zu sein.
Im ersten Teil dieses Buchs wird ein Hands-on-Ansatz verfolgt, bei dem wir Dinge oftmals in Form kleinerer Python-Codeschnipsel direkt ausprobieren. Sie benötigen dazu keine tiefgreifenden Programmiererfahrungen, allerdings schaden diese natürlich nicht, ganz im Gegenteil. Hilfreich wäre jedoch, wenn Sie sich einigermaßen mit dem Installieren von Programmen und grundlegend mit der Kommandozeile auskennen.
Damit Sie die nachfolgend beschriebenen Python-Programme ausführen können, benötigen Sie eine aktuelle Python-Installation. Beginnen wir also damit.
Hinweis: Möglicherweise leicht abweichende Screenshots
Denken Sie bitte daran: Bei Ihnen können die Abbildungen aufgrund von unterschiedlichen Versionen leicht abweichen, insbesondere, wenn Sie Windows verwenden. Die Screenshots wurden unter macOS Sonoma erstellt.
Auf der Webseite https://www.python.org ist die aktuelle Python-Version frei verfügbar (vgl. Abbildung 1-1).
Abbildung 1-1Python-Download-Seite
Nachdem Sie auf den Link zum Python-Download geklickt haben, startet der Download. Wenn dieser abgeschlossen ist, fahren Sie wie im Anschluss beschrieben fort.
Die Installation von Python wird nachfolgend für die weitverbreiteten Betriebssysteme Windows und macOS beschrieben. Falls Sie ein Unix-Derivat nutzen, dann finden Sie dort oftmals schon eine aktuelle Version von Python vorinstalliert.
Für Windows doppelklicken Sie bitte auf die .exe-Datei, die nach erfolgreicher Installation gelöscht werden kann. Führen Sie das heruntergeladene Installationsprogramm aus (z. B. python-3.13.0-amd64.exe). Damit wird Python installiert. Akzeptieren Sie die Standardeinstellungen und befolgen Sie die Anweisungen während der Installation. In einem Schritt kann angeklickt werden, dass Python der Umgebungsvariablen PATH hinzugefügt werden soll. Das sollten Sie unbedingt auswählen, um spätere Aktionen und Änderungen an den Systemeinstellungen zu vermeiden.
Exemplarisch ist die Python-Installation für Windows inklusive der auszuwählenden Aktionen in der nachfolgenden Abbildung 1-2 gezeigt.
Abbildung 1-2Python-Installation für Windows
Für macOS sollten Sie eine .pkg-Datei (z. B. python-3.13.0-macos11.pkg) heruntergeladen haben, die Sie doppelklicken, um die Installation zu starten. Folgen Sie den Aufforderungen. Möglicherweise müssen Sie das Administrator-Passwort eingeben, um fortzufahren. Nachdem die Installation abgeschlossen ist, können Sie die .pkg-Datei löschen, um Speicherplatz zu sparen.
Damit Python bei Ihnen nach der Installation in der Kommandozeile korrekt funktioniert, sind mitunter ein paar Nacharbeiten nötig. Dazu sollten wir Python zur leichteren Handhabung in den Pfad aufnehmen. Dies wird nachfolgend für die Betriebssysteme Windows und macOS beschrieben. Falls Sie ein Unix-Derivat nutzen, dann finden Sie dort oftmals eine aktuelle Version von Python vorinstalliert und passend konfiguriert.
Sofern nicht bereits während der Installation angeklickt, sollte das Installationsverzeichnis in die Umgebungsvariable PATH aufgenommen werden. Diese können Sie unter »Umgebungsvariablen« (engl. Environment Variables) ändern. Drücken Sie die Win-Taste und geben Sie dann »umgeb« ein, bis »Umgebungsvariablen für dieses Konto bearbeiten« erscheint. Mit Enter öffnet sich der Dialog »Umgebungsvariablen«. Hier wählen Sie den Eintrag »Path« aus und klicken auf den Button »Bearbeiten«. In die nun erscheinende Liste fügen Sie das Installationsverzeichnis ein. Dazu klicken Sie auf den Button »Neu« und fügen dort zwei Verzeichnisse hinzu: Zum einen das Installationsverzeichnis, das standardmäßig etwa so aussieht: C:\Users\<NUTZERNAME>\AppData\Local\Programs\Python\Python313. Zum anderen das Unterverzeichnis Scripts, für das der Eintrag ungefähr wie folgt lautet: C:\Users\<NUTZERNAME>\AppData\Local\Programs\Python\Python313\Scripts. Nach dem Schließen des Dialogs mit »OK« sollte das Ganze dann in etwa so aussehen:
Abbildung 1-3Umgebungsvariablen bearbeiten
Beachten Sie Folgendes: Bestätigen Sie die gesamten Dialoge bitte immer mit »OK«, sodass die Umgebungsvariablen gesetzt sind. Eventuell geöffnete Kommandozeilen müssen geschlossen und neu geöffnet werden, um die geänderten Umgebungsvariablen wirksam werden zu lassen.
Weitere Informationen finden Sie auf der Webseite https://docs.python.org/3/using/windows.html.
Auch unter macOS empfiehlt es sich, einen Verweis auf Python im Pfad in der jeweiligen Shell (dem Terminal) passend zu setzen. Normalerweise geschieht dies bei einer Installation automatisch. Ansonsten können Sie dies von Hand ausführen bzw. in das Startskript Ihrer Shell folgende Kommandos eintragen, etwa ~/.bash_profile oder neuer ~/.zshrc:
$ export PYTHON_HOME=/Library/Frameworks/Python.framework/Versions/3.13/
$ export PATH=$PYTHON_HOME/bin:$PATH
Nachdem Sie die obigen Schritte ausgeführt haben, sollte Python auf Ihrem Rechner installiert und von der Kommandozeile startbar sein und Sie damit bereit für die nächsten Schritte. Öffnen Sie eine Kommandozeile – falls Sie sich damit noch etwas schwertun, finden Sie in Abschnitt 1.3 eine Kurzeinführung in die Kommandozeile. Von dort starten Sie Python im interaktiven Modus mit python (Windows Eingabeaufforderung) oder python3 (macOS Terminal). Nochmals zur Erinnerung: Im folgenden Text nutze ich $ zur Kennzeichnung von Eingaben auf der Kommandozeile, um es unabhängig vom jeweiligen Betriebssystem einheitlich darstellen zu können:
$ python3
Python 3.13.0 (v3.13.0:60403a5409f, Oct 7 2024, 00:37:40) [Clang 15.0.0 (clang -1500.3.9.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
Sofern Sie ähnliche Meldungen erhalten (möglicherweise mit kleinen Abweichungen bei den Versionsangaben), können wir uns auf die Entdeckungsreise zur Python-Programmierung machen. Wir beenden den interaktiven Modus mit exit() oder seit Python 3.13 kürzer mit exit, um anschließend noch die skriptbasierte Ausführung kennenzulernen.
>>> exit
Wie schon erwähnt, kann man Python-Anweisungen nicht nur interaktiv auf der Kommandozeile direkt eingeben und ausführen, sondern auch in Form einer Textdatei bereitstellen und die dortigen Anweisungen Zeile für Zeile ausführen lassen. Dazu müssen die gewünschten Python-Anweisungen zunächst mit einem Texteditor eingegeben werden, beispielsweise folgende zwei Zeilen:
print("Herzlich Willkommen zu 'Einfach Python'")
print("Viel Spaß wünscht Ihnen Michael Inden")
Speichern Sie diese Zeilen etwa als Datei welcome.py ab. Danach können Sie die Anweisungen als Python-Programm unter macOS folgendermaßen starten – für Windows nutzen Sie python zum Aufruf statt python3 (macOS).
$ python3 welcome.py
Dieser Aufruf startet Python, das dann die Anweisungen aus der angegebenen Datei, hier welcome.py, lädt und analysiert und diese schließlich ausführt. Für dieses Beispiel werden als Folge diese Meldungen auf der Kommandozeile ausgegeben:
Herzlich Willkommen zu 'Einfach Python'
Viel Spaß wünscht Ihnen Michael Inden
Gerade habe ich bereits das eine oder andere Mal die Kommandozeile erwähnt. Möglicherweise haben Sie noch nicht so viel Erfahrung und tun sich bei deren Start noch etwas schwer. Um diese Einstiegshürde zu überwinden, möchte ich eine kurze Einführung geben, damit Sie dann sicher Python im interaktiven Modus von der Kommandozeile starten können.
Nachfolgend zeige ich Ihnen zuerst die Schritte für macOS und danach die für Windows.
Unter macOS heißt das Programm für die Kommandozeile »Terminal«. Um dieses zu starten, führen Sie bitte alternativ eine der beiden folgenden Varianten aus.
Variante 1 – Dock und LaunchpadKlicken Sie im Dock auf das Symbol des Launchpad (vgl. Abbildung 1-4).
Abbildung 1-4Dock und Launchpad
Daraufhin erscheint eine Iconliste mit allen Programmen. Im oberen Teil befindet sich ein Suchfeld. Dort geben Sie bitte Terminal ein. Während der Eingabe wird die Liste der dem Suchbegriff entsprechenden Programme immer stärker eingeschränkt und es sollte das zum Terminal gehörende Programmsymbol erscheinen. Dieses können Sie anklicken, wie es nachfolgend in Abbildung 1-5 durch den Pfeil angedeutet ist.
Abbildung 1-5Dienstprogramme mit Filterung auf »Te«
Variante 2 – Dock und FinderKlicken Sie im Dock auf das Symbol des Finder (vgl. Abbildung 1-6).
Abbildung 1-6Dock und Finder
Öffnen Sie dort den Ordner /Programme/Dienstprogramme und doppelklicken Sie dann auf Terminal wie es nachfolgend in Abbildung 1-7 durch den unteren Pfeil angedeutet ist.
Abbildung 1-7Dienstprogramme im Finder
Resultat: Terminal-FensterUnabhängig von den beiden beschriebenen Wegen sollte sich ein Terminal-Fenster, also die Kommandozeile, analog zu dem in Abbildung 1-8 gezeigten öffnen – Datumsangaben und Rechnername werden bei Ihnen vermutlich abweichen. :-)
Abbildung 1-8Terminal
Für das Terminal verwende ich im Buch als Abkürzung immer das $-Zeichen. Hier geben Sie Kommandos ein oder führen die Installation von Python-Bibliotheken und Tools durch.
Um die im Text abgebildeten Python-Kommandos ausführen zu können, müssen Sie den Python-Kommandozeileninterpreter (auch REPL für Read-Eval-Print-Loop genannt) für macOS durch Eingabe von python3 starten. Nachfolgend ist das Ganze in Abbildung 1-9 nach dem Start von Python gezeigt. Alle im Buch mit >>> markierten Aktionen finden dann dort statt.
Abbildung 1-9Python im Terminal starten
Unter Windows heißt das Programm für die Kommandozeile »Eingabeaufforderung« (cmd.exe). Um diese zu starten, führen Sie bitte alternativ eine der beiden folgenden Varianten aus.
Variante 1 – Run-MenüEine Möglichkeit ist die Tastaturkombination Win + R zum Öffnen des Run-Menüs. Dort können Sie cmd eintippen und den Dialog mit OK bestätigen. Daraufhin wird die Eingabeaufforderung gestartet (vgl. Abbildung 1-10).
Abbildung 1-10Run-Menü und Eingabeaufforderung
Variante 2 – StartmenüÖffnen Sie das Startmenü des Computers. Klicken Sie dazu auf das Windows-Icon (oftmals in der unteren linken Ecke des Desktops) oder drücken Sie die Win-Taste. Es erscheint das Startmenü, in dem Sie cmd eintippen. In der Liste sollte die Eingabeaufforderung als oberster Eintrag angezeigt werden. Mit Enter oder durch Anklicken mit der Maus können Sie die Anwendung starten.
Abbildung 1-11Startmenü und Eingabeaufforderung
Resultat: EingabeaufforderungfensterUnabhängig von den beiden Wegen sollte sich ein Eingabeaufforderungfenster ähnlich zu dem in Abbildung 1-12 gezeigten öffnen. Nochmals zur Erinnerung: Für diese Eingabeaufforderung verwende ich als Abkürzung immer das $-Zeichen. Hier führen Sie Kommandos wie das Starten von Python oder die Installation von Python-Bibliotheken und Tools durch.
Abbildung 1-12Eingabeaufforderung
Um die im Text abgebildeten Python-Kommandos ausführen zu können, müssen Sie den Python-Kommandozeileninterpreter (auch REPL für Read-Eval-Print-Loop genannt) für Windows durch Eingabe von python starten. Nachfolgend ist das Ganze in Abbildung 1-13 nach dem Start von Python gezeigt. Alle im Buch mit >>> markierten Aktionen finden dann dort statt.
Abbildung 1-13Python in der Eingabeaufforderung starten
Sowohl für macOS als auch für Windows wird in einer Python-Installation das Programm IDLE (Integrated Development and Learning Environment) mitgeliefert, das eine (sehr) einfache grafische Oberfläche besitzt und mehr oder weniger ein Fenster rund um die Python-Kommandozeile ist. Nachfolgend zeige ich für die IDLE wiederum zuerst die Schritte für macOS und danach die für Windows.
Um die IDLE für macOS zu starten, folgen Sie dem bereits beschriebenen Vorgehen zum Starten des Terminal-Programms mithilfe von Finder. Wechseln Sie dort in das Verzeichnis Programme, wie es in Abbildung 1-14 angedeutet ist.
Abbildung 1-14IDLE im Programme-Verzeichnis
Danach wählt man das zur gewünschten Python-Version korrespondierende Verzeichnis, hier Python 3.13. Dort befindet sich dann ein Programm namens IDLE, dass sich durch Doppelklick starten lässt.
Nach dem Starten der IDLE (vgl. Abbildung 1-15) kann man Experimente analog zum Python-Kommandozeileninterpreter durchführen.
Abbildung 1-15IDLE unter macOS
Um die IDLE für Windows zu starten, folgen Sie dem zuvor beschriebenen Weg für das Startmenü, wo Sie im Suchfeld IDLE eintippen. In der Liste sollte das Programm als oberster Eintrag erscheinen, wie es Abbildung 1-16 zeigt.
Abbildung 1-16IDLE im Programme-Verzeichnis
Mit Enter oder durch Anklicken können Sie die IDLE starten (vgl. Abbildung 1-17) und Experimente analog zum Python-Kommandozeileninterpreter durchführen.
Abbildung 1-17IDLE unter Windows
Abschließend sei noch angemerkt, dass das Bearbeiten mit der IDLE nicht wirklich komfortabel ist. Diese Möglichkeit, Python-Programme zu bearbeiten, erwähne ich nur der Vollständigkeit halber. Je intensiver Sie Python nutzen wollen, desto mehr empfiehlt sich der Einsatz einer Entwicklungsumgebung, auch IDE genannt. Das Thema behandle ich im Anschluss.
Bevor es mit dem Thema Entwicklungsumgebung, auch IDE (Integrated Development Environment) genannt, losgeht, sei noch auf Folgendes hingewiesen: Generell werden wir uns in diesem Buch nicht allzu stark mit IDEs beschäftigen. Somit ist sowohl die Installation einer IDE als auch die Lektüre dieses Unterkapitels optional. Sie können es daher zunächst überspringen und bei Bedarf später hierher zurückkehren.
Bislang haben wir zum Ausführen von Python-Programmen folgende Varianten kennengelernt: den Python-Kommandozeileninterpreter, die Python-IDLE sowie die Ausführung als Skript mit vorherigem Erstellen und Bearbeiten von Python-Anweisungen in einem Texteditor. Tatsächlich reichen diese Varianten für viele Experimente und für einen unbeschwerten Start vollkommen aus. Das gilt ebenfalls für viele der im Buch enthaltenen Beispiele. Nachfolgend möchte ich Ihnen das Thema Entwicklungsumgebung/IDE trotzdem schon einmal einführend näherbringen, weil Sie nach den ersten Schritten im Python-Kommandozeileninterpreter vermutlich mehr Komfort und bessere Unterstützung beim Entwickeln suchen.
Je intensiver Sie sich mit Python und dem Programmieren auseinandersetzen, desto mehr werden die Komplexität und der Umfang Ihrer Programme wachsen. Ab einem gewissen Punkt steht der Komfort, mit einer IDE zu arbeiten, in keinem Vergleich zu Texteditoren oder dem Programmieren ausschließlich über die Kommandozeile. Allerdings ist das zugegebenermaßen für den ersten Einstieg noch nicht nötig. Denn für kleine Experimente ist gerade der Python-Kommandozeileninterpreter ein wunderbares Hilfsmittel, das wir zum Einstieg bevorzugt nutzen werden.
Ab Kapitel 4 werden die Programme tendenziell etwas umfangreicher. In solchen Fällen lohnt es sich zur Bearbeitung eher, eine IDE einzusetzen. Die folgende Tabelle zeigt Ihnen, in welchen Kapiteln für die Beispiele vorwiegend der Python-Kommandozeileninterpreter (man spricht auch von REPL für Read-Eval-Print-Loop) und/oder die IDE genutzt bzw. die Programme dort ausgeführt werden.
Kapitel
Einsatz REPL / IDE
Kapitel 2 Schnelleinstieg
REPL
Kapitel 3 Strings
REPL
Kapitel 4 Klassen und Objektorientierung
REPL + IDE
Kapitel 5 Collections
REPL
Kapitel 6 Ergänzendes Wissen
REPL
Kapitel 7 Verarbeitung von Dateien
REPL + IDE
Kapitel 8 Collections Advanced
REPL + IDE
Kapitel 9 Fehlerbehandlung
REPL + IDE
Kapitel 10 Datumsverarbeitung
REPL + IDE
Kapitel 11 Bildverarbeitung und Kontakt zur Außenwelt
REPL + IDE
Kapitel 12 LLMs mit Python im Kurzüberblick
REPL + IDE
Für Änderungen an größeren Python-Programmen kann man zwar auch einmal einen Texteditor nutzen, aber dieser bietet nicht den Komfort einer IDE: In IDEs laufen verschiedene Sourcecode-Analysen automatisch und im Hintergrund ab, wodurch gewisse Defekte direkt während des Modifizierens von Sourcecode (auch Editieren genannt) erkannt und passend angezeigt werden können. Es liegt an Ihnen, diese dann auch zeitnah zu beheben. :-) Darüber hinaus bieten IDEs weitere Annehmlichkeiten wie Quick Fixes zur Korrektur kleinerer Probleme sowie automatische Transformationen und Änderungen von Sourcecode, sogenannte Refactorings.
Momentan besitzt PyCharm eine Vorreiterrolle bei den Python-IDEs. Es basiert auf dem für Java populären IntelliJ IDEA. Praktischerweise bietet PyCharm eine kostenlose Community Edition, die für die Aufgabenstellungen dieses Buchs vollkommen ausreicht. Das gilt sogar teilweise noch für professionelles Arbeiten – nur bei hohen Ansprüchen empfiehlt sich die kostenpflichtige Ultimate Edition. Mehr Informationen zu PyCharm sowie zum Download finden Sie im Anschluss.
Wenn Sie bereits ein wenig Erfahrung haben, dann sind Sie natürlich frei, auch andere IDEs auszuprobieren. Vieles geht über persönliche Präferenzen.
Öffnen Sie die Seite https://www.jetbrains.com/pycharm. Diese präsentiert sich ähnlich zur folgenden Abbildung 1-18. Dort finden Sie oben rechts sowie unten links je einen Download-Button, von denen Sie bitte einen drücken.
Abbildung 1-18PyCharm-Hauptseite zum Download
Dadurch wird die Download-Seite geöffnet (vgl. Abbildung 1-19).
Abbildung 1-19PyCharm-Hauptseite zum Download (Fortsetzung)
Hier können Sie unter anderem die Version für das gewünschte Betriebssystem sowie die kostenlose Community Edition oder die kostenpflichtige Ultimate Edition auswählen. Ein Klick auf den jeweiligen Download-Button startet dann den Download.
Nachdem der Download abgeschlossen ist, entpacken oder starten Sie bitte das heruntergeladene ZIP, DMG oder die Datei im jeweiligen Unix-Format. Für macOS wird ein Fenster geöffnet, in dem Sie das Programm per Drag and Drop in den Programme-Ordner verschieben können. Im Falle von Windows installieren Sie PyCharm bitte über die .exe-Datei. Der Einfachheit halber klicken Sie alle Optionen unter »Installation Options« an (64-bit launcher, add launchers dir to the PATH etc.). Ansonsten können Sie die vorgeschlagenen Werte übernehmen. Nach der Installation (und gegebenenfalls einem Neustart) lässt sich PyCharm über das Startmenü oder das Desktop-Icon öffnen.
Nach den beschriebenen Installationsschritten sollte Ihnen nun PyCharm als Programm im Startmenü bzw. der Programmauswahl zur Verfügung stehen. Starten Sie es bitte, etwa durch einen Doppelklick auf das Programm-Icon.
Bei macOS erhalten Sie gegebenenfalls einen Warnhinweis, dass es sich um ein aus dem Internet heruntergeladenes Programm handelt. Diesen können Sie ignorieren und wie in Abbildung 1-20 dargestellt durch einen Klick auf Öffnen fortfahren.
Abbildung 1-20Warnmeldung (macOS)
Als Nächstes öffnet sich der Startbildschirm von PyCharm (vgl. Abbildung 1-21), der sich je nach Version leicht unterschiedlich präsentiert. Hier werden verschiedene Optionen angeboten, etwa das Anlegen neuer Projekte oder das Öffnen bestehender.
Beginnen wir mit ein paar Begrifflichkeiten: Ein Projekt bündelt verschiedene Dateien, insbesondere solche mit Python-Kommandos, aber auch Texte, Bilder usw. Eine Datei, die Python-Kommandos, beispielsweise Variablendefinitionen, Funktionen und weitere Anweisungen enthält, nennt man Modul und im Dateisystem enden diese standardmäßig mit .py. Der zugehörige Modulname ergibt sich aus dem Dateinamen, allerdings ohne die Endung .py.
Abbildung 1-21Projekt anlegen oder öffnen
Wenn Sie bereits Projekte erstellt oder importiert haben, dann sehen Sie statt der vorherigen Abbildung in etwa folgende Darstellung (vgl. Abbildung 1-22).
Abbildung 1-22Projektliste mit Auswahl zum Projekt anlegen oder öffnen
Im Anschluss wollen wir uns dem Anlegen eines Projekts und eines ersten Python-Moduls widmen, um die Abläufe exemplarisch einmal durchzuspielen, die für spätere Aktionen notwendig sind.
Beginnen wir mit dem Anlegen eines Python-Projekts. Klicken Sie zunächst auf den Button New Project. Zum Anlegen eines Projekts öffnet sich folgender Dialog, in dem Sie im Textfeld Name den gewünschten Namen des Projekts, hier MyFirstPythonProject, eintragen. Zudem müssen Sie die zu verwendende Python-Installation angeben und dazu gegebenenfalls das passende Installationsverzeichnis wählen. Zum Schluss empfiehlt es sich, für erste Experimente das Erzeugen eines initialen Python-Moduls (Create a welcome script) per Checkbox zu aktivieren. All dies ist durch Pfeile in der Abbildung 1-23 gekennzeichnet.
Abbildung 1-23Dialog »New Project«
Unser erstes Python-Projekt ist jetzt angelegt und bereit, um mit Leben in Form von Modulen, also Dateien mit der Endung .py, die Python-Anweisungen enthalten, gefüllt zu werden. PyCharm sollte sich in etwa wie in Abbildung 1-24 präsentieren. Praktischerweise findet sich schon ein einfaches Grundgerüst als Datei main.py, die bereits ein paar Python-Kommandos enthält (siehe rechte Seite der Abbildung). Mit diesen können Sie Ihre ersten Experimente beginnen.
Abbildung 1-24Neu angelegtes Projekt
Der Ausgangspunkt zum Anlegen eines neuen Moduls / einer Python-Datei ist die Baumdarstellung des Project Explorer auf der linken Seite in Abbildung 1-25. Dort öffnen Sie (durch einen Rechtsklick oder Ctrl + Klick) ein Kontextmenü und klicken darin auf den Eintrag New > Python File.
Abbildung 1-25Kontextmenü zum Anlegen einer Python-Datei
Durch Auswahl des Kontextmenüs öffnet sich folgender Dialog zum Erzeugen einer neuen Python-Datei (vgl. Abbildung 1-26):
Abbildung 1-26Dialog zum Erstellen einer neuen Python-Datei
Im Dialog gibt man den gewünschten Dateinamen ein, woraufhin diese Datei dann erzeugt wird. Wir nutzen myfirstpythonmodule als Namen.
Nachdem das Grundgerüst steht, können Sie den Sourcecode aus den Beispielen in das Editorfenster auf der rechten Seite einfügen bzw. dorthin abtippen. Generell können Sie Programmschnipsel, die mit dem Python-Kommandozeileninterpreter demonstriert und ausgeführt wurden, alternativ ausprobieren, indem Sie die Programmzeilen im Editorfenster eintippen, wie es durch den großen Pfeil und die beiden Ausgaben mit print() in Abbildung 1-27 angedeutet ist.
Abbildung 1-27Sourcecode editieren
Abbildung 1-28Programm ausführen
Mithilfe des Run-Eintrags im Kontextmenü oder mithilfe des grünen Play-Pfeils (vgl. Abbildung 1-28) kann man die Ausführung starten. Allerdings muss beim ersten Mal immer über das Kontextmenü gestartet werden, weil dann eine Startkonfiguration angelegt wird. Diese erlaubt es, danach auch über den grünen Pfeil zu starten.
Bevor wir unsere Entdeckungsreise starten, möchte ich nochmals auf das Ausprobieren der Beispiele kurz eingehen.
Vielfach können Sie die abgebildeten Sourcecode-Schnipsel einfach in den Python-Kommandozeileninterpreter oder mithilfe eines Texteditors bzw. besser noch einer IDE eingeben. Nachfolgend motiviere ich ein wenig, wann die eine oder andere Art zu bevorzugen ist. Damit diese Formen leichter und direkt von Ihnen erkannt werden können, markiere ich die Eingaben in den Python-Kommandozeileninterpreter besonders.
Wie bereits bekannt, können Sie die Python-Anweisungen einfach in den Python-Kommandozeileninterpreter eintippen. Das ist normalerweise dadurch angedeutet, dass die einzugebenden Zeilen mit >>> markiert sind:
>>> print("Hello Python-REPL")
Hello Python-REPL
>>>
>>> def multiply(a, b):
... return a * b
...
>>> multiply(7, 2)
14
Auch spezielle Python-Funktionalitäten lassen sich mithilfe von import einbinden, etwa das Modul random für Zufallswerte (Details folgen in Kapitel 6):
>>> import random
>>>
>>> random.randrange(1, 49)
42
>>> random.choice(["Sekt", "Selters", "Apfelschorle"])
'Selters'
Dieses Vorgehen praktiziere ich bis maximal ca. 20 Zeilen. Danach empfiehlt es sich, zum Editieren einen Texteditor oder besser eine IDE zu verwenden.
Um konzeptionell etwas zu verdeutlichen, verzichte ich mitunter auf die exakte Darstellung im Python-Kommandozeileninterpreter, da die Anweisungen durch den Mix von Protokollierung mit >>> und den Zwischenergebnissen unübersichtlich wird. Dann nutze ich eine verkürzte Darstellung – die Anweisungen sind dabei einzeln in den Python-Kommandozeileninterpreter einzugegeben oder aber in einen Texteditor oder eine IDE.
import random
print(random.randrange(1, 49))
print(random.choice(["Sekt", "Selters", "Apfelschorle"]))
Werden die Programme länger, so gestaltet sich das Editieren mit dem Python-Kommandozeileninterpreter immer mühsamer. Hier kann ein Texteditor Abhilfe schaffen. Programme sind in dem Fall generell ohne >>> in etwa wie folgt abgebildet:
Diese Zeilen müssen dann exakt so (inklusive Einrückungen, die penibel beachtet werden müssen) abgetippt und als Python-Datei mit beliebigem Namen, aber inklusive der Endung .py, also hier etwa als random_lotto_example.py, abgespeichert werden.
Wird das Programm noch größer, so hilft es, eine main()-Funktion einzuführen und die zuvor definierten Funktionalitäten dort aufzurufen – hier ist das nur exemplarisch gezeigt. Das Einführen einer main()-Funktion ist vor allem auch dann sinnvoll, wenn auf die in dem Python-Modul bereitgestellten Funktionalitäten von anderen Modulen zugegriffen werden soll.
Die Anweisungen lassen sich durch einen Aufruf von python3 <dateiname>