Einstieg in Python - Michael Inden - E-Book

Einstieg in Python E-Book

Michael Inden

0,0
24,90 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.
Mehr erfahren.
Beschreibung

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:

EPUB
MOBI

Seitenzahl: 468

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



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

Einstieg in Python

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:

Print

978-3-98889-022-1

PDF

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.

Inhaltsverzeichnis

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

Vorwort

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.

Verbesserungen in dieser Auflage

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.

Erweiterungen in dieser Auflage

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.

Zielgruppe

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.

Was vermittelt dieses Buch?

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.

Aufbau dieses Buchs

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.

Einstieg

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.

Aufstieg

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.

Praxisbeispiele

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.

Schlussgedanken

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

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.

Konventionen

Verwendete Zeichensätze

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.

Verwendete Abkürzungen

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

Sourcecode und ausführbare Programme

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.

Verwendete Python-Version

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.

Kommentare

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.

Danksagung

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.

Anregungen und Kritik

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

IEinstieg

1Einführung

1.1Python im Überblick

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!

Bestandteile von Python-Programmen

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.

Gründe für die zunehmende Popularität von Python

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.

Zwischenfazit

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.

1.2Los geht’s – Installation

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.

1.2.1Python-Download

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.

1.2.2Installation von Python

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.

Python-Installation für Windows

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

Python-Installation für macOS

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.

1.2.3Nacharbeiten nach der Python-Installation

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.

Nacharbeiten für Windows

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.

Nacharbeiten für macOS

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

1.2.4Python-Installation prüfen

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

1.2.5Python-Programm als Skript ausführen

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

1.3Arbeiten mit der Kommandozeile (Kurzeinführung)

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.

1.3.1Für macOS

Terminal starten

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.

Python im Terminal starten

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

1.3.2Für Windows

Eingabeaufforderung 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

Python in der Eingabeaufforderung starten

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

1.3.3IDLE als Alternative

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.

Für macOS

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

Für Windows

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

Hinweis

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.

1.4Entwicklungsumgebung PyCharm (Optional)

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

Vorteile von Entwicklungsumgebungen

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.

1.4.1Installation von PyCharm

Ö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.

1.4.2PyCharm starten

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.

Begrifflichkeiten

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.

1.4.3Erstes Projekt in PyCharm

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«

1.4.4Erstes Modul in PyCharm

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

Neues Modul (Python-Datei) anlegen

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.

Sourcecode editieren

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

Programm ausführen

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.

1.5Ausprobieren der Beispiele

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.

1.5.1Python-Kommandozeileninterpreter

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.

Hinweis

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"]))

1.5.2Texteditor und direkte Ausführung

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.

Ausführung

Die Anweisungen lassen sich durch einen Aufruf von python3 <dateiname>