Sie sind hier
E-Book

Einführung in Python 3

Für Ein- und Umsteiger

AutorBernd Klein
VerlagCarl Hanser Fachbuchverlag
Erscheinungsjahr2017
Seitenanzahl558 Seiten
ISBN9783446453876
FormatPDF
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis19,99 EUR
EINFÜHRUNG IN PYTHON 3
Als idealer Einstieg für Programmieranfänger wie für Umsteiger behandelt dieses Buch alle grundlegenden Sprachelemente von Python 3. Aber auch Python-Kennern bietet das Buch viele weiterführende Themen wie Systemprogrammierung, Threads, Forks, Ausnahmehandlungen und Modultests.
Erste Schritte mit Python
- Besonders geeignet für Programmieranfänger, aber auch für Umsteiger von anderen Sprachen wie C, C++, Java oder Perl
- Systematische und praxisnahe Einführung in die Kunst der Programmierung
- Praxisnahe Übungen mit ausführlich dokumentierten Musterlösungen zu jedem Kapitel
Objektorientierte Programmierung
Die wesentlichen Begriffe und Techniken der Programmierung und die zugrundeliegenden Ideen werden in diesem Buch anschaulich erklärt. Die Problemstellungen werden mit typischen Beispielen verdeutlicht, die sich leicht auf andere Anwendungsfälle übertragen lassen. Ebenso dienen die Übungsaufgaben mit ausführlich dokumentierten Musterlösungen nicht nur dazu, den Stoff zu vertiefen, sondern auch, exemplarische Vorgehensweisen zu demonstrieren, die in vielen anderen Bereichen Verwendung finden können.
Anwendungsbeispiele: Bruchklasse, Mastermind und Textklassifikation
In interessanten Anwendungsfällen werden alle erlernten Konzepte zusammengeführt: Design einer Klasse 'Bruch' für Bruchrechnung, Implementierung des Spieles Mastermind und eine komplette Einführung in die automatische Dokumentenklassifikation. Erweitert wurde auch das umfassende Stichwortverzeichnis und somit die Verwendung des Buches als Nachschlagewerk zusätzlich verbessert.

Der Diplom-Informatiker Bernd Klein ist der Inhaber und Gründer des Schulungsanbieters Bodenseo, der international tätig ist. Bernd Klein kennt sich bestens mit der Theorie und Praxis von Programmiersprachen aus. In der Industrie hat er in zahlreichen Projekten wertvolle praktische Erfahrungen gesammelt, die in seine Kurse einfließen. Seit etwa 4 Jahren hat er sich auf Python konzentriert und sich zum international anerkannten Experten in diesem Gebiet entwickelt.
Seine didaktischen Fähigkeiten und seine Sachkompetenz stellt er auch im Internet in den beiden Webseiten www.python-kurs.eu (deutsch) und www.python-course.eu (englisch) unter Beweis.

Kaufen Sie hier:

Horizontale Tabs

Blick ins Buch
Inhaltsverzeichnis
Inhalt6
Vorwort18
Danksagung19
1 Einleitung20
1.1 Einfach und schnell zu lernen20
1.2 Zielgruppe des Buches20
1.3 Aufbau des Buches21
1.4 Programmieren lernen ,,interaktiv''22
1.5 Download der Beispiele und Hilfe23
1.6 Anregungen und Kritik23
Teil I Grundlagen24
2 Kommandos und Programme26
2.1 Erste Schritte mit Python26
2.1.1 Linux26
2.1.2 Windows27
2.1.3 macOS28
2.2 Herkunft und Bedeutung des Begriffes interaktive Shell28
2.2.1 Erste Schritte in der interaktiven Shell29
2.3 Verlassen der Python-Shell30
2.4 Benutzung von Variablen31
2.5 Mehrzeilige Anweisungen in der interaktiven Shell31
2.6 Programme schreiben oder schnell mal der Welt ``Hallo'' sagen32
3 Bytecode und Maschinencode36
3.1 Einführung36
3.2 Unterschied zwischen Programmier- und Skriptsprachen36
3.3 Interpreter- oder Compilersprache36
4 Datentypen und Variablen40
4.1 Einführung40
4.2 Variablennamen42
4.2.1 Gültige Variablennamen42
4.2.2 Konventionen für Variablennamen43
4.3 Datentypen43
4.3.1 Ganze Zahlen43
4.3.2 Fließkommazahlen45
4.3.3 Zeichenketten45
4.3.4 Boolesche Werte45
4.3.5 Komplexe Zahlen46
4.3.6 Operatoren46
4.4 Statische und dynamische Typdeklaration47
4.5 Typumwandlung49
4.6 Datentyp ermitteln50
5 Sequentielle Datentypen52
5.1 Übersicht52
5.1.1 Zeichenketten oder Strings53
5.1.2 Listen55
5.1.3 Tupel55
5.2 Indizierung von sequentiellen Datentypen56
5.3 Teilbereichsoperator57
5.4 Die len-Funktion59
5.5 Aufgaben60
6 Dictionaries62
6.1 Dictionaries und assoziative Felder62
6.2 Definition und Benutzung63
6.3 Fehlerfreie Zugriffe auf Dictionaries65
6.4 Zulässige Typen für Schlüssel und Werte66
6.5 Verschachtelte Dictionaries67
6.6 Methoden auf Dictionaries67
6.7 Operatoren71
6.8 Die zip-Funktion71
6.9 Dictionaries aus Listen erzeugen73
6.10 Aufgaben74
7 Mengen76
7.1 Übersicht76
7.2 Mengen in Python76
7.2.1 Sets erzeugen77
7.2.2 Mengen von unveränderlichen Elementen77
7.3 Frozensets78
7.4 Operationen auf ,,set''-Objekten78
7.4.1 add(element)78
7.4.2 clear()79
7.4.3 copy79
7.4.4 difference()79
7.4.5 difference_update()80
7.4.6 discard(el)80
7.4.7 remove(el)81
7.4.8 intersection(s)81
7.4.9 isdisjoint()81
7.4.10 issubset()82
7.4.11 issuperset()82
7.4.12 pop()83
8 Eingaben84
8.1 Eingabe mittels input84
9 Verzweigungen86
9.1 Anweisungsblöcke und Einrückungen86
9.2 Bedingte Anweisungen in Python89
9.2.1 Einfachste if-Anweisung89
9.2.2 if-Anweisung mit else-Zweig90
9.2.3 elif-Zweige90
9.3 Vergleichsoperatoren91
9.4 Zusammengesetzte Bedingungen91
9.5 Wahr oder falsch: Bedingungen in Verzweigungen91
9.6 Aufgaben92
10 Schleifen94
10.1 Übersicht94
10.2 while-Schleife95
10.3 break und continue96
10.4 die Alternative im Erfolgsfall: else97
10.5 For-Schleife99
10.6 Aufgaben102
11 Dateien lesen und schreiben106
11.1 Dateien106
11.2 Text aus einer Datei lesen106
11.3 Schreiben in eine Datei108
11.4 In einem Rutsch lesen: readlines und read108
11.5 with-Anweisung109
11.6 Aufgaben110
12 Formatierte Ausgabe und Strings formatieren112
12.1 Wege, die Ausgabe zu formatieren112
12.2 print-Funktion112
12.3 Stringformatierung im C-Stil114
12.4 Der pythonische Weg: Die String-Methode ,,format''118
12.5 Benutzung von Dictionaries beim Aufruf der ,,format''-Methode121
12.6 Benutzung von lokalen Variablen in ,,format''122
12.7 Formatierte Stringliterale123
12.8 Weitere String-Methoden zum Formatieren123
13 Flaches und tiefes Kopieren126
13.1 Einführung126
13.2 Kopieren einer Liste127
13.3 Flache Kopien129
13.4 Kopieren mit deepcopy130
13.5 Deepcopy für Dictionaries131
14 Funktionen132
14.1 Allgemein132
14.2 Funktionen132
14.3 Docstring134
14.4 Standardwerte für Funktionen136
14.5 Schlüsselwortparameter137
14.6 Funktionen ohne oder mit leerer return-Anweisung137
14.7 Mehrere Rückgabewerte138
14.8 Lokale und globale Variablen in Funktionen139
14.9 Parameterübergabe im Detail141
14.10 Effekte bei veränderlichen Objekten143
14.11 Kommandozeilenparameter144
14.12 Variable Anzahl von Parametern / Variadische Funktionen145
14.13 * in Funktionsaufrufen147
14.14 Beliebige Schlüsselwortparameter148
14.15 Doppeltes Sternchen im Funktionsaufruf148
14.16 Aufgaben149
15 Rekursive Funktionen152
15.1 Definition und Herkunft des Begriffs152
15.2 Definition der Rekursion153
15.3 Rekursive Funktionen in Python153
15.4 Die Tücken der Rekursion154
15.5 Fibonacci-Folge in Python155
15.6 Aufgaben159
16 Listen und Tupel im Detail162
16.1 Stapelspeicher162
16.2 Stapelverarbeitung in Python: pop und append163
16.3 extend163
16.4 ,+'-Operator oder append164
16.5 Entfernen eines Wertes166
16.6 Prüfen, ob ein Element in Liste enthalten ist166
16.7 Finden der Position eines Elementes166
16.8 Einfügen von Elementen167
16.9 Besonderheiten bei Tupel167
16.9.1 Leere Tupel168
16.9.2 1-Tupel168
16.9.3 Mehrfachzuweisungen, Packing und Unpacking168
16.10 Die veränderliche Unveränderliche170
16.11 Sortieren von Listen170
16.11.1 ,,sort'' und ,,sorted''170
16.11.2 Umkehrung der Sortierreihenfolge171
16.11.3 Eigene Sortierfunktionen171
16.12 Aufgaben174
17 Modularisierung176
17.1 Module176
17.1.1 Namensräume von Modulen177
17.1.2 Namensräume umbenennen178
17.1.3 Modularten178
17.1.4 Suchpfad für Module179
17.1.5 Inhalt eines Modules180
17.1.6 Eigene Module180
17.1.7 Dokumentation für eigene Module181
17.2 Pakete182
17.2.1 Einfaches Paket erzeugen183
17.2.2 Komplexeres Paket184
17.2.3 Komplettes Paket importieren187
18 Globale und lokale Variablen190
18.1 Einführung190
18.2 Globale und lokale Variablen in Funktionen191
19 Alles über Strings …194
19.1 ... fast alles194
19.2 Aufspalten von Zeichenketten195
19.2.1 split195
19.2.2 Standardverhalten und ,,maxsplit''197
19.2.3 rsplit198
19.2.4 Folge von Trennzeichen200
19.2.5 splitlines201
19.2.6 partition202
19.3 Zusammenfügen von Stringlisten mit join202
19.4 Suchen von Teilstrings202
19.4.1 ,,in'' oder ,,not in''202
19.4.2 s.find(substring[, start[, end]])203
19.4.3 s.rfind(substring[, start[, end]])203
19.4.4 s.index(substring[, start[, end]])204
19.4.5 s.rindex(substring[, start[, end]])204
19.4.6 s.count(substring[, start[, end]])204
19.5 Suchen und Ersetzen205
19.6 Nur noch Kleinbuchstaben oder Großbuchstaben205
19.7 capitalize und title205
19.8 Stripping Strings206
19.9 Strings ausrichten206
19.10 String-Tests207
19.11 Aufgaben209
20 Ausnahmebehandlung212
20.1 Abfangen mehrerer Exceptions214
20.2 except mit mehrfachen Ausnahmen215
20.3 Die optionale else-Klausel215
20.4 Fehlerinformationen über sys.exc_info216
20.5 Exceptions generieren216
20.6 Finalisierungsaktion217
Teil II Objektorientierte Programmierung218
21 Grundlegende Aspekte220
21.1 Bibliotheksvergleich220
21.2 Objekte und Instanzen einer Klasse222
21.3 Kapselung von Daten und Methoden223
21.4 Eine minimale Klasse in Python223
21.5 Eigenschaften und Attribute224
21.6 Methoden227
21.7 Instanzvariablen228
21.8 Die __init__-Methode228
21.9 Destruktor230
21.10 Datenkapselung, Datenabstraktion und Geheimnisprinzip231
21.10.1 Definitionen231
21.10.2 Zugriffsmethoden233
21.10.3 Properties234
21.10.4 Public-, Protected- und Private-Attribute236
21.10.5 Weitere Möglichkeiten der Properties237
21.10.6 Properties mit Dekorateuren240
21.11 Die __str__- und die __repr__-Methode241
21.12 Klassenattribute246
21.13 Statische Methoden248
21.13.1 Einleitendes Beispiel249
21.13.2 Getter und Setter für private Klassenattribute250
21.14 Public-Attribute statt private Attribute251
21.15 Magische Methoden und Operatorüberladung252
21.15.1 Einführung252
21.15.2 Übersicht magische Methoden254
21.15.3 Beispielklasse: Length255
22 Bruchklasse260
22.1 Brüche à la 1001 Nacht260
22.2 Zurück in die Gegenwart261
22.3 Rechenregeln263
22.3.1 Multiplikation von Brüchen263
22.3.2 Division von Brüchen264
22.3.3 Addition von Brüchen265
22.3.4 Subtraktion von Brüchen265
22.3.5 Vergleichsoperatoren266
22.4 Integer plus Bruch266
22.4.1 Die Bruchklasse im Überblick267
22.5 Fraction-Klasse269
23 Vererbung270
23.1 Oberbegriffe und Oberklassen270
23.2 Ein einfaches Beispiel271
23.3 Überladen, Überschreiben und Polymorphie272
23.4 Vererbung in Python275
23.5 Klassenmethoden278
23.6 Standardklassen als Basisklassen280
24 Mehrfachvererbung282
24.1 Einführung282
24.2 Beispiel: CalendarClock283
24.3 Diamand-Problem oder ,,deadly diamond of death''291
24.4 super und MRO292
25 Slots298
25.1 Erzeugung von dynamischen Attributen verhindern298
26 Dynamische Erzeugung von Klassen300
26.1 Beziehung zwischen ,,class'' und ,,type''300
27 Metaklassen304
27.1 Motivation304
27.2 Definition309
27.3 Definition von Metaklassen in Python309
27.4 Singletons mit Metaklassen erstellen311
27.5 Beispiel – Methodenaufrufe zählen312
27.5.1 Einführung312
27.5.2 Vorbereitungen312
27.5.3 Ein Dekorateur, um Funktionsaufrufe zu zählen314
27.5.4 Die Metaklasse ,,Aufrufzähler''314
28 Abstrakte Klassen316
29 Aufgaben320
Teil III Fortgeschrittenes Python324
30 lambda, map, filter und reduce326
30.1 lambda326
30.2 map329
30.3 Filtern von sequentiellen Datentypen mittels ,,filter''331
30.4 reduce332
30.5 Aufgaben333
31 Listen-Abstraktion/List Comprehension334
31.1 Die Alternative zu Lambda und Co.334
31.2 Syntax335
31.3 Weitere Beispiele335
31.4 Die zugrunde liegende Idee336
31.5 Anspruchsvolleres Beispiel337
31.6 Mengen-Abstraktion337
31.7 Rekursive Primzahlberechnung338
31.8 Generatoren-Abstraktion338
31.9 Aufgaben339
32 Generatoren und Iteratoren342
32.1 Einführung342
32.2 Iteration in for-Schleifen342
32.3 Generatoren344
32.4 Generatoren zähmen mit firstn und islice346
32.5 Beispiele347
32.5.1 Permutationen347
32.5.2 Variationen und Kombinationen348
32.6 Generator-Ausdrücke350
32.7 return-Anweisungen in Generatoren351
32.8 send-Methode / Koroutinen351
32.9 Die throw-Methode353
32.10 Dekoration von Generatoren355
32.11 yield from356
32.12 Aufgaben358
33 Dekorateure360
33.1 Einführung Dekorateure360
33.1.1 Verschachtelte Funktionen361
33.1.2 Funktionen als Parameter362
33.1.3 Funktionen als Rückgabewert363
33.1.4 Fabrikfunktionen364
33.2 Ein einfacher Dekorateur365
33.3 @-Syntax für Dekorateure366
33.4 Anwendungsfälle für Dekorateure369
33.4.1 Überprüfung von Argumenten durch Dekorateure369
33.4.2 Funktionsaufrufe mit einem Dekorateur zählen370
33.5 Dekorateure mit Parametern371
33.6 Benutzung von Wraps aus functools373
33.7 Klassen statt Funktionen374
33.7.1 Die __call__-Methode374
33.8 Eine Klasse als Dekorateur benutzen376
33.9 Memoisation377
33.9.1 Bedeutung und Herkunft des Begriffs377
33.9.2 Memoisation mit Dekorateur-Funktionen377
33.9.3 Memoisation mit einer Klasse378
33.9.4 Memoisation mit functools.lru_cache379
Teil IV Weiterführende Themen382
34 Tests und Fehler384
34.1 Einführung384
34.2 Modultests386
34.3 Modultests unter Benutzung von __name__387
34.4 doctest-Modul389
34.5 Testgetriebene Entwicklung oder ,,Im Anfang war der Test''392
34.6 unittest394
34.7 Methoden der Klasse TestCase396
34.8 Aufgaben399
35 Daten konservieren400
35.1 Persistente Speicherung400
35.2 Pickle-Modul401
35.2.1 Daten ,,einpökeln'' mit pickle.dump401
35.2.2 pickle.load402
35.3 Ein persistentes Dictionary mit shelve402
36 Reguläre Ausdrücke406
36.1 Ursprünge und Verbreitung406
36.2 Stringvergleiche406
36.3 Überlappungen und Teilstrings408
36.4 Das re-Modul408
36.5 Matching-Problem409
36.6 Syntax der regulären Ausdrücke411
36.6.1 Beliebiges Zeichen411
36.7 Zeichenauswahl412
36.8 Endliche Automaten413
36.9 Anfang und Ende eines Strings413
36.10 Vordefinierte Zeichenklassen416
36.11 Optionale Teile417
36.12 Quantoren418
36.13 Gruppierungen und Rückwärtsreferenzen420
36.13.1 Match-Objekte420
36.14 Umfangreiche Übung423
36.15 Alles finden mit findall425
36.16 Alternativen426
36.17 Compilierung von regulären Ausdrücken426
36.18 Aufspalten eines Strings mit oder ohne regulären Ausdruck428
36.18.1 split-Methode der String-Klasse428
36.18.2 split-Methode des re-Moduls429
36.18.3 Wörter filtern431
36.19 Suchen und Ersetzen mit sub432
36.20 Aufgaben433
37 Typanmerkungen436
37.1 Einführung436
37.2 Einfaches Beispiel437
37.3 Variablenanmerkungen438
37.4 Listenbeispiel439
37.5 typing-Modul440
38 Systemprogrammierung444
38.1 Systemprogrammierung444
38.2 Häufig falsch verstanden: Shell444
38.3 os-Modul445
38.3.1 Vorbemerkungen446
38.3.2 Umgebungsvariablen446
38.3.3 Dateiverarbeitung auf niedrigerer Ebene448
38.3.4 Die exec-,,Familie''453
38.3.5 Weitere Funktionen im Überblick460
38.3.6 os.path - Arbeiten mit Pfaden474
38.4 shutil-Modul482
39 Forks488
39.1 Fork488
39.2 Fork in Python488
Teil V Lösungen zu den Aufgaben492
40 Lösungen zu den Aufgaben494
40.1 Lösungen zu Kapitel 5 (Sequentielle Datentypen)494
40.2 Lösungen zu Kapitel 6 (Dictionaries)497
40.3 Lösungen zu Kapitel 9 (Verzweigungen)499
40.4 Lösungen zu Kapitel 10 (Schleifen)501
40.5 Lösungen zu Kapitel 11 (Dateien lesen und schreiben)504
40.6 Lösungen zu Kapitel 16 (Listen und Tupel im Detail)506
40.7 Lösungen zu Kapitel 14 (Funktionen)509
40.8 Lösungen zu Kapitel 15 (Rekursive Funktionen)514
40.9 Lösungen zu Kapitel 19 (Alles über Strings …)518
40.10 Lösungen zu Kapitel 21 (Grundlegende Aspekte)521
40.11 Lösungen zu Kapitel 34 (Tests und Fehler)531
40.12 Lösungen zu Kapitel 36 (Reguläre Ausdrücke)531
40.13 Lösungen zu Kapitel 30 (lambda, map, filter und reduce)537
40.14 Lösungen zu Kapitel 31 (Listen-Abstraktion/List Comprehension)538
40.15 Lösungen zu Kapitel 32 (Generatoren und Iteratoren)539
Stichwortverzeichnis544

Weitere E-Books zum Thema: Programmiersprachen - Softwareentwicklung

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

Programmieren lernen in PHP 5

E-Book Programmieren lernen in PHP 5
Format: PDF

Mit der Version 5 erreicht PHP einen bemerkenswerten Reifegrad, der PHP zu einer festen Größe in der Welt der Webprogrammierung macht. Gerade die leichte Erlernbarkeit macht PHP zur idealen…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Weitere Zeitschriften

FESTIVAL Christmas

FESTIVAL Christmas

Fachzeitschriften für Weihnachtsartikel, Geschenke, Floristik, Papeterie und vieles mehr! FESTIVAL Christmas: Die erste und einzige internationale Weihnachts-Fachzeitschrift seit 1994 auf dem ...

bank und markt

bank und markt

Zeitschrift für Banking - die führende Fachzeitschrift für den Markt und Wettbewerb der Finanzdienstleister, erscheint seit 1972 monatlich. Leitthemen Absatz und Akquise im Multichannel ...

SPORT in BW (Württemberg)

SPORT in BW (Württemberg)

SPORT in BW (Württemberg) ist das offizielle Verbandsorgan des Württembergischen Landessportbund e.V. (WLSB) und Informationsmagazin für alle im Sport organisierten Mitglieder in Württemberg. ...

building & automation

building & automation

Das Fachmagazin building & automation bietet dem Elektrohandwerker und Elektroplaner eine umfassende Übersicht über alle Produktneuheiten aus der Gebäudeautomation, der Installationstechnik, dem ...