Weigend | Python 3 für Studium und Ausbildung | E-Book | www.sack.de
E-Book

E-Book, Deutsch, 441 Seiten

Reihe: mitp Professional

Weigend Python 3 für Studium und Ausbildung

Einfach lernen und professionell anwenden
1., 2022
ISBN: 978-3-7475-0435-2
Verlag: mitp Verlags GmbH & Co.KG
Format: PDF
Kopierschutz: 1 - PDF Watermark

Einfach lernen und professionell anwenden

E-Book, Deutsch, 441 Seiten

Reihe: mitp Professional

ISBN: 978-3-7475-0435-2
Verlag: mitp Verlags GmbH & Co.KG
Format: PDF
Kopierschutz: 1 - PDF Watermark



  • Alle wichtigen Grundlagen der Python-Programmierung
  • Für alle Studiengänge geeignet, keine Vorkenntnisse notwendig
  • Mit Übungsaufgaben und leicht verständlichen Beispielen aus zahlreichen Anwendungsgebieten
  • Inklusive kostenlosem E-Book zum Download

Programmierkenntnisse sind heute eine Kompetenz, die nicht nur in IT-nahen Berufen vorausgesetzt wird. Dieses Buch richtet sich besonders an alle, die Python in Studium und Ausbildung lernen und keine Vorkenntnisse in der Programmierung haben.

Die Ausrichtung des Studiengangs spielt dabei keine Rolle. Alle Themen werden fachunabhängig erläutert und die Übungen und praktischen Beispiele decken viele unterschiedliche Anwendungsbereiche ab, so dass Sie auf die verschiedensten Aufgaben optimal vorbereitet sind.

Sie werden Schritt für Schritt in die Programmiertechniken eingeführt: von den Grundlagen (Datentypen, Kontrollstrukturen, Funktionen) über die Entwicklung komplexer Anwendungen mit grafischer Benutzungsoberfläche bis hin zur Anbindung an SQL-Datenbanken, Datenvisualisierung und wissenschaftlichem Rechnen mit Arrays (NumPy). Dabei lernen Sie auch, gut lesbare Programmtexte und sauberen Code zu schreiben, und erfahren, wie Sie Fehler finden und von Anfang an vermeiden können.

Zahlreiche praktische Programmierübungen helfen Ihnen, Ihr Wissen zu festigen und sich auf Prüfungssituationen vorzubereiten. Die Lösungen zu allen Übungen inklusive Programmcode finden Sie auf der Verlagsseite zum kostenlosen Download.

Aus dem Inhalt:
  • Alle Grundlagen einfach erklärt
  • Objektorientierte Programmierung
  • Mit Modulen arbeiten und eigene Module erstellen
  • Verarbeiten von Texten und Bildern
  • Grafische Benutzungsoberflächen mit tkinter
  • SQL-Datenbanken mit sqlite3
  • Wissenschaftliches Rechnen mit NumPy
  • Datenvisualisierung mit Matplotlib
  • Nutzung von CoLab und PythonAnywhere
  • Webprogrammierung mit CGI und WSGI
  • Agile Softwareentwicklung


Michael Weigend hat an der Universität Potsdam in Informatik promoviert. Er war für mehr als 30 Jahre als Lehrer tätig und hat 20 Jahre lang an der FernUniversität Hagen Seminare zur Didaktik der Informatik gegeben. An der Universität Münster hält er im Rahmen eines Lehrauftrags Vorlesungen zur Python-Programmierung. Michael Weigend engagiert sich in mehreren nationalen und internationalen Communities für den Computer-Einsatz in der Bildung, darunter Constructionism, International Federation for Information Processing (TC 3 Computers in Education) , Bebras - International Contest on Informatics and Computational Thinking. Er hat über 60 wissenschaftliche Artikel veröffentlicht und mehrere Bücher zu den Themen Programmierung, Web Development und visuelle Modellierung geschrieben.
Weigend Python 3 für Studium und Ausbildung jetzt bestellen!

Zielgruppe


Einsteiger ohne Vorkenntnisse, insbesondere Studierende


Autoren/Hrsg.


Weitere Infos & Material


1;Cover;1
2;DRM;2
3;Titel;3
4;Impressum;4
5;Widmung;5
6;Inhaltsverzeichnis;6
7;Einleitung;18
7.1;Python in Studium und Ausbildung;18
7.2;Der Aufbau des Buchs;18
7.3;Achten Sie auf den Schrifttyp!;19
7.4;Programmtexte und Lösungen zum Download;20
8;1 Willkommen zu Python!;22
8.1;1.1Die Programmiersprache Python;22
8.2;1.2Was ist ein Algorithmus?;23
8.3;1.3Syntax und Semantik;23
8.4;1.4Interpreter und Compiler;24
8.5;1.5Python installieren;24
8.6;1.6Python im interaktiven Modus;26
8.7;1.7Die Entwicklungsumgebung IDLE;27
8.8;1.8Hotkeys für die IDLE-Shell;28
8.9;1.9Anweisungen;28
8.9.1;1.9.1Ausdruck;28
8.9.2;1.9.2Funktionsaufruf;29
8.9.3;1.9.3Zuweisung;29
8.9.4;1.9.4Erweiterte Zuweisungen;32
8.10;1.10Zahlen verarbeiten – Python als Taschenrechner;33
8.10.1;1.10.1Operatoren;33
8.10.2;1.10.2Variablen verwenden;35
8.11;1.11Eine weitere Entwicklungsumgebung: Thonny;35
8.12;1.12Notebooks mit Jupyter und CoLab;37
8.13;1.13Rückblick;37
8.14;1.14Übungen;38
8.15;1.15Lösung der Frage: Semantik im Alltag;39
9;2 Datentypen – die Python-Typ-Hierarchie;40
9.1;2.1Literale und die Funktion type();40
9.2;2.2Die Python-Typ-Hierarchie;41
9.3;2.3Standard-Typen;41
9.3.1;2.3.1Ganze Zahl (int);41
9.3.2;2.3.2Gleitkommazahl (float);43
9.3.3;2.3.3Komplexe Zahlen (complex);43
9.3.4;2.3.4Zeichenkette (str);44
9.3.5;2.3.5Tupel (tuple);45
9.3.6;2.3.6Liste (list);45
9.3.7;2.3.7Menge (set);45
9.3.8;2.3.8Dictionary (dict);46
9.3.9;2.3.9Wahrheitswerte – der Datentyp bool;46
9.3.10;2.3.10NoneType;47
9.4;2.4Gemeinsame Operationen für Kollektionen;47
9.4.1;2.4.1Kollektion;48
9.4.2;2.4.2Sequenz;48
9.5;2.5Objekte eines Typs erzeugen – Casting;49
9.6;2.6Dynamische Typisierung;51
9.7;2.7Rückblick;51
9.8;2.8Übung: Anweisungen;52
10;3 Interaktive Programme;54
10.1;3.1Das erste Python-Skript;54
10.2;3.2Das EVA-Prinzip;56
10.3;3.3Kommentare;58
10.4;3.4Projekt: Volumenberechnung;59
10.4.1;3.4.1Kürzerer Programmtext durch verschachtelte Funktionsaufrufe;60
10.4.2;3.4.2Aufruf der Funktion print() mit mehreren Argumenten;61
10.5;3.5Python-Programme starten;61
10.5.1;3.5.1Ausführung auf der Kommandozeile;62
10.5.2;3.5.2Start durch Anklicken des Programm-Icons unter Windows;63
10.5.3;3.5.3Python-Programme unter Linux – die Shebang-Zeile;65
10.5.4;3.5.4Starten im Finder von macOS;65
10.6;3.6Fehler finden;65
10.6.1;3.6.1Syntaxfehler;65
10.6.2;3.6.2Laufzeitfehler;66
10.6.3;3.6.3Semantische Fehler;67
10.6.4;3.6.4Tipps zum Fehlerfinden;67
10.7;3.7Rückblick;68
10.8;3.8Übungen;68
10.9;3.9Lösungen zu den Fragen;70
11;4 Kontrollstrukturen;72
11.1;4.1Programmverzweigungen;72
11.1.1;4.1.1Einseitige Verzweigung (if);72
11.1.2;4.1.2Projekt: Passwort;73
11.1.3;4.1.3Zweiseitige Verzweigung (if…else);74
11.1.4;4.1.4Projekt: Kinokarte;75
11.1.5;4.1.5Fallunterscheidung (if...elif...else);76
11.1.6;4.1.6Projekt: Auskunftautomat;77
11.2;4.2Das Layout von Python-Programmen: Zeilen und Blöcke;78
11.2.1;4.2.1Block;78
11.2.2;4.2.2Zeilenstruktur;78
11.3;4.3Bedingungen konstruieren;79
11.3.1;4.3.1Boolesche Werte;80
11.3.2;4.3.2Boolesche Operatoren;80
11.3.3;4.3.3Vergleichsketten;81
11.3.4;4.3.4Projekt: Früchte erkennen;81
11.4;4.4Bedingte Wiederholung – while;83
11.4.1;4.4.1Projekt: Aufsummieren;84
11.4.2;4.4.2Projekt: Planeten;85
11.4.3;4.4.3Projekt: Wurzelberechnung (Mathematik);86
11.4.4;4.4.4Endloswiederholung;88
11.5;4.5Iterationen – for;88
11.5.1;4.5.1Wiederholungen mit range();90
11.6;4.6Rückblick;91
11.7;4.7Übungen;91
11.8;4.8Lösungen zu den Fragen;93
12;5 Funktionen;94
12.1;5.1Warum definiert man Funktionen?;94
12.2;5.2Definition und Aufruf einer Funktion;94
12.2.1;5.2.1Projekt: Fallhöhe berechnen;95
12.3;5.3Optionale Parameter und voreingestellte Werte;97
12.3.1;5.3.1Erweiterung des Projekts: Fallhöhe auf unterschiedlichen Himmelskörpern;97
12.4;5.4Eine Funktion in der Shell testen;98
12.5;5.5Die return-Anweisung;99
12.5.1;5.5.1Prozeduren;99
12.5.2;5.5.2Wirkungen der return-Anweisung;99
12.6;5.6Positionsargumente und Schlüsselwortargumente;100
12.7;5.7Guter Programmierstil;102
12.7.1;5.7.1Funktionsname;102
12.7.2;5.7.2Funktionsannotationen;102
12.7.3;5.7.3Docstring;102
12.7.4;5.7.4Signatur;103
12.8;5.8Die print()-Funktion unter der Lupe;104
12.9;5.9Globale und lokale Namen;105
12.10;5.10Rekursive Funktionen;106
12.10.1;5.10.1Projekt: Die Berechnung der Fakultät;106
12.11;5.11Lambda-Funktionen *;108
12.12;5.12Funktionen als Argumente: map() und filter() *;109
12.12.1;5.12.1Mapping;109
12.12.2;5.12.2Filtern;111
12.13;5.13Rückblick;112
12.14;5.14Übungen;112
12.15;5.15Lösungen zu den Fragen;113
13;6 Mit Modulen arbeiten;116
13.1;6.1Importanweisungen;116
13.1.1;6.1.1Ein Modul importieren;116
13.1.2;6.1.2Funktionen aus einem Modul importieren;117
13.2;6.2Mathematische Funktionen: Das Modul math;118
13.3;6.3Zufallsfunktionen: Das Modul random;119
13.3.1;6.3.1Projekt: Würfeln;119
13.3.2;6.3.2Projekt: Wer ist der Nächste?;120
13.4;6.4Datum und Zeit;120
13.4.1;6.4.1Projekt: Uhrzeit;121
13.4.2;6.4.2Projekt: Rechentrainer;121
13.5;6.5Ein eigenes Modul erstellen;123
13.5.1;6.5.1Projekt: Ein Modul zur Volumenberechnung;123
13.5.2;6.5.2Welchen Vorteil haben Module?;127
13.6;6.6Module aus dem Python Package Index (PyPI);127
13.7;6.7Rückblick;127
13.8;6.8Übungen;128
14;7 Mit Kollektionen modellieren;130
14.1;7.1Sequenzen;130
14.1.1;7.1.1Listen;130
14.1.2;7.1.2Tupel;131
14.1.3;7.1.3Komplexe Sequenzen;131
14.1.4;7.1.4Iteration über eine Liste aus Tupeln;132
14.1.5;7.1.5Gemeinsame Operationen für Sequenzen;133
14.1.6;7.1.6Spezielle Operationen für Listen;134
14.1.7;7.1.7Sortieren;135
14.1.8;7.1.8Eine Liste erzeugen;136
14.2;7.2Projekt: Telefonliste;138
14.3;7.3Dictionaries;140
14.3.1;7.3.1Operationen für Dictionaries;141
14.3.2;7.3.2Ein Dictionary ändern;141
14.4;7.4Projekt: Vokabeltrainer;142
14.5;7.5Projekt: Routenplaner;144
14.5.1;7.5.1Verkehrswege und Graphen;144
14.5.2;7.5.2Programmierung;146
14.6;7.6Rückblick;148
14.7;7.7Übungen;148
14.8;7.8Lösungen zu den Fragen;149
15;8 Daten speichern;152
15.1;8.1Wie werden Daten gespeichert?;152
15.1.1;8.1.1Dateien öffnen;152
15.1.2;8.1.2Stream-Methoden;153
15.1.3;8.1.3Texte speichern und laden;154
15.1.4;8.1.4Binärdateien und Bytestrings;154
15.1.5;8.1.5Pfade im Verzeichnisbaum;155
15.2;8.2Laufzeitfehler abfangen;156
15.2.1;8.2.1try...except;157
15.2.2;8.2.2try…except…finally;157
15.3;8.3with-Anweisungen;158
15.4;8.4Projekt: Logbuch;159
15.5;8.5Datenstrukturen speichern und laden: Das Modul pickle;161
15.5.1;8.5.1Speichern;161
15.5.2;8.5.2Laden;162
15.6;8.6Projekt: Digitaler Planer;163
15.7;8.7Daten im JSON-Format speichern;166
15.7.1;8.7.1Aufbau eines JSON-Texts;166
15.7.2;8.7.2Die Grenzen von JSON;168
15.8;8.8Projekt: Temperaturdaten;168
15.8.1;8.8.1Writer;168
15.8.2;8.8.2Reader;169
15.9;8.9Daten aus dem Internet;170
15.10;8.10Projekt: Digitale Bibliothek;171
15.11;8.11Rückblick;173
15.12;8.12Übung: News-Check;173
15.13;8.13Lösungen zu den Fragen;174
16;9 Textverarbeitung;176
16.1;9.1Unicode-Nummern für Zeichen;176
16.2;9.2Escape-Sequenzen;177
16.3;9.3Stringmethoden;178
16.4;9.4Projekt: Goethes Wortschatz;180
16.5;9.5Projekt: Wie warm wird es heute?;181
16.6;9.6Ausblick: Reguläre Ausdrücke *;183
16.6.1;9.6.1Was ist ein regulärer Ausdruck?;183
16.6.2;9.6.2Aufbau eines regulären Ausdrucks;184
16.6.3;9.6.3Textpassagen finden mit findall();185
16.6.4;9.6.4Platzhalter für Zeichen aus einer Zeichenmenge;187
16.6.5;9.6.5Reguläre Ausdrücke verknüpfen;188
16.6.6;9.6.6Quantoren;188
16.6.7;9.6.7Sonderzeichen maskieren;189
16.6.8;9.6.8Gieriges oder nicht gieriges Finden;190
16.6.9;9.6.9Webscraping mit regulären Ausdrücken;191
16.7;9.7Texte mit variablen Teilen;192
16.7.1;9.7.1Formatierung;192
16.7.2;9.7.2Platzhalter mit Namen;193
16.7.3;9.7.3Formatangaben für Platzhalter;193
16.8;9.8Projekt: Textanalyse;194
16.9;9.9Projekt: Storytelling;196
16.10;9.10Rückblick;197
16.11;9.11Übungen;197
16.12;9.12Lösungen zu den Fragen;199
17;10 Zugriff auf die Systemumgebung;202
17.1;10.1Schnittstelle zum Betriebssystem: Das Modul os;202
17.2;10.2Suchen und Eigenschaften ermitteln;203
17.2.1;10.2.1Unterverzeichnisse ausgeben;203
17.2.2;10.2.2Verzeichnisbaum durchlaufen;204
17.3;10.3Dateien und Verzeichnisse anlegen und umbenennen;207
17.3.1;10.3.1Projekt: Bilddateien umbenennen;207
17.4;10.4Das Modul sys – die Schnittstelle zum Laufzeitsystem;209
17.4.1;10.4.1Informationen über die aktuelle Systemumgebung abfragen;209
17.4.2;10.4.2Kommandozeilenargumente abfragen;210
17.4.3;10.4.3Blick hinter die Kulissen: Speicherverwaltung *;211
17.4.4;10.4.4Zugriff auf Module;213
17.4.5;10.4.5Die Standardausgabe in eine Datei umleiten;214
17.5;10.5Rückblick;215
17.6;10.6Übungen;216
17.7;10.7Lösung zu der Frage: Welcher Kommentar passt?;217
18;11 Grafische Benutzungsoberflächen;218
18.1;11.1Widgets;218
18.2;11.2Das Anwendungsfenster Tk;219
18.3;11.3Ein Widget einfügen;220
18.4;11.4Das Aussehen der Widgets gestalten;221
18.4.1;11.4.1Die Größe eines Widgets;223
18.5;11.5Gemeinsame Methoden der Widgets;223
18.6;11.6Schaltflächen und Eventhandler;224
18.6.1;11.6.1Projekt: Motivator;224
18.7;11.7Das Layout verfeinern;225
18.8;11.8Raster-Layout;228
18.9;11.9Projekt: 25 Farben – ein automatisches Farbfelder-Bild;229
18.10;11.10Widgets zur Texteingabe;231
18.10.1;11.10.1Einzeilige Eingabe: Das Entry-Widget;231
18.10.2;11.10.2Mehrzeilige Eingabe: Das Text-Widget;232
18.10.3;11.10.3Projekt: Reimen mit Goethe;234
18.11;11.11Radiobuttons;236
18.11.1;11.11.1Projekt: Währungsrechner;237
18.12;11.12Dialogboxen;238
18.12.1;11.12.1Projekt: Texteditor;239
18.13;11.13Parallele Abläufe: Threads;240
18.13.1;11.13.1Ein Experiment: Countdown;241
18.13.2;11.13.2Eine Funktion in einem eigenen Thread ausführen;242
18.14;11.14Rückblick;243
18.15;11.15Übungen;244
18.16;11.16Lösungen zu den Fragen;246
19;12 Grafik programmieren;248
19.1;12.1Bilder auf Schaltflächen und Labels;248
19.1.1;12.1.1Projekt: Würfelspiel;248
19.1.2;12.1.2Bilder verändern;250
19.1.3;12.1.3Projekt: Graustufen;251
19.2;12.2Canvas;253
19.2.1;12.2.1Flächen gestalten;253
19.2.2;12.2.2Linien gestalten;255
19.2.3;12.2.3ID-Nummern: Elemente löschen oder bewegen;255
19.3;12.3Projekt: Creative Coding;256
19.4;12.4Die Python Imaging Library (PIL);258
19.4.1;12.4.1Ein Image-Objekt aus einer Datei gewinnen;259
19.4.2;12.4.2Ein Image-Objekt ohne Datei erzeugen;260
19.4.3;12.4.3Attribute und Methoden von Image-Objekten;260
19.4.4;12.4.4Bilder über Listen verarbeiten;262
19.4.5;12.4.5Bilder einfügen;264
19.4.6;12.4.6Projekt: Greenscreen;264
19.4.7;12.4.7PIL.Image-Objekte in tkinter-Anwendungen;266
19.4.8;12.4.8Projekt: Webcam-Viewer;267
19.5;12.5Rückblick;268
19.6;12.6Übungen;269
20;13 Fehler finden und vermeiden;272
20.1;13.1Zusicherungen;272
20.2;13.2Tracing;274
20.2.1;13.2.1Beispiel: Quicksort;274
20.3;13.3Debugging mit IDLE;276
20.3.1;13.3.1Der Debugger der Python-Shell;276
20.3.2;13.3.2Das Programm schrittweise durchlaufen;277
20.3.3;13.3.3Haltepunkte setzen;278
20.4;13.4Debugging mit Thonny;279
20.5;13.5Rückblick;281
20.6;13.6Lösungen zu den Fragen;282
21;14 Objektorientierte Programmierung;284
21.1;14.1Klassen und Objekte;284
21.1.1;14.1.1Was ist Objektorientierung?;284
21.1.2;14.1.2Klassen entwerfen und grafisch darstellen – UML;285
21.1.3;14.1.3Definition einer Klasse;286
21.1.4;14.1.4Objekte einer Klasse erzeugen: Instanziierung;287
21.1.5;14.1.5Auf Attribute zugreifen;287
21.1.6;14.1.6Methoden aufrufen;288
21.1.7;14.1.7Objekte mit variablen Anfangswerten;288
21.1.8;14.1.8Metaphern in der Programmierung;289
21.2;14.2Projekt: Geld;289
21.2.1;14.2.1Mit Geld-Objekten rechnen;290
21.2.2;14.2.2Klassenattribute;291
21.2.3;14.2.3Operatoren überladen – Polymorphie;291
21.3;14.3Magische Methoden;294
21.4;14.4Projekt: Abrechnung;295
21.5;14.5Vererbung;297
21.6;14.6Projekt: Farbtester;299
21.7;14.7Projekt: Zahlenregen;302
21.8;14.8Rückblick;306
21.9;14.9Übungen;306
21.10;14.10Lösungen zu den Fragen;309
22;15 Datenbanktechnik;310
22.1;15.1Was ist ein Datenbanksystem?;310
22.2;15.2Eine Datenbank entwerfen –das Entity-Relationship-Diagramm (ER);310
22.3;15.3Relationale Datenbanken;312
22.4;15.4Relationen mit Python darstellen *;314
22.4.1;15.4.1Menge von Tupeln;314
22.4.2;15.4.2Benannte Tupel (named tuples);314
22.5;15.5Das Modul sqlite3 – Schnittstelle zu einer SQL-Datenbank;315
22.5.1;15.5.1Mit SQL Tabellen anlegen und Tupel eintragen;316
22.5.2;15.5.2Mit sqlite3 eine SQLite-Datenbank aufbauen;317
22.5.3;15.5.3Formulierung von Anfragen (Queries) mit SQL;318
22.5.4;15.5.4Datenbankanfragen in Python-Programmen;319
22.5.5;15.5.5SQL-Anweisungen mit variablen Teilen;321
22.6;15.6Projekt: Zitatesammlung;321
22.6.1;15.6.1ER-Diagramm;322
22.6.2;15.6.2Tabellen (Beispiel);322
22.6.3;15.6.3Administration der Zitatesammlung;323
22.6.4;15.6.4Nach Zitaten suchen;325
22.7;15.7Rückblick;328
22.8;15.8Übungen;329
22.9;15.9Lösungen zu den Fragen;330
23;16 Wissenschaftliche Projekte;332
23.1;16.1NumPy – Rechnen mit Arrays;332
23.1.1;16.1.1Arrays;332
23.1.2;16.1.2Indizieren;337
23.1.3;16.1.3Slicing;338
23.1.4;16.1.4Arrays verändern;339
23.1.5;16.1.5Arithmetische Operationen;341
23.1.6;16.1.6Funktionen, die elementweise ausgeführt werden;342
23.1.7;16.1.7Matrizenmultiplikation mit dot();342
23.1.8;16.1.8Array-Funktionen und Achsen;343
23.2;16.2Datenvisualisierung mit matplotlib;344
23.2.1;16.2.1Liniendiagramme;345
23.2.2;16.2.2Mehrere Linien in einem Diagramm;347
23.2.3;16.2.3Histogramme;348
23.2.4;16.2.4Projekt: Würfeln;349
23.2.5;16.2.5Heatmaps;350
23.3;16.3Projekt: Bewegungsprofil;351
23.4;16.4Google Colaboratory – Colab;355
23.4.1;16.4.1Ein Colab-Notebook erzeugen;355
23.4.2;16.4.2Text-Zellen;357
23.4.3;16.4.3Bilder einfügen;359
23.4.4;16.4.4Notebooks speichern und öffnen;360
23.5;16.5Projekt: Füchse und Hasen – Simulation eines Räuber-Beute-Systems;361
23.5.1;16.5.1Notebooks teilen;364
23.6;16.6Rückblick;365
23.7;16.7Übungen;366
23.8;16.8Lösungen zu den Fragen;368
24;17 Dynamische Webseiten: CGI und WSGI;370
24.1;17.1Dynamische Webseiten mit CGI;371
24.1.1;17.1.1Projekt: Wie spät ist es?;372
24.1.2;17.1.2Die Ausgabe eines CGI-Skripts;373
24.1.3;17.1.3Wie ist ein CGI-Skript aufgebaut?;373
24.1.4;17.1.4CGI-Skripte unter Windows;374
24.1.5;17.1.5Aufruf mit dem Webbrowser;374
24.1.6;17.1.6Ein HTTP-Server;375
24.1.7;17.1.7Zugriff von einem anderen Computer im lokalen Netz;376
24.2;17.2Interaktive Webseiten;376
24.2.1;17.2.1Eingabekomponenten in einem HTML-Formular;378
24.2.2;17.2.2Verarbeitung von Eingabedaten mit FieldStorage;380
24.3;17.3Wie verarbeitet man Umlaute? *;381
24.4;17.4Dynamische Webseiten mit WSGI;383
24.4.1;17.4.1Das Applikationsobjekt;383
24.4.2;17.4.2Skripte mit eigenem HTTP-Server – das Modul wsgiref;384
24.5;17.5Projekt: Wie spät ist es? (II);384
24.6;17.6Projekt: Umfrage;387
24.6.1;17.6.1Die HTML-Schablonen;388
24.6.2;17.6.2Der algorithmische Teil;389
24.7;17.7Einen Hosting-Dienst nutzen;391
24.7.1;17.7.1Python Anywhere;391
24.7.2;17.7.2Das vorgefertigte OWSGI-Programm ausprobieren;391
24.7.3;17.7.3Projekt: Wie spät ist es? (III);394
24.7.4;17.7.4WSGI-Projekte modularisieren;395
24.8;17.8Rückblick;396
24.9;17.9Übungen;396
24.10;17.10Lösung zur Frage: Interaktive Webseite;398
25;18 Professionelle Software-Entwicklung;400
25.1;18.1Die Laufzeit von Programmen;400
25.1.1;18.1.1Schnelles Sortieren – Quicksort versus Straight Selection;400
25.1.2;18.1.2Performance-Analyse mit dem Profiler;403
25.2;18.2Agile Software-Entwicklung;404
25.2.1;18.2.1Software Engineering;404
25.2.2;18.2.2Einige Grundideen der agilen Software-Entwicklung;405
25.3;18.3Projekt: Digitales Notizbuch;406
25.3.1;18.3.1Stories;406
25.3.2;18.3.2Erste Iteration;407
25.3.3;18.3.3Zweite Iterationen;408
25.3.4;18.3.4Refactoring;409
25.3.5;18.3.5Neue Stories und Änderbarkeit;413
25.4;18.4Test Driven Development mit doctest;414
25.5;18.5Übung: Ticketbuchung;416
26;Glossar;418
27;Stichwortverzeichnis;426


Michael Weigend hat an der Universität Potsdam in Informatik promoviert. Er war für mehr als 30 Jahre als Lehrer tätig und hat 20 Jahre lang an der FernUniversität Hagen Seminare zur Didaktik der Informatik gegeben. An der Universität Münster hält er im Rahmen eines Lehrauftrags Vorlesungen zur Python-Programmierung. Michael Weigend engagiert sich in mehreren nationalen und internationalen Communities für den Computer-Einsatz in der Bildung, darunter Constructionism, International Federation for Information Processing (TC 3 Computers in Education) , Bebras – International Contest on Informatics and Computational Thinking. Er hat über 60 wissenschaftliche Artikel veröffentlicht und mehrere Bücher zu den Themen Programmierung, Web Development und visuelle Modellierung geschrieben.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.