Zum Hauptinhalt springen
Nicht aus der Schweiz? Besuchen Sie lehmanns.de

Funktionale Programmierung mit Python (eBook)

eBook Download: EPUB
2025 | 1. Auflage
356 Seiten
Carl Hanser Fachbuchverlag
978-3-446-48379-8 (ISBN)

Lese- und Medienproben

Funktionale Programmierung mit Python -  Bernd Klein,  Philip Klein
Systemvoraussetzungen
39,99 inkl. MwSt
(CHF 38,95)
Der eBook-Verkauf erfolgt durch die Lehmanns Media GmbH (Berlin) zum Preis in Euro inkl. MwSt.
  • Download sofort lieferbar
  • Zahlungsarten anzeigen
- Erweitern Sie Ihre Programmierfähigkeiten in Python - Erhöhen Sie mittels funktionaler Programmierung die Qualität Ihres Codes - Lernen Sie anhand zahlreicher praxisbezogener Übungsaufgaben - Mit Beispielen und Lösungen aus dem Buch auf der begleitenden Website - Vermeiden Sie Nebenwirkungen durch den Einsatz reiner Funktionen - Einführung in höherwertige Funktionen zur Steigerung der Programmier-Effizienz - Optimieren Sie Ihre Codes durch Lazy Evaluation und Generatoren - Ihr exklusiver Vorteil: E-Book inklusive beim Kauf des gedruckten Buches Das Buch bietet zahlreiche Vorteile für alle, die ihre Programmierkenntnisse vertiefen möchten. Es vermittelt grundlegende Konzepte wie Funktionen als erste Klasse Bürger, Unveränderlichkeit, Funktionskomposition und Funktionen höherer Ordnung. Dabei fördert es einen deklarativen Programmierstil, der die Skalierbarkeit von Anwendungen erleichtert und durch den Einsatz von Funktionen ohne Seiteneffekte die Codequalität verbessert. Zudem werden höhere Abstraktionen wie Dekoratoren, Generatoren, Closures, Memoisation und Currying ausführlich erklärt. Durch praxisnahe Beispiele und Übungen mit Lösungen wird die Anwendung dieser Konzepte deutlich erleichtert. Darüber hinaus behandelt das Buch auch die funktionale Emulation von OOP-Konzepten, was besonders bei komplexen Anwendungen von Nutzen ist. Insgesamt hilft es dabei, das Verständnis für diese fortgeschrittenen Themen zu vertiefen und die Programmierfähigkeiten in verschiedenen Kontexten effektiv anzuwenden. AUS DEM INHALT // - Einführung in Python unter funktionalen Aspekten - Collections-Modul - Dataclasses und Pattern Matching - Funktionen höherer Ordnung - Dekoratoren _ Memoisation - Closures - Komposition von Funktionen - Currying in Python - Funktionale Emulation von OOP-Konzepten - Generatoren und Iteratoren - Iteratoren der Standardbibliothek - Das Modul itertools

Der Diplom-Informatiker Bernd Klein genießt internationales Ansehen als Python-Dozent. Bisher hat er über 500 Python-Kurse in Firmen, Forschungsinstituten und Lehraufträgen von Universitäten in Deutschland, Frankreich, der Schweiz, Österreich, den Niederlanden, Luxemburg, Rumänien und Kanada durchgeführt. Er ist Gründer und Inhaber des Schulungsanbieters Bodenseo. Große Aufmerksamkeit finden seine Python-Webseiten www.python-kurs.eu und www.python-course.eu mit jährlich über 6 Millionen Besuchenden. The computer scientist Bernd Klein enjoys an international reputation as a Python lecturer. To date, he has conducted over 500 Python courses in companies, research institutes and teaching positions at universities in Germany, France, Switzerland, Austria, the Netherlands, Luxembourg, Romania and Canada. He is the founder and owner of the training provider Bodenseo. His Python websites www.python-kurs.eu and www.python-course.eu attract a lot of attention with over 6 million visitors every year.

Der Diplom-Informatiker Bernd Klein genießt internationales Ansehen als Python-Dozent. Bisher hat er über 500 Python-Kurse in Firmen, Forschungsinstituten und Lehraufträgen von Universitäten in Deutschland, Frankreich, der Schweiz, Österreich, den Niederlanden, Luxemburg, Rumänien und Kanada durchgeführt. Er ist Gründer und Inhaber des Schulungsanbieters Bodenseo. Große Aufmerksamkeit finden seine Python-Webseiten www.python-kurs.eu und www.python-course.eu mit jährlich über 6 Millionen Besuchenden. The computer scientist Bernd Klein enjoys an international reputation as a Python lecturer. To date, he has conducted over 500 Python courses in companies, research institutes and teaching positions at universities in Germany, France, Switzerland, Austria, the Netherlands, Luxembourg, Romania and Canada. He is the founder and owner of the training provider Bodenseo. His Python websites www.python-kurs.eu and www.python-course.eu attract a lot of attention with over 6 million visitors every year. Philip Klein hat einen Bachelor und Master in Informatik an der Universität Freiburg und schon während des Studiums bereits Python-Kurse für Bodenseo gegeben. Nach dem Studium war er bei Telocate als Softwareentwickler tätig. Er hat primär mit Python und Cpp gearbeitet. Seit Januar 2023 arbeitet er bei Bodenseo als Python-Dozent, primär als Pythonspezialist sowie auch als Trainer für Kurse über Machine Learning.

Inhalt 7
Teil I Einleitung 15
1 Vorwort 17
2 Danksagung 19
3 Einleitung 21
3.1 Einführung 21
3.2 Zielsetzung des Buches 21
3.3 Aufbau des Buches 22
3.4 Leserschaft 24
3.5 Zusätzliche Unterlagen 24
Teil II Python-Grundlagen unter funktionalen Aspekten 25
4 Variablen und Datentypen 27
4.1 Variablen 27
4.1.1 Gültige Variablennamen 29
4.1.2 Konventionen für Variablennamen 29
4.2 Übersicht Datenstrukturen 30
4.2.1 Unveränderliche (immutable) Datentypen 30
4.2.2 Veränderliche (mutable) Datentypen 30
4.3 Datenstrukturen im Detail 31
4.3.1 Integer 31
4.3.2 Floats 31
4.3.3 Zeichenketten oder Strings 32
4.3.4 Bytesequenz 34
4.3.5 Listen 35
4.3.6 Mengen 36
4.3.7 Dictionaries 37
5 Kontrollstrukturen 39
5.1 Sequenz 40
5.2 Bedingte Anweisungen 40
5.2.1 Vollständiges if 40
5.2.2 Ternäres if 42
5.3 Schleifen 43
5.3.1 while-Schleife 43
5.3.1.1 Allgemeine Arbeitsweise 43
5.3.1.2 while-Schleife mit else 44
5.3.2 while-Schleife als rekursive Funktion 45
5.3.3 Allgemeine while-Funktion 47
5.3.4 for-Schleife 48
5.3.5 for-Schleife in funktionaler Programmierung 50
6 Das Modul collections 51
6.1 Übersicht 51
6.2 namedtuple 52
6.3 Deque 55
6.4 ChainMap 56
6.5 Counter 58
Teil III Funktionale Programmierung 61
7 Begriffsbestimmung 63
7.1 Einführung 63
7.2 Verschiedene Programmierparadigmen 64
7.3 Funktionale Programmierung 64
8 Funktionen 67
8.1 Einleitung 67
8.2 Funktionen 67
8.2.1 Einfache Funktionen 67
8.2.2 Typehints 69
8.2.2.1 Einführende Beispiele 69
8.2.2.2 Typehints mit mypy 70
8.2.3 Default-Parameter und Schlüsselwortparameter 71
8.2.4 Weitere Typehints 71
8.2.5 Lokale Funktionen 72
8.2.6 Globale und lokale Variablen in Funktionen 73
8.2.7 Gültigkeit von Variablen in verschachtelten Funktionen 74
8.3 Dataclasses und Pattern Matching 77
8.3.1 Dataclasses 77
8.3.1.1 Standardargumente und Fabrikfunktionen 78
8.3.1.2 Unterschiede zum namedtuple 80
8.3.2 Pattern Matching 83
8.3.2.1 Einführung 83
8.3.2.2 Binärbäume mit Pattern Matching durchlaufen 83
8.4 Aufgaben 84
8.5 lambda 85
8.5.1 lambda mit sorted 87
8.6 Aufgaben 88
8.7 Rekursive Funktionen 89
8.7.1 Einführung 89
8.7.2 Definition der Rekursion 90
8.7.3 Iterative Lösung im Vergleich zur rekursiven Lösung 91
8.7.4 Kategorien der Rekursion 91
8.7.4.1 Lineare Rekursion 92
8.7.4.2 Gegenseitige/Wechselseitige Rekursion 93
8.7.4.3 Baumartige Rekursion 94
8.7.4.4 Endrekursion 99
8.8 Aufgaben 99
8.9 Funktionen als Erste-Klasse-Objekte 101
8.9.1 Definition 101
8.9.2 Zuweisung an Variable 102
8.9.3 Funktionen in Datenstrukturen 103
8.9.4 Funktionen als Argumente 106
8.9.5 Funktionen innerhalb von Funktionen 107
8.9.5.1 Kapselung und Verbergen 107
8.9.5.2 Fabrikfunktionen 109
8.10 Aufgaben 112
9 Dekoratoren 113
9.1 Einführung Dekoratoren 113
9.2 Ein einfacher Dekorator 114
9.3 @-Syntax für Dekoratoren 115
9.4 Dekoratoren für beliebige Signaturen 116
9.5 Anwendungsfälle für Dekoratoren 117
9.5.1 Erweiterung von Funktionen 118
9.5.2 Logging-Dekorator 119
9.5.3 Authentifizierung und Autorisierung 120
9.5.4 Validierung: Überprüfung von Argumenten 121
9.5.5 Profiling: Funktionsaufrufe mit einem Dekorator zählen 122
9.6 Dekoratoren mit Parametern 123
9.6.1 Einführendes Beispiel 123
9.6.2 Weiteres Beispiel 124
9.7 Benutzung von Wraps aus functools 126
9.8 Mehrfache Dekoration einer Funktion 128
9.8.1 Veranschaulichung 128
9.8.2 Python-Beispiel 129
9.8.3 Praktisches Beispiel einer Mehrfachdekoration 130
9.9 Eine Klasse als Dekorator benutzen 133
9.10 Klassendekoration 134
9.11 Dekorator-Aufgaben 137
10 Memoisation 139
10.1 Bedeutung und Herkunft des Begriffs 139
10.2 Memoisation mit Dekoratorfunktionen 140
10.3 Memoisation mit einer Klasse 143
10.4 Memoisation mit functools.lru_cache 143
10.5 Aufgaben zur Memoisation 145
11 Closures 147
11.1 Einleitung 147
11.1.1 Definition 148
11.1.2 Praktische Anwendungen von Closures 150
11.2 Aufgaben 150
12 Komposition von Funktionen 151
12.1 Einführung 151
12.2 Funktionskomposition in Python 152
12.3 Komposition mit beliebiger Argumentenzahl 154
12.4 Komposition einer beliebigen Anzahl von Funktionen 155
12.5 Aufgaben 156
13 Currying in Python 157
13.1 Einführung 157
13.1.1 Zugrundeliegende Idee 157
13.1.2 Herkunft des Names 158
13.2 Currying von Funktionen 158
13.2.1 Definition und Beispiel 158
13.2.2 BMI als Beispiel 159
13.2.3 BMI als Beispiel 159
13.3 Benutzung von partial 160
13.4 Praktisches Beispiel für Currying: E-Mail-Vorlagen 160
13.5 Dekorator für Currying 162
13.6 Weitere Beispiele 164
13.6.1 Arithmetische Operatoren 164
13.6.2 Beispiel aus der Finanzwelt 165
13.6.3 Currying zur Listenfilterung 168
13.7 Currying-Funktion mit einer beliebigen Anzahl von Parametern 168
13.8 Aufgaben 171
14 Funktionale Emulation von OOP-Konzepten 173
14.1 Einführung 173
14.2 Imitation einer Klasse durch eine Funktion 174
14.2.1 Erstes Beispiel: Geradengenerierung 174
14.2.2 Private Attribute 175
14.2.3 Klasse mit Gettern und Settern als Funktion 176
14.2.4 Nachahmung von Vererbung 179
14.2.5 Überlagern von Funktionen 183
14.3 Aufgaben 185
15 Generatoren und Iteratoren 189
15.1 Definitionen 189
15.2 Einführung 189
15.2.1 Iterierbar 190
15.2.2 Iterator und Arbeitsweise der for-Schleife 190
15.3 Eigenen Iterator erzeugen 193
15.3.1 Beispiel einer Iteratorklasse 193
15.4 Generatoren und Generatorfunktionen 194
15.4.1 Unendliche Generatoren 198
15.5 Endlos-Generatoren zähmen mit firstn und islice 199
15.6 Beispiele aus der Kombinatorik 202
15.6.1 Permutationen 202
15.6.2 Variationen und Kombinationen 203
15.7 Generator-Ausdrücke 205
15.8 yield from 206
15.9 return-Anweisungen in Generatoren 207
15.10 send-Methode 210
15.10.1 Arbeitsweise 210
15.10.2 Umprogrammierung mittels send 212
15.10.3 Radio-Beispiel mit send 213
15.11 Die close-Methode 215
15.12 Die throw-Methode 216
15.13 Dekoration von Generatoren 220
15.14 Aufgaben 221
16 Iteratoren der Standardbibliothek 225
16.1 Einführung 225
16.2 Wichtige Iteratoren und iteratorähnliche Funktionen in der Python-Standardbibliothek 226
16.3 enumerate 226
16.4 map, filter und reduce 228
16.4.1 map 228
16.4.2 Filtern von sequentiellen Datentypen mittels „filter“ 229
16.4.3 reduce 230
16.4.4 Zusammenspiel von map, filter und reduce 232
16.5 Listen-Abstraktion 232
16.5.1 Alternative zu map und filter 232
16.5.2 Syntax 233
16.5.3 Weitere Beispiele 234
16.5.4 Die zugrunde liegende Idee 234
16.5.5 Anspruchsvolleres Beispiel 235
16.5.6 Mengen-Abstraktion 236
16.5.7 Generatoren-Abstraktion 236
16.5.8 map und filter oder Listen-Abstraktion 237
16.5.9 Dict-Komprehension in Python 237
16.6 reversed 238
16.7 Die zip-Funktion 238
16.8 zip in Kombination mit map und filter 240
16.9 Aufgaben 241
17 Das Modul itertools 243
17.1 Übersicht 243
17.2 Unendliche Iteratoren 244
17.2.1 itertools.count 245
17.2.1.1 Beispiel: Teilbarkeit 246
17.2.1.2 Beispiel: Quadratpolynome 246
17.2.1.3 Beispiel: Bestellungsmanager 247
17.2.2 chain und chain.from_iterable 248
17.2.3 cycle 251
17.2.4 tee 251
17.2.4.1 Effiziente Implementierung von cycle 252
17.2.4.2 Beispiel: Aufgaben und Mitarbeiter 253
17.2.5 repeat 254
17.3 Iteratoren über endliche Sequenzen 254
17.3.1 slice und islice 255
17.3.1.1 slice 255
17.3.1.2 islice 255
17.3.1.3 slice und islice im Vergleich 257
17.3.2 accumulate 258
17.3.2.1 Praktisches Börsenbeispiel 258
17.3.3 compress 260
17.3.3.1 Einführung 260
17.3.3.2 Umfangreiches Beispiel 261
17.3.4 dropwhile 262
17.3.5 takewhile 263
17.3.6 filterfalse 265
17.3.7 groupby 266
17.3.8 pairwise 268
17.3.9 n_grams und map_n 270
17.3.10 zip_longest 272
17.3.11 starmap 272
17.4 Kombinatorische Generatoren 274
17.4.1 product 274
17.4.2 permutations 276
17.4.3 combinations 279
17.4.3.1 Arbeitsweise 279
17.4.3.2 Beispiel: Speisekartengenerierung 279
17.4.3.3 Beispiel: Benachbarte Kantengraphen 282
17.4.4 combinations_with_replacement 283
17.4.5 Umfangreiches praktisches Beispiel: csv-Datei lesen 284
17.5 Aufgaben 288
Teil IV Lösungen zu den Aufgaben 293
18 Lösungen zu den Aufgaben 295
18.1 Lösungen zu Abschnitt 8.9 (Funktionen als Erste-Klasse-Objekte) 295
18.2 Lösungen zu Abschnitt 8.3 (Dataclasses und Pattern Matching) 297
18.3 Lösungen zu Abschnitt 8.5 (lambda) 298
18.4 Lösungen zu Abschnitt 8.7 (Rekursive Funktionen) 299
18.5 Lösungen zu Abschnitt 8.9 (Funktionen als Erste-Klasse-Objekte) 303
18.6 Lösungen zu Kapitel 9 (Dekoratoren) 304
18.7 Lösungen zu Kapitel 10 (Memoisation) 312
18.8 Lösungen zu Kapitel 11 (Closures) 317
18.9 Lösungen zu Kapitel 16 (Iteratoren der Standardbibliothek) 318
18.10 Lösungen zu Abschnitt 16.5 (Listen-Abstraktion) 320
18.11 Lösungen zu Kapitel 15 (Generatoren und Iteratoren) 322
18.12 Lösungen zu Kapitel 17 (Das Modul itertools) 330
18.13 Lösungen zu Kapitel 12 (Komposition von Funktionen) 345
18.14 Lösungen zu Kapitel 13 (Currying in Python) 348
18.15 Lösungen zu Kapitel 14 (Funktionale Emulation von OOP-Konzepten) 349
Stichwortverzeichnis 355

3 Einleitung
3.1 Einführung

Dieses Buch widmet sich einem speziellen und faszinierenden Aspekt der Programmierung mit Python: der funktionalen Programmierung. Während Python vor allem für seine Einfachheit und Vielseitigkeit bekannt ist, bietet es auch mächtige Werkzeuge und Paradigmen, die es ermöglichen, Probleme auf eine neue und elegante Weise zu lösen. Eines dieser Paradigmen ist die funktionale Programmierung.

Funktionale Programmierung ist ein Programmierparadigma, das darauf abzielt, Berechnungen als Auswertung mathematischer Funktionen zu behandeln und Zustandsveränderungen zu vermeiden. Dies steht im Gegensatz zum imperativen Paradigma, das den Schwerpunkt auf die Ausführung von Befehlen und die Manipulation von Zuständen legt. Durch die Anwendung der Prinzipien der funktionalen Programmierung können Programme oft klarer, kompakter und weniger fehleranfällig gestaltet werden.

3.2 Zielsetzung des Buches

Dieses Buch ist nicht als umfassende und systematische Einführung in die funktionale Programmierung konzipiert. Der Grund dafür liegt darin, dass Python keine rein funktionale Programmiersprache ist, sondern eine vielseitige Sprache, die sowohl imperative als auch objektorientierte Paradigmen unterstützt. Obwohl Python viele funktionale Prinzipien integriert, bietet es oft Kompromisse zugunsten dieser anderen Paradigmen. Der Schwerpunkt dieses Buches liegt daher auf den Bereichen der funktionalen Programmierung, in denen Python besonders stark ist. Dies wird durch zahlreiche praktische Anwendungen und anschauliche Beispiele verdeutlicht. Jedes Kapitel endet mit einer Reihe von Aufgaben, die das Gelernte vertiefen und erweitern. Zu allen Aufgaben werden ausführliche Lösungen bereitgestellt, um das Verständnis zu fördern und die Lernziele zu erreichen.

3.3 Aufbau des Buches

Das Buch besteht aus zwei Hauptteilen:

1.      Python-Grundlagen unter funktionalen Aspekten

2.      Funktionale Programmierung

Im ersten Teil des Buches befassen wir uns mit den grundlegenden Datenstrukturen von Python wie Integer, Gleitkommazahlen, Strings, Listen, Tupel und Dictionaries. Darüber hinaus behandeln wir die Kontrollstrukturen, darunter bedingte Anweisungen und Schleifen, wobei wir dabei auf die Besonderheiten im Vergleich zur funktionalen Programmierung bereits ein wenig eingehen.

Das Modul in Python ist wichtig, weil es erweiterte Datenstrukturen wie , , und bietet, die über die Standard-Datenstrukturen hinausgehen und häufige Programmieraufgaben erleichtern. Diese spezialisierten Container ermöglichen effizientere und lesbarere Lösungen für komplexe Aufgabenstellungen. In der funktionalen Programmierung erleichtert das Modul die Arbeit mit unveränderlichen und strukturierten Daten, indem es z. B. bereitstellt, um benannte und unveränderliche Datentypen zu erstellen. Außerdem bietet eine praktische Möglichkeit, Daten zu aggregieren und zu zählen, was funktionale Techniken wie Map- und Reduce-Operationen unterstützen kann.

Da die funktionale Programmierung bei all diesen Themen nicht im Vordergrund steht, haben wir sie in diesem ersten Teil des Buches zusammengefasst. Dieser Abschnitt richtet sich insbesondere an Personen, die bereits über Programmiererfahrung verfügen, jedoch noch keine Vorkenntnisse in Python besitzen.

Im zweiten Teil geht es dann um die funktionalen Aspekte. Zunächst bemühen wir uns um eine Begriffsbestimmung des funktionalen Programmierstils und einer Abgrenzung zu anderen Programmierparadigmen in Kapitel 7 (Begriffsbestimmung). Das folgende Kapitel 8 (Funktionen) widmet sich ganz den Funktionen: beginnend bei einfachen Funktionen, lambda-Funktionen und rekursiven Funktionen bis hin zum Prinzip der First-Class-Funktionen. Dann sind wir bereit für das Thema Dekoratoren in Kapitel 9 (Dekoratoren). Dekoratorfunktionen in Python ermöglichen es, das Verhalten von Funktionen oder Methoden modular und wiederverwendbar zu erweitern oder zu modifizieren, ohne den ursprünglichen Code zu verändern. In diesem Kapitel finden sich viele interessante Anwendungen für Dekoratoren in Form von Beispielen und Aufgaben. Einer der faszinierendsten Anwendungen, nämlich der Memoisation, ist ein eigenes Kapitel 10 (Memoisation) gewidmet.

Die Komposition von Funktionen ist in der funktionalen Programmierung von großer Bedeutung, da sie hilft, sauberen, wartbaren und flexiblen Code zu schreiben. Sie fördert die Modularität, Lesbarkeit und Wiederverwendbarkeit von Funktionen, unterstützt die Vermeidung von Seiteneffekten und ermöglicht eine höhere Abstraktionsebene, die die Entwicklung komplexer Systeme vereinfacht. Dieses Thema behandeln wir deshalb auch in einem eigenen Kapitel 12 (Komposition von Funktionen).

Mit dem Thema „Currying“ beschäftigen wir uns in Kapitel 13 (Currying in Python). Dabei handelt es sich um ein zentrales Konzept der funktionalen Programmierung, das die Umwandlung von Funktionen mit mehreren Argumenten in eine Serie von Funktionen mit jeweils einem Argument ermöglicht. Dies verbessert die Modularität und Wiederverwendbarkeit des Codes. In Python unterstützt Currying elegante und flexible Code-Strukturen, die den Prinzipien der funktionalen Programmierung entsprechen.

Funktionale Programmierung und objektorientierte Programmierung sind mächtige, aber unterschiedliche Paradigmen. In Kapitel 14 (Funktionale Emulation von OOP-Konzepten) zeigen wir, dass es sich nicht um unvereinbare oder gegensätzliche Paradigmen handelt. Wir zeigen, wie wir Klassendefinitionen in der funktionalen Programmierung durch First-Class-Funktionen unter Wahrung der objektorientierten Ziele realisieren können. Zudem demonstrieren wir, dass sich selbst objektorientierte Konzepte wie Vererbung funktional emulieren lassen.

Iteratoren und Generatoren sind in Python von großer Bedeutung, da sie eine effiziente Speicherverwaltung ermöglichen. Anstatt Daten vollständig auf einmal zu laden, erzeugen und verarbeiten sie diese bei Bedarf. Dies führt zu einer verbesserten Leistung und Skalierbarkeit von Programmen, insbesondere bei der Verarbeitung großer Datenmengen oder endloser Sequenzen. Deshalb haben wir dieser Thematik gleich drei Kapitel gewidmet. In Kapitel 15 (Generatoren und Iteratoren) zeigen wir, wie man mit Generatorfunktionen Iteratoren erzeugt, die Werte schrittweise mit dem Schlüsselwort zurückgeben, wodurch sie speichereffizient große Datenmengen oder unendliche Sequenzen verarbeiten können. In Kapitel 16 (Iteratoren der Standardbibliothek) lernen wir dann wichtige Iteratoren wie , , , , , der Standardbibliothek kennen. In den Beispielen demonstrieren wir, wie man mit ihrer Hilfe effizienteren Code schreiben kann. Das effizientere Laufzeitverhalten bei der Verwendung von Iteratoren und Generatoren kann allgemein dadurch erklärt werden, dass sie Daten „on-the-fly“ erzeugen, anstatt ganze Listen oder andere Datenstrukturen im Speicher zu halten.

Besonders intensiv gehen wir in Kapitel 17 (Das Modul itertools) auf das Modul ein, da es im Zusammenhang mit funktionaler Programmierung von besonderer Wichtigkeit ist, weil es eine Sammlung von effizienten, speichersparenden Iteratoren zur Verfügung stellt, die sich ideal für funktionale Programmierparadigmen eignen. Diese Werkzeuge ermöglichen es, komplexe Iterationen und Kombinationen von Daten in einem deklarativen Stil auszudrücken, ohne explizit Schleifen oder temporäre Datenstrukturen zu verwenden. Dies führt zu sauberem, lesbarem und wartbarem Code, der die Prinzipien der funktionalen Programmierung wie Unveränderlichkeit und First-Class-Funktionen unterstützt.

Die -Bibliothek in Python bietet vielseitige Funktionen für die Arbeit mit Iterationen. Zu den wichtigsten gehören unendliche Iteratoren wie , und , die unendlich lange Sequenzen erzeugen. Endliche Kombinations- und Permutations-Iteratoren wie , , und ermöglichen die Erzeugung komplexer Kombinationen und Anordnungen von Daten. Zudem bietet leistungsfähige Filter- und Mapping-Tools wie , , und , die es ermöglichen, Sequenzen nach bestimmten Kriterien zu filtern und zu transformieren. Insgesamt erleichtert die effiziente und speicherschonende Verarbeitung von Daten.

3.4 Leserschaft

Auch wenn wir im Buch extra einen Abschnitt zu den Grundlagen von Python aufgenommen haben, wäre es dennoch hilfreich, bereits etwas Programmiererfahrung mit Python zu besitzen. Ansonsten richtet sich dieses Buch an Personen mit Programmiererfahrung in...

Erscheint lt. Verlag 13.1.2025
Verlagsort München
Sprache deutsch
Themenwelt Informatik Programmiersprachen / -werkzeuge Python
Schlagworte Codequalität • Deklarativer Stil • Funktionale Programmierung • Funktionskomposition • Programmiersprache • Programmierung • Python • Unveränderlichkeit
ISBN-10 3-446-48379-9 / 3446483799
ISBN-13 978-3-446-48379-8 / 9783446483798
Informationen gemäß Produktsicherheitsverordnung (GPSR)
Haben Sie eine Frage zum Produkt?
EPUBEPUB (Wasserzeichen)

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belle­tristik und Sach­büchern. Der Fließ­text wird dynamisch an die Display- und Schrift­größe ange­passt. Auch für mobile Lese­geräte ist EPUB daher gut geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
ein kompakter Einstieg für die Praxis

von Ralph Steyer

eBook Download (2024)
Springer Fachmedien Wiesbaden (Verlag)
CHF 37,10