Python lernen – kurz & gut - Michael Inden - E-Book

Python lernen – kurz & gut E-Book

Michael Inden

0,0

Beschreibung

Der praktische Schnelleinstieg in die Python-Programmierung - Kompakt und verständlich vermittelt dieses Buch den Umgang mit Python 3 - Ein interaktiver Einstieg erlaubt direktes Ausprobieren und verschafft schnelle Erfolgserlebnisse - Sie lernen die Python-Grundlagen und einen guten Stil beim Entwickeln - Der Sourcecode, die Beispiele und ergänzende umfangreiche Praxisprojekte sind als Download verfügbar und erleichtern das Verständnis Dieses Buch ist für vielbeschäftigte Programmierer:innen, die eine knappe und dennoch gut verständliche Einführung in Python als immer populärer werdende Programmiersprache suchen. Python lernen – kurz & gut bietet einen unterhaltsamen Einstieg und informiert Sie über viele Python-Bestandteile, die Ihnen helfen werden, schnell durchzustarten: - Installation von Python - Schnelleinstieg in die wichtigsten Aspekte - Basisbausteine wie Strings, Enums, Zufallszahlen, Fallunterscheidungen und Schleifen - Klassen und objektorientierte Programmierung - Datencontainer wie Listen, Mengen und Tupel - Fortgeschrittene Themen zu Collections wie Iteratoren, Generatoren, Slicing, Sortierungen und Comprehensions - Datumsverarbeitung inklusive Berechnungen - Dateiverarbeitung und JSON sowie Behandlung von Fehlern Trotz seines kompakten Formats liefert dieses Buch eine fundierte Einführung und eine Fülle an leicht nachvollziehbaren Beispielen, die zum Experimentieren einladen. Es unterstützt Sie optimal dabei, Ihre Python-Kenntnisse auf- und auszubauen. Insbesondere wenn Sie bereits ein wenig mit z.B. Java oder C++ vertraut sind, ist dieses Buch die ideale Wahl, um solide in Python einzusteigen.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern
Kindle™-E-Readern
(für ausgewählte Pakete)

Seitenzahl: 264

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
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.

Beliebtheit




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.

Python lernen

kurz & gut

Michael Inden

Michael Inden

[email protected]

Lektorat: Dr. Michael Barabas

Projektkoordinierung: Anja Ehrlich

Copy-Editing: Ursula Zimpfer, Herrenberg

Satz: Michael Inden

Herstellung: Stefanie Weidner

Umschlaggestaltung: Karen Montgomery, Michael Oréal, www.oreal.de

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-96009-203-2

PDF

978-3-96010-720-0

ePub

978-3-96010-721-7

mobi

978-3-96010-722-4

1. Auflage 2023

Copyright © 2023 dpunkt.verlag GmbH

Wieblinger Weg 17

69123 Heidelberg

Dieses Buch erscheint in Kooperation mit O’Reilly Media, Inc. unter dem Imprint »O’REILLY«. O’REILLY ist ein Markenzeichen und eine eingetragene Marke von O’Reilly Media, Inc. und wird mit Einwilligung des Eigentümers verwendet.

Hinweis:

Dieses Buch wurde mit mineralölfreien Farben auf PEFC-zertifiziertem Papier aus nachhaltiger Waldwirtschaft gedruckt. Der Umwelt zuliebe verzichten wir zusätzlich auf die Einschweißfolie.

Hergestellt in Deutschland.

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.

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.

5 4 3 2 1 0

In Erinnerung an meine geliebte Mutter Marianne Inden.Vielen Dank für deine bedingungslose Liebeund Unterstützung.

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 Installation

1.2.4Python-Installation prüfen

1.2.5Python-Programm als Skript ausführen

1.3Entwicklungsumgebungen

1.3.1Installation von PyCharm

1.3.2PyCharm starten

1.3.3Erstes Projekt in PyCharm

1.3.4Erstes Modul in PyCharm

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.10 Schleifen

2.10.1 Besonderheit: Ranges

2.10.2 Indexbasierte for-in-Schleife

2.10.3 Wertebasierte for-in-Schleife

2.10.4 Die for-in-enumerate-Schleife mit Index und Wert

2.10.5 Die while-Schleife

2.11 Weiterführende Informationen

3Strings

3.1Schnelleinstieg

3.1.1Gebräuchliche Stringaktionen

3.1.2Suchen 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

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.2Imports und Packages

4.2.3Übergang zum Einsatz einer IDE

4.2.4Verstecken von Informationen

4.2.5Packages: Auswirkungen auf unsere Applikation

4.3Vererbung

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

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

6.9.2Weiterführendes Beispiel: Fibonacci-Zahlen

6.9.3Praxisbeispiel: Flächen füllen

IIAufstieg

7Collections Advanced

7.1Sequenzielle Datentypen

7.2Iteratoren

7.3Generatoren

7.4Datencontainer mit namedtuple

7.5Einstieg in Lambdas

7.5.1Syntax von Lambdas

7.5.2Lambdas im Einsatz mit filter() und map()

7.5.3Lambdas im Einsatz mit sort()

8Verarbeitung von Dateien

8.1Schnelleinstieg

8.1.1Anlegen von Dateien und Verzeichnissen

8.1.2Aktuelles Verzeichnis wechseln

8.1.3Aktuelles Verzeichnis und absoluten Pfad ermitteln

8.1.4Inhalt eines Verzeichnisses auflisten

8.1.5Pfad ist Datei oder Verzeichnis?

8.1.6Auf Existenz prüfen

8.1.7Informationen in Dateien schreiben und daraus lesen

8.1.8Einfluss der Verarbeitungsmodi

8.1.9Diverse Informationen ermitteln

8.1.10 Kopieren

8.1.11 Umbenennen

8.1.12 Löschen

8.2JSON-Verarbeitung

8.2.1JSON in eine Datei schreiben

8.2.2Lesen von JSON aus einer Datei

8.2.3Pretty Printing

9Fehlerbehandlung mit Exceptions

9.1Schnelleinstieg

9.1.1Fehlerbehandlung

9.1.2Exceptions selbst auslösen – raise

9.1.3Eigene Exception-Typen definieren

9.1.4Propagation von Exceptions

9.2Fehlerbehandlung in der Praxis

9.2.1Elegante Prüfungen mit assert

9.3Automatic Resource Management (with)

10Datumsverarbeitung

10.1 Schnelleinstieg

10.1.1 Zeitpunkte und die Klasse datetime

10.1.2 Datumswerte und die Klasse date

10.1.3 Zeit und die Klasse time

10.1.4 Zeitdifferenzen und die Klasse timedelta

10.1.5 Berechnungen mit Datumswerten

10.1.6 Formatierung und Parsing

IIIAnhang

ASchlüsselwörter im Überblick

BSchnelleinstieg Python-REPL

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. Das Ganze startet bei den Grundlagen und darauf wird Ihr Wissen immer weiter ausgebaut, sodass Sie nach der Lektüre in der Lage sind, eigene Experimente zu wagen, und bestenfalls 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.

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.

Zum Einstieg sind Programmiererfahrungen keine zwingende Voraussetzung – natürlich schaden diese nicht. Selbst dann nicht, wenn Sie sich vielleicht eher mit Java, C#, TypeScript oder JavaScript beschäftigt haben. Für die Lektüre des Buchs ist es 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 viele kleine Beispiele helfen dabei, Sachverhalte leichter nachzuvollziehen. Ich ermutige Sie ganz besonders, 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 entweder direkt im Python-Kommandozeileninterpreter oder im Editor Ihrer Entwicklungsumgebung/IDE (Integrated Development Environment) einzugeben.

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.

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. Für Ihren erfolgreichen Weg zur Python-Programmierung gliedert sich das Buch in die beiden Teile Einstieg und Aufstieg.

Im Teil »Einstieg« werden eine Vielzahl an Grundlagen behandelt. Hier empfiehlt es sich wirklich, die Kapitel in der Reihenfolge des Buchs zu lesen, da mit jedem Kapitel neue Grundlagen und Themen hinzukommen, die im Anschluss vorausgesetzt und verwendet werden.

Dann folgt der Teil »Aufstieg«. Dort beschäftigen wir uns mit leicht fortgeschrittenen Themen. Hier können Sie zwar nach Lust und Laune eins der Kapitel zur Lektüre auswählen, aber auch hier bauen einige Themen aufeinander auf.

Das Buch endet dann 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 können, müssen wir einige Dinge installieren: Zum einen benötigen wir Python an sich und zum anderen wird eine Entwicklungsumgebung/IDE 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 nehmen wir ganz behutsam Fahrt auf: Wir beginnen mit einer einfachen Ausgabe eines Textes, ganz traditionell »Hello World«, und lernen dann, wie wir das mithilfe von Variablen variieren. Zudem schauen wir uns die bedingte Ausführung 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, das 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 bei der Verwaltung anderer Objekte.

Kapitel 6 – Ergänzendes WissenIn diesem Kapitel werden verschiedene wichtige 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 viel anderes Wissen 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.

Aufstieg

Kapitel 7 – Collections AdvancedDieses Kapitel beschreibt diverse Funktionalitäten rund um Collections. Dort gehen wir beispielsweise auf sequenzielle Datentypen, Iteratoren und Generatoren ein. Spezielle benannte Datencontainer lassen sich mit Named Tuples erzeugen.

Kapitel 8 – 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 diverse Informationen 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 9 – Fehlerbehandlung mit ExceptionsVielleicht kennen Sie es schon: Manchmal tritt ein Programmfehler auf und das Programm stürzt ab. Wichtige Daten gehen mitunter verloren. So etwas ist immer ärgerlich. Daher gehört auch 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 zur Datumsverarbeitung, die in diesem Kapitel einführend dargestellt werden.

Kapitel 11 – SchlusswortHier rekapitulieren wir kurz, was Sie durch die Lektüre 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, Methoden, Klassen oder 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.

Sourcecode und ausführbare Programme

Ich hatte schon angedeutet, dass es zum Erlernen des Programmierens hilfreich ist, die Beispiele und Sourcecode-Schnipsel auch auszuprobieren und abzutippen. Um Ihnen ein wenig Tipparbeit und Mühe zu sparen, finden Sie viele der Beispiele als Programme in einem PyCharm-Projekt, das unter https://oreilly.de/produkt/python-lernen-kurz-gut/zur Verfügung steht. Dort erhalten Sie auch weitere Informationen zum genauen Vorgehen.

Verwendete Python-Version

Die Beispiele dieses Buchs wurden mit der im Frühjahr 2023 aktuellen Version 3.11 von Python entwickelt. 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.10 oder 3.9 funktionieren.

Blockkommentare

Beachten Sie bitte, dass sich in den abgebildeten Programmen immer wieder diverse Blockkommentare (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 Leserin oder Leser vermutlich noch neu und ungewohnt sind.

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 Funktionen, Klassen, Methoden, Variablen und Parameter diese Schriftart genutzt.

Danksagung

Dieses Buch basiert auf meinem Buch »Einfach Python« [1], das in weiten Teilen leicht überarbeitet wurde und somit ein Facelift erfahren hat. Dazu wurden einige Passagen ergänzt, modifiziert, potenziell missverständliche Formulierungen korrigiert und kleinere Teile auch entfernt, um dem Text mehr Stringenz zu verleihen und sich in die Kurz-und-gut-Serie einzupassen.

Aufgrund der Basis »Einfach Python« möchte ich hier den Dank aus dem Buch wiederholen. Somit geht mein Dank an Michael Kulla, der mich wieder einmal ganz besonders unterstützt hat, wie üblich breitgefächert vom Aufdecken von Tippfehlern bis hin zu diversen inhaltlichen Hinweisen.

Selbstverständlich geht ein Dankeschön an das Team des dpunkt.verlags (Dr. Michael Barabas, Anja Ehrlich und Stefanie Weidner) für die tolle Zusammenarbeit. Außerdem möchte ich mich 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 kleiner Sonnenschein Sophie Jelena 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:

[email protected]

Zürich, im März 2023

Michael Inden

IEinstieg

1Einführung

1.1Python im Überblick

Python wurde Anfang der 1990er-Jahre von Guido von Rossum als Skriptsprache entwickelt und 1994 in der Version 1.0 veröffentlicht. Mittlerweile hat Python zwar schon mehr als 25 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 2022 in Version 3.11 vor. Erst im Februar 2023 hat Python ein Update auf die Version 3.11.2 erfahren.

Hinweis: Python 2

Tatsächlich findet man immer noch Projekte und Informationen zur Vorgängerversion Python 2. Das neuere Python 3 ist an einigen Stellen nicht rückwärtskompatibel, bietet aber modernere Konzepte und sollte für Neuentwicklungen bevorzugt werden.

In den letzten Jahren wurde Python immer beliebter und ist mittlerweile laut TIOBE-Popularitätsindex1 die populärste Programmiersprache. Stand März 2023 hat Python dort den 1. Platz inne, und das sogar bereits seit einigen Monaten. Java als langjähriger Spitzenreiter bzw. Zweitplatzierter wurde somit von Python überholt. Eine wichtige Rolle spielt vermutlich die freie Verfügbarkeit für alle relevanten Betriebssysteme. Zudem ist Python recht einfach zu erlernen (zum Einstieg deutlich einfacher als Java und insbesondere als C++). Auch in der Forschung und Lehre wird Python zunehmend populärer und gewinnt an Bedeutung. Schließlich ermöglicht Python sowohl die objektorientierte als auch die funktionale Programmierung, sodass man je nach Einsatzzweck geeignet wählen kann.

Außerdem 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 wie eine natürliche Sprache auch eine Grammatik und feststehende Begriffe/Wörter. Man spricht dabei von Syntax und Schlüsselwörtern (vgl. Anhang A).

In Python werden Programme textuell verfasst. Man spricht auch von Sourcecode. Schauen wir uns zum Einstieg zwei einfache Python-Programme an. 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 Konsole:

print("Hello world!")

Diese Zeile speichern Sie etwa in einer Datei helloworld.py und können diese später dann ausführen. Das schauen wir uns in Kürze an.

Die gezeigte Funktionalität lässt sich auch ein wenig komplizierter folgendermaßen im objektorientierten Stil mithilfe einer Klasse verfassen:

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, erlernen u. v. m. im Deutschen.

Ebenso wie im Deutschen können (oder besser sollten) die Begriffe nicht einfach wahllos miteinander verknüpft werden, denn dann ergibt dies 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(), aber nicht greet() def heißen muss.

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 dann auch von Blöcken.

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 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 existiert ein interaktiver Modus. Dieser steht nach der im Anschluss (vgl. Abschnitt 1.2) beschriebenen Installation automatisch zur Verfügung.

Python startet man im interaktiven Modus von der Kommandozeile mit dem Aufruf python (Windows) bzw. python3 (macOS). Dies sollte in etwa wie folgt protokolliert werden:

$ python3

Python 3.11.2 (v3.11.2:878ead1ac1, Feb 7 2023, 10:02:41) [Clang 13.0.0 (clang-1300.0.29.30)] on darwin

Type "help", "copyright", "credits" or "license" for more information.

>>>

Bitte beachten Sie diese beiden Dinge: Im folgenden Text nutze ich immer das $-Zeichen zur Kennzeichnung von Eingaben auf der Konsole. Außerdem zeigen die drei >>> an, dass Python nun auf Ihre Befehle wartet. In diesem Modus können Sie kleinere Berechnungen und Programme 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

Wie bereits angedeutet können Sie alternativ die abgebildeten Zeilen auch in einer Datei mit der Endung .py speichern und dann folgendermaßen ausführen – mehr Details zu dieser skriptbasierten Ausführung behandelt dann Abschnitt 1.2.5:

$ python3 <dateiname>.py

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 nur eine überschaubare Anzahl an Befehlen (Schlüsselwörter genannt).

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 Tools und Frameworks sowie Bibliotheken, die für eine Programmiersprache existieren. Lange Zeit war hier Java vorbildlich und extrem stark. Python holt diesbezüglich aber stetig auf und es gibt diverse gute Entwicklungstools und weitere Bibliotheken, viele vor allem im Bereich AI (Artificial Intelligence) und ML (Machine Learning).

Zwischenfazit

Genug der vielen Informationen. Nachfolgend werden wir die Dinge gründlich und detailliert besprechen und didaktisch immer ein neues Themengebiet ergründen, bis wir schließlich einen guten Einstieg in die Python-Programmierung vollzogen haben werden. Vorab wollen wir aber erst einmal Python selbst und die IDE namens PyCharm installieren und erste Schritte ausführen, um für unsere weitere Entdeckungsreise gewappnet zu sein.

1.2Los geht’s – Installation

In diesem Buch wird bevorzugt ein Hands-on-Ansatz verfolgt, bei dem Dinge oftmals in Form kleinerer Python-Codeschnipsel direkt ausprobiert werden. Dazu sind vorab keine tiefgreifenden Programmiererfahrungen nötig, allerdings schaden diese natürlich nicht, ganz im Gegenteil. Hilfreich wäre allerdings, 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.

1.2.1Python-Download

Auf der Webseite https://www.python.org/ ist die aktuelle Python-Version frei verfügbar.

Abb. 1–1: Python-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 also das heruntergeladene Installationsprogramm aus (z. B. python-3.11.2-amd64.exe). Damit wird Python installiert. Akzeptieren Sie die Standardeinstellungen und befolgen Sie die Anweisungen während der Installation. In einem Schritt kann auch angeklickt werden, dass der Pfad gesetzt werden soll. Das sollten Sie unbedingt anklicken, um spätere Aktionen und Änderungen an den Systemeinstellungen zu vermeiden.

Abb. 1–2: Python-Installation für Windows

Python-Installation für macOS

Unter macOS doppelklicken Sie auf die heruntergeladene .pkg-Datei (z. B. python-3.11.2-macos11.pkg), 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 Installation

Damit Python bei Ihnen nach der Installation auch auf der Konsole korrekt funktioniert, sind mitunter noch ein paar Nacharbeiten nötig. Dazu müssen wir Python zur leichteren Handhabung in den Pfad aufnehmen. Dies wird nachfolgend für die weitverbreiteten Betriebssysteme Windows und macOS beschrieben. Falls Sie ein Unix-Derivat nutzen, dann finden Sie dort – wie bereits erwähnt – oftmals schon eine aktuelle Version von Python vorinstalliert.

Nacharbeiten für Windows

Sofern nicht bereits während der Installation angeklickt, muss noch das Installationsverzeichnis in die Umgebungsvariable PATH aufgenommen werden. Diese können Sie unter »Umgebungsvariablen« ä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 rechts auf den Button »Neu« und fügen dort zwei Verzeichnisse hinzu: Zum einen das Installationsverzeichnis, das standardmäßig etwa so aussieht: C:\Users\MINDEN\AppData\Local\Programs\Python\Python311. Zum anderen das Unterverzeichnis Scripts, für das der Eintrag ungefähr wie folgt lautet: C:\Users\MINDEN\AppData\Local\Programs\Python\Python311\Scripts. Nach dem Schließen des Dialogs mit »OK« sollte das Ganze dann in etwa so aussehen:

Abb. 1–3: Umgebungsvariablen bearbeiten

Beachten Sie bitte Folgendes: Bestätigen Sie die gesamten Dialoge bitte immer mit »OK«, sodass die Variablen gesetzt sind. Eventuell geöffnete Konsolen müssen geschlossen und neu geöffnet werden, um die geänderten Variablen wirksam werden zu lassen.

Weitere Informationen finden Sie online 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, sodass keine manuelle Nacharbeit notwendig sein sollte.

Ansonsten können Sie diese Verweise im Pfad von Hand ausführen, indem Sie nachfolgende Kommandos eingeben:

export PYTHON_HOME=/Library/Frameworks/Python.framework/Versions/3.11/

export PATH=$PYTHON_HOME/bin:$PATH

Alternativ können Sie diese Anweisungen in das Startskript Ihrer Shell eintragen, nachdem Sie dieses mit den Kommandos open ~/.bash_profile oder neuer open ~/.zshrc in einem Texteditor geöffnet haben.

1.2.4Python-Installation prüfen

Nachdem Sie die obigen Schritte ausgeführt haben, sollte Python auf Ihrem Rechner installiert und von der Konsole startbar sein und Sie damit bereit sein für die nächsten Schritte.

Öffnen Sie eine Konsole und geben Sie das unten stehende Kommando ein – im folgenden Text nutze ich immer das $-Zeichen zur Kennzeichnung von Eingaben auf der Konsole, also der Windows-Eingabeaufforderung (python) und dem Terminal bei macOS (python3) wie folgt:

$ python3

Python 3.11.2 (v3.11.2:878ead1ac1, Feb 7 2023, 10:02:41) [Clang 13.0.0 (clang-1300.0.29.30)] 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() wie folgt, um noch die skriptbasierte Ausführung kurz kennenzulernen.

>>> exit()

1.2.5Python-Programm als Skript ausführen

Wie schon erwähnt, kann man Python-Programme auch Zeile für Zeile ausführen lassen. Dazu kann man die Python-Anweisungen zunächst mit einem Texteditor eingeben, beispielsweise folgende Anweisungen:

print("Herzlich willkommen zu 'Python lernen kurz und gut'")

print("Viel Spaß wünscht Ihnen Michael Inden")

Speichern Sie dies als welcome.py ab. Danach können Sie die Anweisungen unter macOS mit python3 starten – für Windows nutzen Sie python.

$ python3 welcome.py

Python lädt und analysiert daraufhin das Programm aus der Datei welcome.py und gibt als Folge diese Meldungen aus:

Herzlich willkommen zu 'Python lernen kurz und gut'

Viel Spaß wünscht Ihnen Michael Inden

1.3Entwicklungsumgebungen

Zum Schreiben von umfangreicheren Python-Programmen (also zum Bearbeiten von viel Sourcecode) empfehle ich den Einsatz einer IDE anstelle von Texteditoren oder anstatt rein auf der Konsole zu arbeiten. Für kleine Experimente ist aber gerade der Python-Kommandozeileninterpreter ein wunderbares Hilfsmittel.

Für Änderungen an größeren Python-Programmen kann man zwar auch mal einen Texteditor nutzen, aber dieser bietet nicht die Annehmlichkeiten einer IDE: In IDEs laufen verschiedene Aktionen und Sourcecode-Analysen automatisch und im Hintergrund ab, wodurch gewisse Softwaredefekte direkt noch während des Editierens erkannt und etwa in einer To-do-/Task-Liste angezeigt werden können. Es liegt an Ihnen, diese dann auch zeitnah zu beheben :-)

IDEs bieten diverse weitere Annehmlichkeiten wie Quick Fixes zur Korrektur kleinerer Probleme sowie automatische Transformationen und Änderungen von Sourcecode, sogenannte Refactorings.

Für Python existieren verschiedene IDEs. Momentan besitzt PyCharm ganz klar eine Vorreiterrolle. Es basiert auf dem für Java populären IntelliJ IDEA. Praktischerweise gibt es PyCharm als kostenlose Community Edition sowie als kostenpflichtige Ultimate Edition. Mehr Informationen zu PyCharm sowie zum Download finden Sie im Anschluss und unter https://www.jetbrains.com/pycharm/.

Wenn Sie bereits ein wenig Erfahrung haben, dann sind Sie natürlich frei, sich andere IDEs anzuschauen und diese auszuprobieren. Vieles geht über persönliche Präferenzen.

1.3.1Installation von PyCharm

Öffnen Sie die Seite https://www.jetbrains.com/pycharm/. Diese präsentiert sich ähnlich zur folgenden Abbildung 1–4. Dort finden Sie oben rechts sowie zentral je einen Download-Button, von denen Sie bitte einen drücken.

Hinweis: Möglicherweise leicht abweichende Screenshots

Denken Sie bitte daran: Bei Ihnen können die nachfolgend gezeigten Abbildungen leicht abweichen, insbesondere, wenn Sie Windows verwenden. Die Screenshots wurden unter macOS Monterey erstellt.

Dadurch wird die Download-Seite mit ein paar Auswahlmöglichkeiten geöffnet. 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.

Abb. 1–4: PyCharm-Hauptseite zum Download

Abb. 1–5: PyCharm-Hauptseite zum Download (Fortsetzung)

Nachdem der Download abgeschlossen ist, entpacken oder starten Sie bitte das jeweilige heruntergeladene ZIP, DMG oder die Datei im jeweiligen Unix-Format. Für macOS wird ein Fenster geöffnet, wo 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 einem Reboot) können Sie PyCharm über das Startmenü oder das Desktop-Icon öffnen.

1.3.2PyCharm starten

Nach den beschriebenen Installationsschritten sollte Ihnen nun PyCharm als Programm im Startmenü bzw. in der Programmauswahl zur Verfügung stehen. Starten Sie es bitte, etwa durch einen Doppelklick auf das Programm-Icon.

Bei macOS erhalten Sie gegebenenfalls noch einen Warnhinweis, dass es sich um ein aus dem Internet heruntergeladenes Programm handelt. Diesen können Sie ignorieren und durch einen Klick auf Öffnen fortfahren.

Abb. 1–6: Warnmeldung (macOS)

Als Nächstes öffnet sich der Startbildschirm von PyCharm, der sich je nach Version leicht unterschiedlich präsentiert. Hier werden verschiedene Optionen angeboten, etwa das Anlegen neuer Projekte oder das Öffnen bestehender.

Hinweis: Projektimport

Das Importieren des Begleitprojekts wird separat in der Beschreibung zum Download der Sourcen zu diesem Buch thematisiert.

Abb. 1–7: Projekt anlegen oder öffnen

Begrifflichkeiten

Beginnen wir mit ein paar Begrifflichkeiten: Ein Projekt bündelt verschiedene Dateien, insbesondere solche mit Python-Kommandos, aber auch Texte, Bilder usw. Dateien, die Python-Kommandos, beispielsweise Variablendefinitionen, Funktionen und weitere Anweisungen, enthalten, nennt man Module. Im Dateisystem enden diese standardmäßig mit .py. Der zugehörige Modulname ergibt sich aus dem Dateinamen, allerdings ohne die Endung .py.

Keine Sorge, Sie müssen noch nicht alles im Detail verstehen. Es entwickelt sich aber ein erstes Verständnis, das sich dann weiter vertieft, wenn Sie die nachfolgend beschriebenen Schritte häufiger ausführen.

Wenn Sie bereits Projekte erstellt oder importiert haben, dann sehen Sie statt der vorherigen in etwa folgende Darstellung:

Abb. 1–8: Projektliste 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.3.3Erstes Projekt in PyCharm

Beginnen wir mit dem Anlegen eines Python-Projekts. Klicken wir zunächst auf den Button New Project. Zum Anlegen eines Projekts öffnet sich folgender Dialog, in dem Sie unter Location am Ende den gewünschten Namen des Projekts, hier MyFirstPythonProject, eintragen. Zudem müssen Sie noch die zu verwendende Python-Installation angeben und dazu gegebenenfalls das passende Installationsverzeichnis wählen. Zum Schluss empfiehlt es sich, für erste Experimente noch das Erzeugen eines initialen Python-Moduls main.py per Checkbox zu aktivieren. All dies ist durch Pfeile in der Abbildung gekennzeichnet.

Abb. 1–9: Dialog »New Project«

1.3.4Erstes Modul in PyCharm

Unser erstes Python-Projekt ist jetzt angelegt und ist 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 folgt präsentieren.

Praktischerweise ist schon ein einfaches Grundgerüst als Datei main.py vorhanden, die bereits einige Python-Kommandos enthält. Mit diesen können Sie Ihre ersten Experimente beginnen.

Abb. 1–10: Neu angelegtes Projekt

Neues Modul (Python-Datei) anlegen

Ausgangspunkt zum Anlegen eines neuen Moduls, also einer Python-Datei, ist die Baumdarstellung auf der linken Seite im Project Explorer. Im Kontextmenü wählt man den Eintrag New > Python File.

Abb. 1–11: Kontextmenü zum Anlegen einer Python-Datei