Hans-Bernhard Woyand
Python für Ingenieure und Naturwissenschaftler
Einführung in die Programmierung, mathematische Anwendungen und Visualisierungen
Vorwort
6
Inhalt
10
1 Einführung
16
1.1 Die Programmiersprache Python
16
1.2 Hinweise zur Installation
17
1.3 Erste Schritte – der Python-Interpreter
18
1.3.1 Addition und Subtraktion
19
1.3.2 Multiplikation und Division
19
1.3.3 Vergleichsausdrücke
21
1.3.4 Logische Ausdrücke
22
1.3.5 Mathematische Funktionen
22
1.3.6 Grundlegendes über Variablen und Zuweisungen
24
1.3.7 Zeichenketten (Strings)
25
1.3.8 Turtle-Grafik
25
1.4 Python-Programme mit IDLE erstellen
27
1.5 Aufgaben
33
1.6 Lösungen
37
2 Grundlagen
46
2.1 Einfache Objekttypen
46
2.1.1 Ganze Zahlen – Integer
46
2.1.2 Gleitpunktzahlen – Float
48
2.1.3 Komplexe Zahlen – Complex
49
2.1.4 Zeichenketten – Strings
51
2.1.5 Aufgaben
56
2.1.6 Lösungen
58
2.2 Operatoren und mathematische Standardfunktionen
61
2.2.1 Operatoren zur arithmetischen Berechnung
61
2.2.2 Mathematische Standardfunktionen
62
2.2.3 Aufgaben
64
2.2.4 Lösungen
65
2.3 Variablen und Zuweisungen
66
2.4 Funktionen
71
2.4.1 Funktionen mit Rückgabewert
72
2.4.2 Funktionen ohne Rückgabewert
75
2.4.3 Aufgaben
77
2.4.4 Lösungen
79
2.5 Ein- und Ausgabe
80
2.6 Programmverzweigungen
83
2.6.1 Einfache if-Anweisung
83
2.6.2 Erweiterte if-Anweisung
85
2.6.3 Aufgaben
87
2.6.4 Lösungen
88
2.7 Bedingungen
88
2.8 Programmschleifen
90
2.8.1 for-Schleifen
91
2.8.2 while-Schleifen
95
2.9 Aufgaben
99
2.10 Lösungen
100
3 Vertiefung
104
3.1 Listen
104
3.1.1 Aufgaben
109
3.1.2 Lösungen
111
3.2 Tupels
115
3.3 Sets – Mengen
116
3.4 Dictionaries
118
3.4.1 Aufgaben
121
3.4.2 Lösungen
122
3.5 Slicing
125
3.6 List Comprehensions
128
3.7 Iteratoren und die zip-Funktion
129
3.8 Funktionen, Module und Rekursion
131
3.8.1 Schlüsselwort-Parameter
131
3.8.2 Module
132
3.8.3 Rekursion
134
3.8.4 Globale und lokale Variablen
136
3.9 Turtle-Grafik – verbessert
138
3.10 Dateien lesen und schreiben
140
3.11 Aufgaben
145
3.12 Lösungen
151
4 Objektorientiertes Programmieren
164
4.1 Klassen und Objekte
164
4.1.1 Die Grundidee
165
4.1.2 Klassen
166
4.1.3 Methoden
168
4.2 Konstruktoren und Destruktoren
173
4.3 Überladen von Operatoren
176
4.4 Vererbung
180
4.5 Aufgaben
184
4.6 Lösungen
187
5 Numerische Berechnungen mit Numpy
198
5.1 Hinweise zur Installation
198
5.2 Arrays
199
5.3 Darstellung von Matrizen
200
5.4 Spezielle Funktionen
201
5.5 Operationen
202
5.6 Lineare Algebra
203
5.7 Zufallswerte
205
5.8 Aufgaben
205
5.9 Lösungen
207
6 Grafische Darstellungen mit Matplotlib
210
6.1 Hinweise zur Installation
210
6.2 XY-Diagramme
210
6.3 Balkendiagramme
215
6.4 Tortendiagramme
217
6.5 Polardiagramme
218
6.6 Histogramme
219
6.7 Subplots
220
6.8 Axes
222
6.9 Anmerkungen und Legenden
224
6.10 Aufgaben
226
6.11 Lösungen
226
7 Computeralgebra mit Sympy
230
7.1 Hinweise zur Installation
231
7.2 Differentiation
231
7.3 Integration
232
7.3.1 Unbestimmte Integrale
233
7.3.2 Bestimmte Integrale
233
7.3.3 Uneigentliche Integrale
234
7.4 Potenzreihen
235
7.5 Matrizenrechnung – lineare Algebra
235
7.6 Die Datentypen Rational und Float
237
7.7 Nützliche Ergänzungen
238
7.8 Aufgaben
241
7.9 Lösungen
242
8 3D-Grafik mit VPython 7
246
8.1 Hinweise zur Installation
246
8.2 Szenen
247
8.3 Grundkörper
252
8.4 Dreieck- und Viereckflächen (Triangle/Quad)
258
8.4.1 triangle
258
8.4.2 quad
259
8.4.3 STL-Dateien lesen und mit VPython darstellen
260
8.5 Widgets
263
8.6 Steuerung mit Tastatur und Maus
267
8.7 Aufgaben
275
8.8 Lösungen
277
9 Python-Versionen, Programmbibliotheken und Distributionen
286
9.1 Python 2
287
9.2 Die Python-Distribution Anaconda
289
9.3 Die Python-Distribution WinPython
291
9.4 Aufgaben
291
9.5 Lösungen
293
10 Numerische Analysen mit Scipy
296
10.1 Hinweise zur Installation
297
10.2 Numerische Berechnung von Integralen
297
10.3 Interpolation
299
10.4 Berechnung von Nullstellen – Rootfinding
302
10.5 Optimierung
304
10.6 Signalanalyse mit der Schnellen Fourier Transformation (FFT)
308
10.7 Numerische Integration gewöhnlicher Differenzialgleichungen
312
10.8 Delaunay-Triangulierung
318
10.9 Berechnung der konvexen Hülle
319
10.10 Aufgaben
321
10.11 Lösungen
323
11 Bildverarbeitung mit scikit-image
332
11.1 Hinweise zur Installation
332
11.2 Bilder einlesen, darstellen und ausgeben
332
11.3 Farbbilder in Graustufenbilder wandeln und Bilder skalieren
334
11.4 Graustufenbild durch Programmanweisungen erzeugen
335
11.5 Ecken ermitteln – Corner Detection
337
11.6 Kanten detektieren – Canny-Filter
338
11.7 Kreise erkennen – Hough-Transformation
339
11.8 Abgleich von Vorlagen – Template-Matching
342
11.9 Aufgaben
344
11.10 Lösungen
345
Literaturverzeichnis
348
Index
350
© 2009-2024 ciando GmbH