Heim | Themen | !zurück!


 Rezensionen: 

   Brockhaus, Duden, Meyer, Harenberg, rororo, dtv ...:

Biografien | Flora & Fauna & Mineralien | Fotografie | Geschichte |
Kunst | Lexika | Mathematik | Naturwissenschaften | Religion |
Philosophie | Programmieren | Psychologie | Soziales | Sprache | Wirtschaft



 

Digibib Bücher auf CD/DVD










 Programmieren:   siehe auch: 





mitp
HANSER
Galileo
Computing
mitp
O'Reilly





Buch
Buch
Buch

Buch
Buch


Programmieren: 

'Python 3' (8. Aufl.)
'Einführung in Python 3' (3. Aufl.)
'Einstieg in Python 3' (6. Aufl.)

'Effektiv Python programmieren' (2. Aufl.)
'Python für Excel'
''




 Prof. Michael Weigend
 Bernd Klein
 Thomas Theis

 Brett Slatkin

 Felix Zumstein
 -
 -
 




 (Jan.2019)
 (2018)
 (2019)

 (2020)
 (2022)
 ()
 ()







 -
 -
.:

''
''


 
 


()
()


Python 3 (Lernen und professionell anwenden)
(8. erweiterte Auflage, 2019).
1.056 Seiten + Errata (Fehlerberichtigungen) von: 2021 (als PDF-download!)
.

von Michael Weigend
ISBN: 9783747500514


Michael Weigend promovierte an der Universität Potsdam in Informatik.

In seinen 30 Jahren als Lehrer hat er auch 20 Jahre lang an der Fern-Uni Hagen Seminare zur Didaktik der Informatik gegeben.

In Münster (Westf.) hält er im Rahmen eines Lehrauftrags Vorlesungen zur Python-Programmierung. So auch wieder ab Okt. 2021, wo ich ihn besuchen werde.


Das Buch behandelt die Grundlagen von Python 3 (Version 3.7)!

In der Welt der Computer-Bücher sticht ein Buch mit einem derartigen Umfang schon heraus und die 8. Auflage (wie bei diesem Buch) erreicht aber sicherlich kaum ein Buch dieser Kategorie.

Deshalb hat es mich auch sehr gereizt, mir dieses Buch zu bestellen und ihm genau "auf den Zahn zu fühlen".

Und ja, es ist - worauf ich mein besonderes Augenmerk gerichtet habe - m.M.n. sehr gut für Einsteiger*innen geeignet.

Es ist klar strukturiert (siehe das hier angehängte sehr umfangreiche Inhaltsverzeichnis und den reichhaltigen Index!)

Michael Weigend hat ein System entwickelt, mit dem alle wichtigten Elemente dieser Programmiersprache: vom interaktiven Modus (dem direktesten Zugang zu Python) über: Skripte, Klassen, Funktionen, Bibliotheken (dies sind Programmmodule mit Python-Funktionen, die die eigene Arbeit ungemein erleichtern können!), der speicherbaren Programmierung (etwa in PyCharm), bis hin zur Gestaltung von Benutzeroberflächen (wie mit tkinter) berücksichtigt werden.

Alle Kapitel schließen mit einfachen und auch komplexeren Übungsaufgaben und haben gut beschriebene Musterlösungen.

Das Buch ist auch gelungen gestaltet. So sind die sehr zahlreichen Beispiele in Kästchen (grau hinterlegt) dargestellt und lassen sich so sehr gut und schnell erfassen.

Ich empfehle - gerade für die längeren Programmbeispiele (Listings) - sich (wie es im Buch auf S. 24 unten angegeben ist) die Programmbeispiele zu diesem Buch (kostenlos) herunterzuladen:

http://www.mitp.de/0051

* Die Programmiersprache Python finde ich auch deshalb sehr interessant, weil die riesige, weltweite Python-Gemeinde Tausende von Bibliotheken (Python-Funktionen) entwickelt hat und immer weitere dazu kommen.

So kann man es sich als Programmier*in sparen, alles selber erfinden zu müssen!!!

** Python "schwebt" übrigens ständig über unser aller Köpfen!
Die Programmiersprache wird nämlich auf nur scheckkartengroßen Rasberry Pi-Einplatinen-Computern (die nur einen extrem geringen Stromverbrauch haben!) in der ISS-Raumstation für allerlei Aufgaben eingesetzt!!!




Inhaltsverzeichnis

Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Warum Python?  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Python 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
An wen wendet sich dieses Buch?  . . . . . . . . . . . . . . . . . . . . .
Inhalt und Aufbau  . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Hinweise zur Typographie . . . . . . . . . . . . . . . . . . . . . . . . .
Programmbeispiele  . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1 Was ist Programmieren? . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Hardware und Software. . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Programm als Algorithmus . . . . . . . . . . . . . . . . . . . . . . .
1.4 Syntax und Semantik. . . . . . . . . . . . . . . . . . . . . . . . . .
1.5 Interpreter und Compiler . . . . . . . . . . . . . . . . . . . . . . .
1.6 Programmierparadigmen  . . . . . . . . . . . . . . . . . . . . . . . .
1.7 Objektorientierte Programmierung . . . . . . . . . . . . . . . . . . .
1.7.1 Strukturelle Zerlegung . . . . . . . . . . . . . . . . . . . . . . .
1.7.2 Die Welt als System von Objekten . . . . . . . . . . . . . . . . . .
1.7.3 Objekte besitzen Attribute und beherrschen Methoden  . . . . . . . .
1.7.4 Objekte sind Instanzen von Klassen . . . . . . . . . . . . . . . . .
1.8 Hintergrund: Geschichte der objektorientierten Programmierung  . . . .
1.9 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.10 Lösungen  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Der Einstieg – Python im interaktiven Modus  . . . . . . . . . . . . . .
2.1 Python installieren. . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Python im interaktiven Modus . . . . . . . . . . . . . . . . . . . . .
2.2.1 Start des Python-Interpreters in einem Konsolenfenster . . . . . . .
2.2.2 Die Python-Shell von IDLE. . . . . . . . . . . . . . . . . . . . . .
2.2.3 Die ersten Python-Befehle ausprobieren . . . . . . . . . . . . . . .
2.2.4 Hotkeys  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Objekte  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4 Namen  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5 Hintergrund: Syntax-Regeln für Bezeichner  . . . . . . . . . . . . . .
2.6 Schlüsselwörter  . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7 Anweisungen  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7.1 Ausdruckanweisungen  . . . . . . . . . . . . . . . . . . . . . . . .
2.7.2 Import-Anweisungen . . . . . . . . . . . . . . . . . . . . . . . . .
2.7.3 Zuweisungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7.4 Erweiterte Zuweisungen . . . . . . . . . . . . . . . . . . . . . . .


Inhaltsverzeichnis 06

2.7.5 Hintergrund: Dynamische Typisierung  . . . . . . . . . . . . . . . .
2.8 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.9 Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 Python-Skripte . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1 Ausprobieren, nachmachen, besser machen! . . . . . . . . . . . . . . .
3.2 Skripte editieren und ausführen mit IDLE . . . . . . . . . . . . . . .
3.3 Ausführen eines Python-Skripts . . . . . . . . . . . . . . . . . . . .
3.4 Kommentare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5 Die Zeilenstruktur von Python-Programmen . . . . . . . . . . . . . . .
3.6 Das EVA-Prinzip  . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.7 Phasen der Programmentwicklung . . . . . . . . . . . . . . . . . . . .
3.8 Guter Programmierstil  . . . . . . . . . . . . . . . . . . . . . . . .
3.9 Hintergrund: Die Kunst des Fehlerfindens . . . . . . . . . . . . . . .
3.10 Weitere Entwicklungsumgebungen für Python . . . . . . . . . . . . . .
3.11 Aufgaben  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.12 Lösungen  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4 Standard-Datentypen. . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1 Daten als Objekte  . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Fundamentale Datentypen im Überblick . . . . . . . . . . . . . . . . .
4.3 Typen und Klassen  . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4 NoneType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5 Wahrheitswerte – der Datentyp bool . . . . . . . . . . . . . . . . . .
4.6 Ganze Zahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.7 Gleitkommazahlen . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.8 Komplexe Zahlen  . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.9 Arithmetische Operatoren für Zahlen. . . . . . . . . . . . . . . . . .
4.10 Sequenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.10.1 Zeichenketten (Strings) . . . . . . . . . . . . . . . . . . . . . .
4.10.2 Bytestrings . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.10.3 Tupel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.10.4 Liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.10.5 Bytearray . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.10.6 Einige Grundoperationen für Sequenzen . . . . . . . . . . . . . . .
4.10.7 Veränderbare und unveränderbare Sequenzen . . . . . . . . . . . . .
4.11 Mengen  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.12 Dictionaries  . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.13 Typumwandlungen . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.13.1 int() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.13.2 float() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.13.3 complex() . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.13.4 bool()  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.13.5 str() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.13.6 dict(), list() und tuple()  . . . . . . . . . . . . . . . . . . . .


Inhaltsverzeichnis 07

4.14 Aufgaben  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.15 Lösungen  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 Kontrollstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1 Einfache Bedingungen . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.1 Vergleiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.2 Zugehörigkeit zu einer Menge (in, not in)  . . . . . . . . . . . . .
5.1.3 Beliebige Ausdrücke als Bedingungen  . . . . . . . . . . . . . . . .
5.2 Zusammengesetzte Bedingungen – logische Operatoren . . . . . . . . . .
5.2.1 Negation (not) . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.2 Konjunktion (and). . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.3 Disjunktion (or) . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.4 Formalisierung von Bedingungen . . . . . . . . . . . . . . . . . . .
5.2.5 Hinweis zum Programmierstil  . . . . . . . . . . . . . . . . . . . .
5.3 Programmverzweigungen (bedingte Anweisungen) . . . . . . . . . . . . .
5.3.1 Einseitige Verzweigung (if)  . . . . . . . . . . . . . . . . . . . .
5.3.2 Zweiseitige Verzweigung (if-else)  . . . . . . . . . . . . . . . . .
5.3.3 Mehrfache Fallunterscheidung (elif)  . . . . . . . . . . . . . . . .
5.3.4 Bedingte Ausdrücke . . . . . . . . . . . . . . . . . . . . . . . . .
5.4 Bedingte Wiederholung (while)  . . . . . . . . . . . . . . . . . . . .
5.4.1 Endlosschleifen  . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5 Iteration über eine Kollektion (for) . . . . . . . . . . . . . . . . .
5.5.1 Zählschleifen – Verwendung von range() . . . . . . . . . . . . . . .
5.5.2 Verschachtelte Iterationen . . . . . . . . . . . . . . . . . . . . .
5.5.3 Vertiefung: Iterative Berechnung rekursiver Folgen . . . . . . . . .
5.6 Abbruch einer Schleife mit break . . . . . . . . . . . . . . . . . . .
5.6.1 Abbruch eines Schleifendurchlaufs mit continue . . . . . . . . . . .
5.7 Abfangen von Ausnahmen mit try . . . . . . . . . . . . . . . . . . . .
5.7.1 try...except . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.8 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.9 Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1 Aufruf von Funktionen  . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Definition von Funktionen  . . . . . . . . . . . . . . . . . . . . . .
6.3 Schrittweise Verfeinerung. . . . . . . . . . . . . . . . . . . . . . .
6.4 Ausführung von Funktionen  . . . . . . . . . . . . . . . . . . . . . .
6.4.1 Globale und lokale Namen . . . . . . . . . . . . . . . . . . . . . .
6.4.2 Seiteneffekte – die global-Anweisung . . . . . . . . . . . . . . . .
6.4.3 Parameterübergabe  . . . . . . . . . . . . . . . . . . . . . . . . .
6.5 Voreingestellte Parameterwerte . . . . . . . . . . . . . . . . . . . .
6.5.1 Schlüsselwort-Argumente  . . . . . . . . . . . . . . . . . . . . . .
6.6 Funktionen mit beliebiger Anzahl von Parametern  . . . . . . . . . . .
6.7 Lokale Funktionen  . . . . . . . . . . . . . . . . . . . . . . . . . .
6.8 Rekursive Funktionen . . . . . . . . . . . . . . . . . . . . . . . . .


Inhaltsverzeichnis 08

6.9 Experimente zur Rekursion mit der Turtle-Grafik  . . . . . . . . . . .
6.9.1 Turtle-Befehle im interaktiven Modus . . . . . . . . . . . . . . . .
6.9.2 Eine rekursive Spirale . . . . . . . . . . . . . . . . . . . . . . .
6.9.3 Baumstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.9.4 Künstlicher Blumenkohl – selbstähnliche Bilder . . . . . . . . . . .
6.10 Rekursive Zahlenfunktionen  . . . . . . . . . . . . . . . . . . . . .
6.11 Hintergrund: Wie werden rekursive Funktionen ausgeführt?  . . . . . .
6.11.1 Execution Frames  . . . . . . . . . . . . . . . . . . . . . . . . .
6.11.2 Rekursionstiefe . . . . . . . . . . . . . . . . . . . . . . . . . .
6.12 Funktionen als Objekte. . . . . . . . . . . . . . . . . . . . . . . .
6.12.1 Hintergrund: Typen sind keine Funktionen  . . . . . . . . . . . . .
6.13 Lambda-Formen . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.14 Funktionsannotationen: Typen zuordnen . . . . . . . . . . . . . . . .
6.15 Hinweise zum Programmierstil. . . . . . . . . . . . . . . . . . . . .
6.15.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.15.2 Funktionsnamen. . . . . . . . . . . . . . . . . . . . . . . . . . .
6.15.3 Kommentierte Parameter. . . . . . . . . . . . . . . . . . . . . . .
6.15.4 Docstrings  . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.16 Aufgaben  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.17 Lösungen  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7 Sequenzen, Mengen und Generatoren  . . . . . . . . . . . . . . . . . . .
7.1 Gemeinsame Operationen für Sequenzen . . . . . . . . . . . . . . . . .
7.1.1 Zugriff auf Elemente einer Sequenz . . . . . . . . . . . . . . . . .
7.1.2 Slicing von Sequenzen  . . . . . . . . . . . . . . . . . . . . . . .
7.1.3 Auspacken (unpacking)  . . . . . . . . . . . . . . . . . . . . . . .
7.2 Vertiefung: Rekursive Funktionen für Sequenzen . . . . . . . . . . . .
7.2.1 Rekursives Summieren . . . . . . . . . . . . . . . . . . . . . . . .
7.2.2 Rekursive Suche  . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3 Tupel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4 Listen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.1 Eine Liste erzeugen. . . . . . . . . . . . . . . . . . . . . . . . .
7.4.2 Eine Liste verändern . . . . . . . . . . . . . . . . . . . . . . . .
7.4.3 Flache und tiefe Kopien  . . . . . . . . . . . . . . . . . . . . . .
7.4.4 Listen sortieren . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.5 Binäre Suche in einer sortierten Liste . . . . . . . . . . . . . . .
7.4.6 Zwei Sortierverfahren im Vergleich . . . . . . . . . . . . . . . . .
7.4.7 Modellieren mit Listen – Beispiel: die Charts  . . . . . . . . . . .
7.5 Generatoren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.5.1 Generatorausdrücke . . . . . . . . . . . . . . . . . . . . . . . . .
7.5.2 Generatorfunktionen  . . . . . . . . . . . . . . . . . . . . . . . .
7.5.3 Iteratoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.5.4 Verwendung von Generatoren . . . . . . . . . . . . . . . . . . . . .
7.6 Mengen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.6.1 Operationen für Mengen . . . . . . . . . . . . . . . . . . . . . . .


Inhaltsverzeichnis 09

7.6.2 Modellieren mit Mengen – Beispiel: Graphen . . . . . . . . . . . . .
7.7 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.8 Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8 Dictionaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.1 Operationen für Dictionaries . . . . . . . . . . . . . . . . . . . . .
8.2 Wie erstellt man ein Dictionary? . . . . . . . . . . . . . . . . . . .
8.2.1 Definition mit einem Dictionary-Display  . . . . . . . . . . . . . .
8.2.2 Schrittweiser Aufbau eines Dictionarys . . . . . . . . . . . . . . .
8.2.3 Ein Dictionary aus anderen Dictionaries zusammensetzen – update()  .
8.3 Zugriff auf Daten in einem Dictionary  . . . . . . . . . . . . . . . .
8.3.1 Vergebliche Zugriffsversuche . . . . . . . . . . . . . . . . . . . .
8.4 Praxisbeispiel: Vokabeltrainer . . . . . . . . . . . . . . . . . . . .
8.5 Typische Fehler  . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.6 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.7 Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9 Ein- und Ausgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.1 Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.1.1 Die Rolle der Files bei E/A-Operationen  . . . . . . . . . . . . . .
9.1.2 Was ist ein File?. . . . . . . . . . . . . . . . . . . . . . . . . .
9.1.3 Ein File-Objekt erzeugen . . . . . . . . . . . . . . . . . . . . . .
9.1.4 Speichern einer Zeichenkette . . . . . . . . . . . . . . . . . . . .
9.1.5 Laden einer Zeichenkette aus einer Datei . . . . . . . . . . . . . .
9.1.6 Absolute und relative Pfade  . . . . . . . . . . . . . . . . . . . .
9.1.7 Zwischenspeichern, ohne zu schließen . . . . . . . . . . . . . . . .
9.1.8 Zugriff auf Files (lesen und schreiben)  . . . . . . . . . . . . . .
9.1.9 Speichern beliebiger Daten auf Files . . . . . . . . . . . . . . . .
9.2 Mehr Zuverlässigkeit durch try- und with-Anweisungen . . . . . . . . .
9.2.1 try...finally  . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2.2 with-Anweisungen . . . . . . . . . . . . . . . . . . . . . . . . . .
9.3 Objekte speichern mit pickle . . . . . . . . . . . . . . . . . . . . .
9.3.1 Funktionen zum Speichern und Laden . . . . . . . . . . . . . . . . .
9.4 Die Pseudofiles sys.stdin und sys.stdout . . . . . . . . . . . . . . .
9.5 Ausgabe von Werten mit der print()-Funktion  . . . . . . . . . . . . .
9.5.1 Anwendung: Ausgabe von Tabellen  . . . . . . . . . . . . . . . . . .
9.6 Kommandozeilen-Argumente (Optionen). . . . . . . . . . . . . . . . . .
9.7 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.8 Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10 Definition eigener Klassen  . . . . . . . . . . . . . . . . . . . . . .
10.1 Klassen und Objekte . . . . . . . . . . . . . . . . . . . . . . . . .
10.2 Definition von Klassen  . . . . . . . . . . . . . . . . . . . . . . .
10.3 Objekte (Instanzen) . . . . . . . . . . . . . . . . . . . . . . . . .


Inhaltsverzeichnis 10

10.4 Zugriff auf Attribute – Sichtbarkeit  . . . . . . . . . . . . . . . .
10.4.1 Öffentliche Attribute . . . . . . . . . . . . . . . . . . . . . . .
10.4.2 Private Attribute . . . . . . . . . . . . . . . . . . . . . . . . .
10.4.3 Properties  . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.4.4 Dynamische Erzeugung von Attributen . . . . . . . . . . . . . . . .
10.5 Methoden. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.5.1 Polymorphismus – Überladen von Operatoren . . . . . . . . . . . . .
10.5.2 Vertiefung: Objekte ausführbar machen – die Methode __call__()  . .
10.5.3 Statische Methoden  . . . . . . . . . . . . . . . . . . . . . . . .
10.6 Abstraktion, Verkapselung und Geheimnisprinzip  . . . . . . . . . . .
10.7 Vererbung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.7.1 Spezialisierungen . . . . . . . . . . . . . . . . . . . . . . . . .
10.7.2 Beispiel: Die Klasse Konto – eine Spezialisierung der Klasse Geld .
10.7.3 Vertiefung: Standardklassen als Basisklassen  . . . . . . . . . . .
10.8 Hinweise zum Programmierstil. . . . . . . . . . . . . . . . . . . . .
10.8.1 Bezeichner. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.8.2 Sichtbarkeit  . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.8.3 Dokumentation von Klassen . . . . . . . . . . . . . . . . . . . . .
10.9 Typische Fehler . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.10 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.11 Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11 Klassenbibliotheken in Modulen speichern  . . . . . . . . . . . . . . .
11.1 Testen einer Klasse in einem lauffähigen Stand-alone-Skript . . . . .
11.2 Module speichern und importieren. . . . . . . . . . . . . . . . . . .
11.3 Den Zugang zu einem Modul sicherstellen . . . . . . . . . . . . . . .
11.4 Programmierstil: Verwendung und Dokumentation von Modulen . . . . . .
12 Objektorientiertes Modellieren  . . . . . . . . . . . . . . . . . . . .
12.1 Phasen einer objektorientierten Software-Entwicklung  . . . . . . . .
12.2 Fallstudie: Modell eines Wörterbuchs  . . . . . . . . . . . . . . . .
12.2.1 OOA: Entwicklung einer Klassenstruktur  . . . . . . . . . . . . . .
12.2.2 OOD: Entwurf einer Klassenstruktur: Implementierung in Python . . .
12.2.3 OOP: Implementierung der Klassenstruktur  . . . . . . . . . . . . .
12.3 Assoziationen zwischen Klassen  . . . . . . . . . . . . . . . . . . .
12.3.1 Reflexive Assoziationen . . . . . . . . . . . . . . . . . . . . . .
12.3.2 Aggregation . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.4 Beispiel: Management eines Musicals . . . . . . . . . . . . . . . . .
12.4.1 OOA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.4.2 OOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.4.3 OOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.5 Aufgaben  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.6 Lösungen  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


Inhaltsverzeichnis 11

13 Textverarbeitung  . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.1 Standardmethoden zur Verarbeitung von Zeichenketten . . . . . . . . .
13.1.1 Formatieren . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.1.2 Schreibweise  . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.1.3 Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.1.4 Entfernen und Aufspalten  . . . . . . . . . . . . . . . . . . . . .
13.1.5 Suchen und Ersetzen . . . . . . . . . . . . . . . . . . . . . . . .
13.2 Codierung und Decodierung . . . . . . . . . . . . . . . . . . . . . .
13.2.1 Platonische Zeichen und Unicode . . . . . . . . . . . . . . . . . .
13.2.2 Vertiefung: Zeichenketten durch Bytefolgen darstellen . . . . . . .
13.3 Automatische Textproduktion . . . . . . . . . . . . . . . . . . . . .
13.3.1 Texte mit variablen Teilen – Anwendung: String-Methode format() . .
13.3.2 Vertiefung: Eine Tabelle erstellen  . . . . . . . . . . . . . . . .
13.3.3 Mahnbriefe  . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.3.4 Textuelle Repräsentation eines Objektes . . . . . . . . . . . . . .
13.3.5 F-Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.4 Analyse von Texten  . . . . . . . . . . . . . . . . . . . . . . . . .
13.4.1 Chat Bots . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.4.2 Textanalyse mit einfachen Vorkommenstests . . . . . . . . . . . . .
13.5 Reguläre Ausdrücke. . . . . . . . . . . . . . . . . . . . . . . . . .
13.5.1 Aufbau eines regulären Ausdrucks  . . . . . . . . . . . . . . . . .
13.5.2 Objekte für reguläre Ausdrücke (RE-Objekte) . . . . . . . . . . . .
13.5.3 Analyse von Strings mit match() und search()  . . . . . . . . . . .
13.5.4 Textpassagen extrahieren mit findall()  . . . . . . . . . . . . . .
13.5.5 Zeichenketten zerlegen mit split(). . . . . . . . . . . . . . . . .
13.5.6 Teilstrings ersetzen mit sub(). . . . . . . . . . . . . . . . . . .
13.5.7 Match-Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.6 Den Computer zum Sprechen bringen – Sprachsynthese  . . . . . . . . .
13.6.1 Buchstabieren . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.6.2 Den Klang der Stimme verändern  . . . . . . . . . . . . . . . . . .
13.7 Aufgaben  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.8 Lösungen  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14 Systemfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.1 Das Modul sys – die Schnittstelle zum Laufzeitsystem  . . . . . . . .
14.1.1 Informationen über die aktuelle Systemumgebung. . . . . . . . . . .
14.1.2 Standardeingabe und -ausgabe. . . . . . . . . . . . . . . . . . . .
14.1.3 Die Objektverwaltung beobachten mit getrefcount() . . . . . . . . .
14.1.4 Ausführung eines Skripts beenden  . . . . . . . . . . . . . . . . .
14.2 Das Modul os – die Schnittstelle zum Betriebssystem . . . . . . . . .
14.2.1 Dateien und Verzeichnisse suchen  . . . . . . . . . . . . . . . . .
14.2.2 Hintergrund: Zugriffsrechte abfragen und ändern (Windows und Unix).
14.2.3 Dateien und Verzeichnisse anlegen und modifizieren  . . . . . . . .


Inhaltsverzeichnis 12

14.2.4 Merkmale von Dateien und Verzeichnissen abfragen. . . . . . . . . .
14.2.5 Pfade verarbeiten . . . . . . . . . . . . . . . . . . . . . . . . .
14.2.6 Hintergrund: Umgebungsvariablen . . . . . . . . . . . . . . . . . .
14.2.7 Systematisches Durchlaufen eines Verzeichnisbaumes  . . . . . . . .
14.3 Datum und Zeit. . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.3.1 Funktionen des Moduls time. . . . . . . . . . . . . . . . . . . . .
14.3.2 Sekundenformat  . . . . . . . . . . . . . . . . . . . . . . . . . .
14.3.3 Zeit-Tupel  . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.3.4 Zeitstrings . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.3.5 Einen Prozess unterbrechen mit sleep(). . . . . . . . . . . . . . .
14.4 Zeitberechnungen mit dem Modul datetime . . . . . . . . . . . . . . .
14.4.1 Die Klasse datetime . . . . . . . . . . . . . . . . . . . . . . . .
14.4.2 Die Zeitzone  . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.4.3 Die Klasse timedelta  . . . . . . . . . . . . . . . . . . . . . . .
14.5 Aufgaben  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.6 Lösungen  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15 Grafische Benutzungsoberflächen mit tkinter . . . . . . . . . . . . . .
15.1 Ein einführendes Beispiel . . . . . . . . . . . . . . . . . . . . . .
15.2 Einfache Widgets  . . . . . . . . . . . . . . . . . . . . . . . . . .
15.3 Die Master-Slave-Hierarchie . . . . . . . . . . . . . . . . . . . . .
15.4 Optionen der Widgets  . . . . . . . . . . . . . . . . . . . . . . . .
15.4.1 Optionen bei der Instanziierung setzen  . . . . . . . . . . . . . .
15.4.2 Widget-Optionen nachträglich konfigurieren  . . . . . . . . . . . .
15.4.3 Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15.4.4 Farben  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15.4.5 Rahmen  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15.4.6 Die Größe eines Widgets . . . . . . . . . . . . . . . . . . . . . .
15.4.7 Leerraum um Text  . . . . . . . . . . . . . . . . . . . . . . . . .
15.5 Gemeinsame Methoden der Widgets . . . . . . . . . . . . . . . . . . .
15.6 Die Klasse Tk . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15.7 Die Klasse Button . . . . . . . . . . . . . . . . . . . . . . . . . .
15.8 Die Klasse Label. . . . . . . . . . . . . . . . . . . . . . . . . . .
15.8.1 Dynamische Konfiguration der Beschriftung . . . . . . . . . . . . .
15.8.2 Verwendung von Kontrollvariablen. . . . . . . . . . . . . . . . . .
15.9 Die Klasse Entry. . . . . . . . . . . . . . . . . . . . . . . . . . .
15.10 Die Klasse Radiobutton . . . . . . . . . . . . . . . . . . . . . . .
15.11 Die Klasse Checkbutton . . . . . . . . . . . . . . . . . . . . . . .
15.12 Die Klasse Scale . . . . . . . . . . . . . . . . . . . . . . . . . .
15.13 Die Klasse Frame . . . . . . . . . . . . . . . . . . . . . . . . . .
15.14 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15.15 Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16 Layout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.1 Der Packer  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


Inhaltsverzeichnis 13

16.2 Layout-Fehler . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.3 Raster-Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.4 Vorgehensweise bei der GUI-Entwicklung  . . . . . . . . . . . . . . .
16.4.1 Die Benutzungsoberfläche gestalten  . . . . . . . . . . . . . . . .
16.4.2 Funktionalität hinzufügen . . . . . . . . . . . . . . . . . . . . .
16.5 Aufgaben  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.6 Lösungen  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17 Grafik  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.1 Die tkinter-Klasse Canvas . . . . . . . . . . . . . . . . . . . . . .
17.1.1 Generierung grafischer Elemente – ID, Positionierung/Display-Liste.
17.1.2 Grafische Elemente gestalten. . . . . . . . . . . . . . . . . . . .
17.1.3 Visualisieren mit Kreisdiagrammen . . . . . . . . . . . . . . . . .
17.2 Die Klasse PhotoImage . . . . . . . . . . . . . . . . . . . . . . . .
17.2.1 Eine Pixelgrafik erzeugen. . . . . . . . . . . . . . . . . . . . .
17.2.2 Fotos analysieren und verändern . . . . . . . . . . . . . . . . . .
17.3 Bilder in eine Benutzungsoberfläche einbinden . . . . . . . . . . . .
17.3.1 Icons auf Schaltflächen . . . . . . . . . . . . . . . . . . . . . .
17.3.2 Hintergrundbilder . . . . . . . . . . . . . . . . . . . . . . . . .
17.3.3 Hintergrund: Das PPM-Format . . . . . . . . . . . . . . . . . . . .
17.4 Die Python Imaging Library (PIL)  . . . . . . . . . . . . . . . . . .
17.4.1 Installation eines Moduls mit pip . . . . . . . . . . . . . . . . .
17.4.2 Mit PIL beliebige Bilddateien einbinden . . . . . . . . . . . . . .
17.4.3 Steganografie – Informationen in Bildern verstecken . . . . . . . .
17.5 Aufgaben  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.6 Lösungen  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18 Event-Verarbeitung  . . . . . . . . . . . . . . . . . . . . . . . . . .
18.1 Einführendes Beispiel . . . . . . . . . . . . . . . . . . . . . . . .
18.2 Event-Sequenzen . . . . . . . . . . . . . . . . . . . . . . . . . . .
18.2.1 Event-Typen . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18.2.2 Qualifizierer für Maus- und Tastatur-Events . . . . . . . . . . . .
18.2.3 Modifizierer. . . . . . . . . . . . . . . . . . . . . . . . . . . .
18.3 Beispiel: Tastaturereignisse verarbeiten. . . . . . . . . . . . . . .
18.4 Programmierung eines Eventhandlers  . . . . . . . . . . . . . . . . .
18.4.1 Beispiel für eine Event-Auswertung  . . . . . . . . . . . . . . . .
18.5 Bindemethoden . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18.6 Aufgaben  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18.7 Lösungen  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19 Komplexe Benutzungsoberflächen. . . . . . . . . . . . . . . . . . . . .
19.1 Text-Widgets. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19.1.1 Methoden der Text-Widgets . . . . . . . . . . . . . . . . . . . . .
19.2 Rollbalken (Scrollbars) . . . . . . . . . . . . . . . . . . . . . . .


Inhaltsverzeichnis 14

19.3 Menüs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19.3.1 Die Klasse Menu . . . . . . . . . . . . . . . . . . . . . . . . . .
19.3.2 Methoden der Klasse Menu  . . . . . . . . . . . . . . . . . . . . .
19.4 Texteditor mit Menüleiste und Pulldown-Menü . . . . . . . . . . . . .
19.5 Dialogboxen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19.6 Applikationen mit mehreren Fenstern . . . . . . . . . . . . . . . . .
19.7 Aufgaben  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19.8 Lösungen  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20 Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.1 Funktionen in einem Thread ausführen  . . . . . . . . . . . . . . . .
20.2 Thread-Objekte erzeugen – die Klasse Thread . . . . . . . . . . . . .
20.3 Aufgaben  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.4 Lösungen  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21 Fehler finden und vermeiden . . . . . . . . . . . . . . . . . . . . . .
21.1 Testen von Bedingungen  . . . . . . . . . . . . . . . . . . . . . . .
21.1.1 Ausnahmen (Exceptions)  . . . . . . . . . . . . . . . . . . . . . .
21.1.2 Testen von Vor- und Nachbedingungen mit assert  . . . . . . . . . .
21.1.3 Vertiefung: Programmabstürze ohne Fehlermeldung . . . . . . . . . .
21.2 Debugging-Modus und optimierter Modus . . . . . . . . . . . . . . . .
21.3 Ausnahmen gezielt auslösen  . . . . . . . . . . . . . . . . . . . . .
21.4 Selbstdokumentation . . . . . . . . . . . . . . . . . . . . . . . . .
21.5 Dokumentation eines Programmlaufs mit Log-Dateien . . . . . . . . . .
21.5.1 Grundfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . .
21.5.2 Beispiel: Logging in der GUI-Programmierung. . . . . . . . . . . .
21.6 Vertiefung: Professionelles Arbeiten mit Logging . . . . . . . . . .
21.6.1 Logging-Levels. . . . . . . . . . . . . . . . . . . . . . . . . . .
21.6.2 Logger-Objekte . . . . . . . . . . . . . . . . . . . . . . . . . .
21.6.3 Das Format der Logging-Meldungen konfigurieren . . . . . . . . . .
21.7 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21.8 Aufgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21.9 Lösung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22 Dynamische Webseiten – CGI und WSGI . . . . . . . . . . . . . . . . . .
22.1 Wie funktionieren dynamische Webseiten? . . . . . . . . . . . . . . .
22.2 Wie spät ist es? Aufbau eines CGI-Skripts . . . . . . . . . . . . . .
22.2.1 Ein einfacher HTTP-Server . . . . . . . . . . . . . . . . . . . . .
22.3 Kommunikation über interaktive Webseiten . . . . . . . . . . . . . .
22.3.1 Aufbau eines HTML-Formulars . . . . . . . . . . . . . . . . . . . .
22.3.2 Eingabekomponenten in einem HTML-Formular. . . . . . . . . . . . .
22.4 Verarbeitung von Eingabedaten mit FieldStorage . . . . . . . . . . .
22.5 Sonderzeichen handhaben . . . . . . . . . . . . . . . . . . . . . . .
22.6 CGI-Skripte debuggen . . . . . . . . . . . . . . . . . . . . . . . .
22.7 Der Apache-Webserver . . . . . . . . . . . . . . . . . . . . . . . .
22.7.1 Den Apache-Server installieren . . . . . . . . . . . . . . . . . .


Inhaltsverzeichnis 15

22.7.2 CGI-Skripte auf dem Apache-Server . . . . . . . . . . . . . . . . .
22.8 Dynamische Webseiten mit WSGI. . . . . . . . . . . . . . . . . . . .
22.8.1 Einfacher geht’s nicht: Ein Stand-alone-WSGI-Webserver: wsgiref . .
22.9 mod_wscgi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22.9.1 Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . .
22.9.2 Vorbereitung . . . . . . . . . . . . . . . . . . . . . . . . . . .
22.9.3 Den Apache-Server konfigurieren . . . . . . . . . . . . . . . . . .
22.9.4 Ein WSGI-Skript für den Apache-Server . . . . . . . . . . . . . . .
22.9.5 Tipps zum Debuggen . . . . . . . . . . . . . . . . . . . . . . . .
22.9.6 Zugriff von einem entfernten Rechner im WLAN . . . . . . . . . . .
22.10 Verarbeitung von Eingabedaten aus Formularen . . . . . . . . . . . .
22.11 Objektorientierte WSGI-Skripte – Beispiel: ein Chatroom. . . . . . .
22.11.1 Die HTML-Seiten . . . . . . . . . . . . . . . . . . . . . . . . .
22.11.2 Die Klassen für den Chatroom. . . . . . . . . . . . . . . . . . .
22.11.3 Skript (Teil 2): . . . . . . . . . . . . . . . . . . . . . . . . .
22.12 WSGI-Skripte mit Cookies . . . . . . . . . . . . . . . . . . . . . .
22.12.1 Besuche zählen . . . . . . . . . . . . . . . . . . . . . . . . . .
22.13 Aufgabe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22.14 Lösung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23 Internet-Programmierung. . . . . . . . . . . . . . . . . . . . . . . .
23.1 Was ist ein Protokoll? . . . . . . . . . . . . . . . . . . . . . . .
23.2 Übertragung von Dateien mit FTP. . . . . . . . . . . . . . . . . . .
23.2.1 Das Modul ftplib . . . . . . . . . . . . . . . . . . . . . . . . .
23.2.2 Navigieren und Downloaden . . . . . . . . . . . . . . . . . . . . .
23.2.3 Ein Suchroboter für FTP-Server. . . . . . . . . . . . . . . . . . .
23.3 Zugriff auf Webseiten mit HTTP und HTTPS . . . . . . . . . . . . . .
23.3.1 Automatische Auswertung von Webseiten . . . . . . . . . . . . . . .
23.4 Zugriff auf Ressourcen im Internet über deren URL . . . . . . . . . .
23.4.1 Webseite herunterladen und verarbeiten . . . . . . . . . . . . . .
23.4.2 Projekt: Wie warm wird es heute? . . . . . . . . . . . . . . . . .
23.4.3 Datei herunterladen und speichern . . . . . . . . . . . . . . . . .
23.4.4 Projekt: Filme herunterladen . . . . . . . . . . . . . . . . . . .
23.5 E-Mails senden mit SMTP . . . . . . . . . . . . . . . . . . . . . . .
23.6 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23.7 Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24 Datenbanken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24.1 Was ist ein Datenbanksystem? . . . . . . . . . . . . . . . . . . . .
24.2 Entity-Relationship-Diagramme (ER-Diagramme) . . . . . . . . . . . .
24.3 Relationale Datenbanken . . . . . . . . . . . . . . . . . . . . . . .
24.4 Darstellung von Relationen als Listen oder Dictionaries . . . . . . .
24.5 Das Modul sqlite3 . . . . . . . . . . . . . . . . . . . . . . . . . .
24.5.1 Eine Tabelle anlegen . . . . . . . . . . . . . . . . . . . . . . .


Inhaltsverzeichnis 16

24.5.2 Anfragen an eine Datenbank . . . . . . . . . . . . . . . . . . . .
24.5.3 SQL-Anweisungen mit variablen Teilen . . . . . . . . . . . . . . .
24.5.4 SQL-Injections . . . . . . . . . . . . . . . . . . . . . . . . . .
24.6 Online-Redaktionssystem mit Datenbankanbindung . . . . . . . . . . .
24.6.1 Objektorientierte Analyse (OOA). . . . . . . . . . . . . . . . . .
24.6.2 Objektorientierter Entwurf des Systems (OOD). . . . . . . . . . . .
24.6.3 Hintergrund: Authentifizieren mit MD5-Fingerprints . . . . . . . .
24.6.4 Implementierung des Redaktionssystems mit Python (OOP) . . . . .
24.7 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24.8 Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25 Testen und Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . .
25.1 Automatisiertes Testen . . . . . . . . . . . . . . . . . . . . . . .
25.2 Testen mit Docstrings – das Modul doctest . . . . . . . . . . . . . .
25.3 Praxisbeispiel: Suche nach dem Wort des Jahres . . . . . . . . . . .
25.4 Klassen testen mit doctest. . . . . . . . . . . . . . . . . . . . . .
25.4.1 Wie testet man eine Klasse?. . . . . . . . . . . . . . . . . . . .
25.4.2 Normalisierte Whitespaces – doctest-Direktiven . . . . . . . . . .
25.4.3 Ellipsen verwenden. . . . . . . . . . . . . . . . . . . . . . . . .
25.4.4 Dictionaries testen . . . . . . . . . . . . . . . . . . . . . . . .
25.5 Gestaltung von Testreihen mit unittest. . . . . . . . . . . . . . . .
25.5.1 Einführendes Beispiel mit einem Testfall . . . . . . . . . . . . .
25.5.2 Klassen des Moduls unittest . . . . . . . . . . . . . . . . . . . .
25.5.3 Weiterführendes Beispiel . . . . . . . . . . . . . . . . . . . . .
25.6 Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25.6.1 Performance-Analyse mit dem Profiler . . . . . . . . . . . . . . .
25.6.2 Praxisbeispiel: Auswertung astronomischer Fotografien . . . . . . .
25.6.3 Performance-Analyse und Tuning . . . . . . . . . . . . . . . . . .
25.7 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25.8 Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26 XML und JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26.1 Was ist XML? . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26.2 XML-Dokumente. . . . . . . . . . . . . . . . . . . . . . . . . . . .
26.3 Ein XML-Dokument als Baum . . . . . . . . . . . . . . . . . . . . . .
26.4 DOM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26.5 Das Modul xml.dom.minidom. . . . . . . . . . . . . . . . . . . . . .
26.5.1 XML-Dokumente und DOM-Objekte . . . . . . . . . . . . . . . . . . .
26.5.2 Die Basisklasse Node . . . . . . . . . . . . . . . . . . . . . . .
26.5.3 Die Klassen Document, Element und Text. . . . . . . . . . . . . . .
26.6 Attribute von XML-Elementen . . . . . . . . . . . . . . . . . . . . .
26.7 Anwendungsbeispiel 1: Eine XML-basierte Klasse . . . . . . . . . . .
26.8 Anwendungsbeispiel 2: Datenkommunikation mit XML . . . . . . . . . .
26.8.1 Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26.8.2 Das Client-Programm. . . . . . . . . . . . . . . . . . . . . . . .


Inhaltsverzeichnis 17

26.8.3 Das Server-Programm. . . . . . . . . . . . . . . . . . . . . . . .
26.9 JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26.9.1 JSON-Texte decodieren. . . . . . . . . . . . . . . . . . . . . . .
26.9.2 Decodierungsfehler. . . . . . . . . . . . . . . . . . . . . . . . .
26.9.3 Ein Dictionary als JSON-Objekt speichern: Kompakt oder gut lesbar?
26.9.4 Projekt: Verarbeitung von Wetterdaten . . . . . . . . . . . . . . .
26.10 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26.11 Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27 Modellieren mit Kellern, Schlangen und Graphen . . . . . . . . . . . .
27.1 Stack (Keller, Stapel) . . . . . . . . . . . . . . . . . . . . . . .
27.2 Queue (Schlange). . . . . . . . . . . . . . . . . . . . . . . . . . .
27.3 Graphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27.4 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27.5 Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28 Benutzungsoberflächen mit Qt. . . . . . . . . . . . . . . . . . . . . .
28.1 Was bietet PyQT5? . . . . . . . . . . . . . . . . . . . . . . . . . .
28.1.1 PyQt5 erkunden. . . . . . . . . . . . . . . . . . . . . . . . . . .
28.2 Wie arbeitet PyQt? Applikation und Fenster . . . . . . . . . . . . .
28.3 Eine objektorientierte Anwendung mit PyQt5. . . . . . . . . . . . . .
28.4 Ein Webbrowser . . . . . . . . . . . . . . . . . . . . . . . . . . .
28.5 Interaktive Widgets . . . . . . . . . . . . . . . . . . . . . . . . .
28.6 Label – Ausgabe von Text und Bild . . . . . . . . . . . . . . . . . .
28.7 Signale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28.8 Checkboxen und Radiobuttons . . . . . . . . . . . . . . . . . . . . .
28.9 Auswahlliste (ComboBox) . . . . . . . . . . . . . . . . . . . . . . .
28.10 Gemeinsame Operationen der Widgets . . . . . . . . . . . . . . . . .
28.11 Spezielle Methoden eines Fensters . . . . . . . . . . . . . . . . .
28.12 Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28.13 Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28.14 Stylesheets . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28.15 Icons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28.16 Messageboxen . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28.17 Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28.18 Das Qt-Layout unter der Lupe. . . . . . . . . . . . . . . . . . . .
28.18.1 Absolute Positionierung und Größe . . . . . . . . . . . . . . . .
28.18.2 Raster-Layout . . . . . . . . . . . . . . . . . . . . . . . . . .
28.18.3 Form-Layout. . . . . . . . . . . . . . . . . . . . . . . . . . . .
28.19 Browser für jeden Zweck . . . . . . . . . . . . . . . . . . . . . .
28.19.1 Die Klasse QWebEngineView . . . . . . . . . . . . . . . . . . . .
28.20 Ein Webbrowser mit Filter . . . . . . . . . . . . . . . . . . . . .
28.21 Surfen mit Geschichte – der Verlauf einer Sitzung . . . . . . . . .
28.22 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28.23 Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


Inhaltsverzeichnis 18

29 Multimediaanwendungen mit Qt . . . . . . . . . . . . . . . . . . . . .
29.1 Kalender und Textfeld – ein digitales Tagebuch . . . . . . . . . . .
29.1.1 Programmierung . . . . . . . . . . . . . . . . . . . . . . . . . .
29.2 Kamerabilder . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29.3 Dialoge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29.3.1 Projekt Ansichtskarte . . . . . . . . . . . . . . . . . . . . . . .
29.4 Videoplayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29.4.1 Ein einfacher Videoplayer . . . . . . . . . . . . . . . . . . . . .
29.4.2 Videoplayer mit Playlist . . . . . . . . . . . . . . . . . . . . .
29.4.3 Regeln zur Änderung der Größe (Size Policy) . . . . . . . . . . . .
29.4.4 Das Dashboard bei Mausbewegungen einblenden . . . . . . . . . . . .
29.5 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29.6 Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30 Rechnen mit NumPy. . . . . . . . . . . . . . . . . . . . . . . . . . .
30.1 NumPy installieren . . . . . . . . . . . . . . . . . . . . . . . . .
30.2 Arrays erzeugen. . . . . . . . . . . . . . . . . . . . . . . . . . .
30.2.1 Arrays. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30.2.2 Matrizen und Vektoren . . . . . . . . . . . . . . . . . . . . . . .
30.2.3 Zahlenfolgen. . . . . . . . . . . . . . . . . . . . . . . . . . . .
30.2.4 Zufallsarrays . . . . . . . . . . . . . . . . . . . . . . . . . . .
30.2.5 Spezielle Arrays. . . . . . . . . . . . . . . . . . . . . . . . . .
30.3 Indizieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30.4 Slicing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30.5 Arrays verändern . . . . . . . . . . . . . . . . . . . . . . . . . .
30.6 Arithmetische Operationen . . . . . . . . . . . . . . . . . . . . . .
30.7 Funktionen, die elementweise ausgeführt werden. . . . . . . . . . . .
30.8 Einfache Visualisierung . . . . . . . . . . . . . . . . . . . . . . .
30.9 Matrizenmultiplikation mit dot() . . . . . . . . . . . . . . . . . .
30.10 Array-Funktionen und Achsen. . . . . . . . . . . . . . . . . . . . .
30.11 Projekt: Diffusion . . . . . . . . . . . . . . . . . . . . . . . . .
30.12 Vergleiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30.13 Projekt: Wolken am Himmel . . . . . . . . . . . . . . . . . . . . .
30.14 Projekt: Wie versteckt man ein Buch in einem Bild? . . . . . . . . .
30.15 Datenanalyse mit Histogrammen . . . . . . . . . . . . . . . . . . .
30.16 Wie funktioniert ein Medianfilter? . . . . . . . . . . . . . . . . .
30.17 Rechnen mit SciPy . . . . . . . . . . . . . . . . . . . . . . . . .
30.17.1 Lineare Gleichungssysteme lösen . . . . . . . . . . . . . . . . .
30.17.2 Integration. . . . . . . . . . . . . . . . . . . . . . . . . . . .
30.18 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30.19 Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31 Messdaten verarbeiten . . . . . . . . . . . . . . . . . . . . . . . . .
31.1 Messwerte in einem Diagramm darstellen – Matplotlib und tkinter . . .
31.1.1 Basisprojekt. . . . . . . . . . . . . . . . . . . . . . . . . . . .


Inhaltsverzeichnis 19

31.1.2 Erweiterung: Den letzten Wert löschen. . . . . . . . . . . . . . .
31.1.3 Das Aussehen eines Diagramms gestalten . . . . . . . . . . . . . .
31.2 Messwerte aus einem Multimeter lesen und darstellen . . . . . . . . .
31.2.1 Vorbereitung . . . . . . . . . . . . . . . . . . . . . . . . . . .
31.2.2 Werte auslesen . . . . . . . . . . . . . . . . . . . . . . . . . .
31.2.3 Welche Ziffern zeigt das Display des Multimeters? . . . . . . . . .
31.3 Anzeige der Temperatur . . . . . . . . . . . . . . . . . . . . . . .
31.4 Messreihen aufzeichnen . . . . . . . . . . . . . . . . . . . . . . .
31.5 Aufgabe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31.6 Lösung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32 Parallele Datenverarbeitung . . . . . . . . . . . . . . . . . . . . . .
32.1 Was sind parallele Programme? . . . . . . . . . . . . . . . . . . . .
32.2 Prozesse starten und abbrechen . . . . . . . . . . . . . . . . . . .
32.3 Funktionen in eigenen Prozessen starten . . . . . . . . . . . . . . .
32.4 Prozesse zusammenführen – join() . . . . . . . . . . . . . . . . . .
32.5 Wie können Prozesse Objekte austauschen? . . . . . . . . . . . . . .
32.5.1 Objekte als Argumente übergeben . . . . . . . . . . . . . . . . . .
32.5.2 Objekte über eine Pipe senden und empfangen. . . . . . . . . . . .
32.5.3 Objekte über eine Queue austauschen . . . . . . . . . . . . . . . .
32.6 Daten im Pool bearbeiten . . . . . . . . . . . . . . . . . . . . . .
32.6.1 Mit dem Pool geht’s schneller – ein Zeitexperiment . . . . . . . .
32.6.2 Forschen mit Big Data aus dem Internet . . . . . . . . . . . . . .
32.7 Synchronisation . . . . . . . . . . . . . . . . . . . . . . . . . . .
32.8 Produzenten und Konsumenten . . . . . . . . . . . . . . . . . . . . .
32.8.1 Sprücheklopfer . . . . . . . . . . . . . . . . . . . . . . . . . .
32.9 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32.10 Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33 Django. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33.1 Django aus der Vogelperspektive . . . . . . . . . . . . . . . . . . .
33.2 Start eines Projekts . . . . . . . . . . . . . . . . . . . . . . . .
33.2.1 Den Server starten. . . . . . . . . . . . . . . . . . . . . . . . .
33.2.2 Startseite und View einrichten . . . . . . . . . . . . . . . . . .
33.3 Datenbankanbindung . . . . . . . . . . . . . . . . . . . . . . . . .
33.4 Modelle erstellen . . . . . . . . . . . . . . . . . . . . . . . . . .
33.5 Modelle aktivieren . . . . . . . . . . . . . . . . . . . . . . . . .
33.6 In der Python-Shell die Datenbank bearbeiten . . . . . . . . . . . .
33.6.1 Objekte durch Aufruf der Klasse erzeugen . . . . . . . . . . . . .
33.6.2 Auf Attribute eines Objektes zugreifen . . . . . . . . . . . . . .
33.6.3 Objekte finden. . . . . . . . . . . . . . . . . . . . . . . . . . .
33.6.4 Objekte erzeugen und Beziehungen herstellen . . . . . . . . . . . .
33.6.5 Den Beziehungsmanager nutzen. . . . . . . . . . . . . . . . . . . .
33.6.6 Objekte löschen . . . . . . . . . . . . . . . . . . . . . . . . . .
33.7 Django-Modelle unter der Lupe . . . . . . . . . . . . . . . . . . . .


Inhaltsverzeichnis 20

33.8 Der Manager unter der Lupe – Objekte erzeugen und suchen . . . . . .
33.9 Administration . . . . . . . . . . . . . . . . . . . . . . . . . . .
33.9.1 Eine Applikation der Website-Verwaltung zugänglich machen . . . ..
33.10 Views einrichten – die Grundstruktur. . . . . . . . . . . . . . . .
33.10.1 Was sind Views? . . . . . . . . . . . . . . . . . . . . . . . . .
33.10.2 Funktionen für Views . . . . . . . . . . . . . . . . . . . . . . .
33.10.3 URL-Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . .
33.11 View-Funktionen erweitern  . . . . . . . . . . . . . . . . . . . . .
33.11.1 Startseite . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33.11.2 Auflistung der Ideen zu einer Frage – question_index . . . . . . .
33.11.3 Die Templates verbessern: Namen statt expliziter URLs. . . . . . .
33.12 Interaktive Webseiten – Views mit Formularen . . . . . . . . . . . .
33.12.1 Eingabe einer neuen Frage  . . . . . . . . . . . . . . . . . . . .
33.12.2 Eingabe einer neuen Idee . . . . . . . . . . . . . . . . . . . . .
33.12.3 View-Funktion für das Speichern einer neuen Idee . . . . . . . . .
33.12.4 Fertig!. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33.13 Die nächsten Schritte . . . . . . . . . . . . . . . . . . . . . . .
33.14 Aufgabe Suche nach Ideen . . . . . . . . . . . . . . . . . . . . . .
33.15 Lösung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

A Anhang. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.1 Zeichencodierung . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.1.1 Codierung von Sonderzeichen in HTML . . . . . . . . . . . . . . . .
A.2 Quellen im WWW. . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.3 Standardfunktionen und Standardklassen . . . . . . . . . . . . . . . .
A.4 Mathematische Funktionen . . . . . . . . . . . . . . . . . . . . . . .
A.4.1 Das Modul math . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.4.2 Das Modul random. . . . . . . . . . . . . . . . . . . . . . . . . .
A.5 EBNF-Grammatik . . . . . . . . . . . . . . . . . . . . . . . . . . . .

B Glossar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

C Download der Programmbeispiele. . . . . . . . . . . . . . . . . . . . .

D Ein Python-Modul veröffentlichen: PyPI. . . . . . . . . . . . . . . . .
D.1 Bei PyPI und TestPyPI registrieren . . . . . . . . . . . . . . . . . .
D.2 Ein Paket für die Veröffentlichung vorbereiten . . . . . . . . . . . .
D.2.1 Die Programmdatei setup.py . . . . . . . . . . . . . . . . . . . . .
D.2.2 Die Lizenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
D.2.3 Die Datei README.txt . . . . . . . . . . . . . . . . . . . . . . . .
D.2.4 Die Datei __init__.py . . . . . . . . . . . . . . . . . . . . . . .
D.3 Das Paket auf PyPI veröffentlichen . . . . . . . . . . . . . . . . . .
D.3.1 Das Paket aktualisieren . . . . . . . . . . . . . . . . . . . . . .

Stichwortverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . .

© des Titels »Python 3« (ISBN 9783747500514) 2019 by
mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://ww

© des Titels »Python 3« (ISBN 9783747500514) 2019 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/0051



Effektiv Python programmieren
90 Wege für bessere Python-Programme
Verlag – mitp Verlag
    Author – Brett Slatkin
    2. Auflage, 2020
    504 Seiten
    Preise:
        E-Book – 33,99€
        Buch – 39,99€
        Buch & E-Book – 44,99€
    ISBN – 20074750176

Author

Der Autor des Buches: Brett Slatkin, starte seine Karriere bei Google und hat dort schon über 10 Jahre Erfahrungen mit Python gesammelt.


Das Buch befasst sich intensiv mit der Erstellung von "sauberem" Python Code.

Dieses Buch wendet sich dabei zwar vor allem an die fortgeschritteneren Anwender der jetzt schon seit Jahren sehr beliebten Interpreter-Programmiersprache Python, ist aber auch schon von Beginnern mit einzusetzen. Siehe dazu auch meine Hinweise unter: Weigend, 'Python 3' (8. Aufl.)

So beginnt Slatkin das Buch im 1. Kapitel mit dem sogenannten "Python Style Guide" (auch PEP8 genannt). Sich daran von Anfang an zu halten, ist eine prima Idee, weil man so beim Programmieren immer auf der richtigen Seite ist: wenn zum Beispiel mehrere Leute an einem Projekt arbeiten und die Scripte ausgetauscht werden sollen ...

Slatkin bezieht sich in allen Scripten stets auf die Python-Version 3.8. Dies erleichtert ebenfalls das Nachvollziehen des erstellten Codes.

Die 10 Kapitel sind:

    Pythons Sicht der Dinge (mit: PEP8),
    Listen und Dictionaries,
    Funktionen,
    Listen-Abstraktionen und Generatoren,
    Klassen und Schnittstellen,
    Metaklassen und Attribute,
    Nebenläufigkeiten und parallele Ausführung,
    Robustheit und Performance,
    Testen und Debuggen,
    Zusammenarbeit

Wer sich vorab noch ein wenig genauer über dieses Buch informieren will, kann unter der Web-Adresse: https://www.mitp.de/out/media/9783747501764_Leseprobe.pdf sich das ganze 1. Kapitel durchlesen und so vielleicht noch besser eine Kaufentscheidung treffen.

Auf der WebSite: http://www.effectivepython.com kann man sogar als Ergänzung zum Buch die kompletten Codes aus diesem Buch kostenlos herunterladen!

Das erspart so manchen Tippfehler.

Alles in Allem ist dies ein Buchtitel, der aus der Masse heraussticht, weil er die Probleme, die in dieser sehr sehr umfangreichen Programmiersprache auftauchen können (und es bei umfassender Anwendung auch werden!) beim Namen nennt. Und zwar so, dass nicht nur eine Lösung für das Problem geliefert wird, sondern auch die Zusammenhänge der Problematiken beschrieben werden ...













'Python für Excel'

ISBN 9 783960 091974
(2022), 341 Seiten.

39,90 € [D]

Inhaltsverzeichnis (Hauptschlagwörter):

Vorwort . . . . . . . . . . . . . . . . . . . . . . . . . . . .011

Teil I Einführung in Python

1 Warum Python für Excel? . . . . . . . . . . . . . . . . . . .021
Excel ist eine Programmiersprache . . . . . . . . . . . . . . .022
Excel in den Nachrichten . . . . . . . . . . . . . . . . . . . 023
Best Practices der Programmierung . . . . . . . . . . . . . . .024
Modernes Excel . . . . . . . . . . . . . . . . . . . . . . . . 030
Python für Excel . . . . . . . . . . . . . . . . . . . . . . . 031
Lesbarkeit und Wartbarkeit . . . . . . . . . . . . . . . . . . 032
Standardbibliothek und Paketmanager . . . . . . . . . . . . . .033
Wissenschaftliches Rechnen. . . . . . . . . . . . . . . . . . .034
Moderne Sprachfeatures . . . . . . . . . . . . . . . . . . . . 035
Plattformübergreifende Kompatibilität. . . . . . . . . . . . . 036
Zum Schluss. . . . . . . . . . . . . . . . . . . . . . . . . . 037

2 Entwicklungsumgebung. . . . . . . . . . . . . . . . . . . . .039
Die Python-Distribution Anaconda. . . . . . . . . . . . . . . .040
Installation . . . . . . . . . . . . . . . . . . . . . . . . . 040
Anaconda Prompt. . . . . . . . . . . . . . . . . . . . . . . . 041
Python REPL: eine interaktive Python-Sitzung. . . . . . . . . .044
Paketmanager: Conda und pip . . . . . . . . . . . . . . . . . .045
Conda-Umgebungen. . . . . . . . . . . . . . . . . . . . . . . .047
Jupyter Notebooks . . . . . . . . . . . . . . . . . . . . . . .047
Jupyter Notebooks ausführen. . . . . . . . . . . . . . . . . . 048
Notebook-Zellen. . . . . . . . . . . . . . . . . . . . . . . . 049
Bearbeitungs- vs. Befehlsmodus . . . . . . . . . . . . . . . . 051
Ausführungsreihenfolge . . . . . . . . . . . . . . . . . . . . 052
Jupyter Notebooks herunterfahren. . . . . . . . . . . . . . . .053
6 | Inhalt
Visual Studio Code . . . . . . . . . . . . . . . . . . . . . . 054
Installation und Konfiguration. . . . . . . . . . . . . . . . .056
Ein Python-Skript ausführen . . . . . . . . . . . . . . . . . .058
Zum Schluss . . . . . . . . . . . . . . . . . . . . . . . . . .062

3 Erste Schritte mit Python. . . . . . . . . . . . . . . . . . 063
Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . 063
Objekte. . . . . . . . . . . . . . . . . . . . . . . . . . . . 064
Numerische Typen. . . . . . . . . . . . . . . . . . . . . . . .065
Boolesche Werte . . . . . . . . . . . . . . . . . . . . . . . .068
Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . .070
Indizieren und Slicing . . . . . . . . . . . . . . . . . . . . 071
Indizieren . . . . . . . . . . . . . . . . . . . . . . . . . . 072
Slicing. . . . . . . . . . . . . . . . . . . . . . . . . . . . 073
Datenstrukturen . . . . . . . . . . . . . . . . . . . . . . . .074
Listen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 074
Wörterbücher. . . . . . . . . . . . . . . . . . . . . . . . . .076
Tupel . . . . . . . . . . . . . . . . . . . . . . . . . . . . .078
Mengen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 079
Steuerungsfluss . . . . . . . . . . . . . . . . . . . . . . . .080
Codeblöcke und die pass-Anweisung . . . . . . . . . . . . . . .080
Die if-Anweisung und bedingte Ausdrücke . . . . . . . . . . . .081
Die for- und while-Schleifen . . . . . . . . . . . . . . . . . 082
Listen-, Wörterbuch- und Mengenabstraktionen . . . . . . . . . 085
Codeorganisation . . . . . . . . . . . . . . . . . . . . . . . 086
Funktionen. . . . . . . . . . . . . . . . . . . . . . . . . . .086
Module und die import-Anweisung. . . . . . . . . . . . . . . . 088
Die Klasse datetime . . . . . . . . . . . . . . . . . . . . . .091
PEP 8: Style Guide für Python-Code. . . . . . . . . . . . . . .093
PEP 8 und VS Code . . . . . . . . . . . . . . . . . . . . . . .095
Type Hints . . . . . . . . . . . . . . . . . . . . . . . . . . 095
Zum Schluss . . . . . . . . . . . . . . . . . . . . . . . . . .096

Teil II Einführung in pandas

4 NumPy-Grundlagen. . . . . . . . . . . . . . . . . . . . . . .099
Erste Schritte mit NumPy . . . . . . . . . . . . . . . . . . . 099
NumPy-Array . . . . . . . . . . . . . . . . . . . . . . . . . .099
Vektorisierung und Broadcasting. . . . . . . . . . . . . . . . 101
Universelle Funktionen (ufunc) . . . . . . . . . . . . . . . . 103
Inhalt | 7
Arrays erstellen und manipulieren. . . . . . . . . . . . . . . 104
Array-Elemente abrufen und festlegen . . . . . . . . . . . . . 104
Nützliche Array-Konstruktoren . . . . . . . . . . . . . . . . .105
Ansicht vs. Kopie . . . . . . . . . . . . . . . . . . . . . . .106
Zum Schluss. . . . . . . . . . . . . . . . . . . . . . . . . . 106

5 Datenanalyse mit pandas. . . . . . . . . . . . . . . . . . . 109
DataFrame und Serie . . . . . . . . . . . . . . . . . . . . . .109
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112
Spalten . . . . . . . . . . . . . . . . . . . . . . . . . . . .114
Datenmanipulation . . . . . . . . . . . . . . . . . . . . . . .116
Daten auswählen . . . . . . . . . . . . . . . . . . . . . . . .116
Daten festlegen . . . . . . . . . . . . . . . . . . . . . . . .122
Fehlende Daten. . . . . . . . . . . . . . . . . . . . . . . . .125
Doppelte Daten. . . . . . . . . . . . . . . . . . . . . . . . .126
Arithmetische Operationen . . . . . . . . . . . . . . . . . . .128
Mit Textspalten arbeiten. . . . . . . . . . . . . . . . . . . .130
Eine Funktion anwenden . . . . . . . . . . . . . . . . . . . . 131
Ansicht vs. Kopie . . . . . . . . . . . . . . . . . . . . . . .132
DataFrames kombinieren . . . . . . . . . . . . . . . . . . . . 133
Verketten . . . . . . . . . . . . . . . . . . . . . . . . . . .133
Verknüpfen und zusammenführen . . . . . . . . . . . . . . . . .134
Beschreibende Statistik und Datenaggregation . . . . . . . . . 137
Beschreibende Statistik . . . . . . . . . . . . . . . . . . . .137
Gruppieren . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Pivotieren und verschmelzen . . . . . . . . . . . . . . . . . .139
Plotten . . . . . . . . . . . . . . . . . . . . . . . . . . . .141
Matplotlib . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Plotly. . . . . . . . . . . . . . . . . . . . . . . . . . . . .143
DataFrames importieren und exportieren . . . . . . . . . . . . 145
CSV-Dateien exportieren . . . . . . . . . . . . . . . . . . . .146
CSV-Dateien importieren . . . . . . . . . . . . . . . . . . . .147
Zum Schluss. . . . . . . . . . . . . . . . . . . . . . . . . . 149

6 Zeitreihenanalyse mit pandas. . . . . . . . . . . . . . . . .151
DatetimeIndex . . . . . . . . . . . . . . . . . . . . . . . . .152
Einen DatetimeIndex erstellen . . . . . . . . . . . . . . . . .152
Einen DatetimeIndex filtern . . . . . . . . . . . . . . . . . .155
Mit Zeitzonen arbeiten . . . . . . . . . . . . . . . . . . . . 156
Allgemeine Zeitreihenmanipulationen . . . . . . . . . . . . . .157
Verschiebungen und prozentuale Änderungen. . . . . . . . . . . 157
Umbasierung und Korrelation . . . . . . . . . . . . . . . . . .159
8 | Inhalt
Resampling. . . . . . . . . . . . . . . . . . . . . . . . . . .162
Rollierende Fenster . . . . . . . . . . . . . . . . . . . . . .163
Grenzen bei pandas. . . . . . . . . . . . . . . . . . . . . . .164
Zum Schluss . . . . . . . . . . . . . . . . . . . . . . . . . .165

Teil III Excel-Dateien ohne Excel lesen und schreiben

7 Excel-Dateien mit pandas manipulieren . . . . . . . . . . . .169
Fallstudie: Excel-Berichte . . . . . . . . . . . . . . . . . . 169
Excel-Dateien mit pandas lesen und schreiben. . . . . . . . . .173
Die Funktion read_excel und die Klasse ExcelFile . . . . . . . 173
Die Methode to_excel und die Klasse ExcelWriter . . . . . . . .178
Beschränkungen beim Einsatz von pandas mit Excel-Dateien . . . 180
Zum Schluss . . . . . . . . . . . . . . . . . . . . . . . . . .180

8 Excel-Dateien mit Reader- und Writer-Paketen manipulieren . .181
Die Reader- und Writer-Pakete. . . . . . . . . . . . . . . . . 181
Wann man welches Paket verwendet. . . . . . . . . . . . . . . .182
Das Modul excel.py . . . . . . . . . . . . . . . . . . . . . . 183
OpenPyXL . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
XlsxWriter . . . . . . . . . . . . . . . . . . . . . . . . . . 189
pyxlsb. . . . . . . . . . . . . . . . . . . . . . . . . . . . .191
xlrd, xlwt und xlutils . . . . . . . . . . . . . . . . . . . . 192
Komplexere Reader- und Writer-Themen . . . . . . . . . . . . . 195
Mit großen Excel-Dateien arbeiten . . . . . . . . . . . . . . .195
DataFrames in Excel formatieren. . . . . . . . . . . . . . . . 199
Noch einmal: Fallstudie – Excel-Berichte . . . . . . . . . . . 204
Zum Schluss . . . . . . . . . . . . . . . . . . . . . . . . . .205

Teil IV Die Excel-Anwendung mit xlwings programmieren

9 Excel-Automatisierung . . . . . . . . . . . . . . . . . . . .209
Erste Schritte mit xlwings . . . . . . . . . . . . . . . . . . 210
Excel als Daten-Viewer verwenden . . . . . . . . . . . . . . . 210
Das Excel-Objektmodell . . . . . . . . . . . . . . . . . . . . 212
VBA-Code ausführen . . . . . . . . . . . . . . . . . . . . . . 219
Konverter, Optionen und Auflistungen . . . . . . . . . . . . . 220
Mit DataFrames arbeiten . . . . . . . . . . . . . . . . . . . .221
Konverter und Optionen . . . . . . . . . . . . . . . . . . . . 222
Diagramme, Bilder und definierte Namen. . . . . . . . . . . . .224
Fallstudie: Excel-Berichte (zum Dritten) . . . . . . . . . . . 228
Inhalt | 9
Fortgeschrittenere xlwings-Themen . . . . . . . . . . . . . . .230
xlwings-Grundlagen . . . . . . . . . . . . . . . . . . . . . . 230
Die Performance verbessern . . . . . . . . . . . . . . . . . . 232
Fehlende Funktionalität umgehen . . . . . . . . . . . . . . . .233
Zum Schluss. . . . . . . . . . . . . . . . . . . . . . . . . . 235

10 Python-basierte Excel-Tools . . . . . . . . . . . . . . . . 237
Excel als Frontend mit xlwings verwenden . . . . . . . . . . . 237
Excel-Add-in . . . . . . . . . . . . . . . . . . . . . . . . . 238
Der quickstart-Befehl . . . . . . . . . . . . . . . . . . . . .240
Run main . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Die Funktion RunPython . . . . . . . . . . . . . . . . . . . . 241
Bereitstellung . . . . . . . . . . . . . . . . . . . . . . . . 246
Python-Abhängigkeit . . . . . . . . . . . . . . . . . . . . . .246
Eigenständige Arbeitsmappen: das xlwings-Add-in loswerden . . .247
Konfigurationshierarchie . . . . . . . . . . . . . . . . . . . 248
Einstellungen . . . . . . . . . . . . . . . . . . . . . . . . .248
Zum Schluss. . . . . . . . . . . . . . . . . . . . . . . . . . 250

11 Der Python-Package-Tracker. . . . . . . . . . . . . . . . . 251
Was wir bauen. . . . . . . . . . . . . . . . . . . . . . . . . 251
Kernfunktionalität . . . . . . . . . . . . . . . . . . . . . . 253
Web-APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
Datenbanken. . . . . . . . . . . . . . . . . . . . . . . . . . 258
Ausnahmen. . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Anwendungsstruktur. . . . . . . . . . . . . . . . . . . . . .  269
Frontend . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Backend . . . . . . . . . . . . . . . . . . . . . . . . . . . .274
Debugging. . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Zum Schluss. . . . . . . . . . . . . . . . . . . . . . . . . . 279

12 Benutzerdefinierte Funktionen (UDFs) . . . . . . . . . . . .281
Erste Schritte mit UDFs . . . . . . . . . . . . . . . . . . . .281
Eine UDF per quickstart ausführen . . . . . . . . . . . . . . .282
Fallstudie: Google Trends . . . . . . . . . . . . . . . . . . .287
Einführung in Google Trends . . . . . . . . . . . . . . . . .  287
Mit DataFrames und dynamischen Arrays arbeiten . . . . . . . . 288
Daten von Google Trends abrufen . . . . . . . . . . . . . . .  294
Mit UDFs plotten . . . . . . . . . . . . . . . . . . . . . . . 298
UDFs debuggen . . . . . . . . . . . . . . . . . . . . . . . .  299
Fortgeschrittene UDF-Themen . . . . . . . . . . . . . . . . .  301
Grundlegende Performanceoptimierung . . . . . . . . . . . . .  302
10 | Inhalt
Zwischenspeichern. . . . . . . . . . . . . . . . . . . . . . . 304
Der Dekorator xw.sub . . . . . . . . . . . . . . . . . . . . . 306
Zum Schluss . . . . . . . . . . . . . . . . . . . . . . . . .  307

Anhang A Conda-Umgebungen . . . . . . . . . . . . . . . . . .  311
Anhang B Erweiterte Funktionalität von VS Code. . . . . . . .  315
Anhang C Erweiterte Python-Konzepte. . . . . . . . . . . . . . 321
Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Dieses Buch: Python für Excel, von Felix Zumstein geschrieben und übersetzt 
von Frank Langenau ist nicht für den Einsteiger in Python gedacht, sondern 
für den fortgeschrittenen Python-Programmierer, der sich mit Excel zur 
Datenanalyse befassen will oder muss.


Hier hat der derjenige, der mit dem nicht mehr so fitten (sprich: aktualisierten) VBA (xxxxx) von Excel in den neueren Versionen ein wenig stiefmütterlich behandelt wird, richtig Glück, denn unter Python gibt es sehr aktuelle Analysetools (pandas, numpy), die sehr gut helfen, schnelle Analyse auch gerade von großen Datenmengen zu bewerkstelligen. Aufgefallen ist uns hier auch, dass Felix Zumstein ein wirklicher Kenner der hier besprochenen Elemente ist, da er sehr gute Erklärungshilfen gibt. Sicherlich hat er sich schon mit so ziemlich allen auftretenden Problemen beim Zusammenspiel aller dieser Komponenten "herumgeschlagen".
    Produktdetails
    Animals
    Verlag: O'Reilly / dpunkt
    Seitenzahl: 341
    Erscheinungstermin: Oktober 2022
    Deutsch
    Abmessung: 237mm x 171mm x 22mm
    Gewicht: 639g
    ISBN-13: 9783960091974
    ISBN-10: 3960091974
    Artikelnr.: 64088924

Rezension: - Arrist Spieß (wispor.de ) - letzte Korrekturen: 15.Mai 2024

'Effektiv Python programmieren'

90 Wege für bessere Python-Programme





Bestellung der Broschüre:
'Leitfaden Sozialhilfe für Behinderte und Pflegebedürftige von A-Z'

DVS
Schumannstr. 51
60325 Frankfurt


oder per E-Mail:

d.v.s@t-online.de

oder per E-Mail:

agtuwas@web.de
www.agtuwas.de


'Leitfaden Sozialhilfe für Behinderte und Pflegebedürftige von A-Z'

ISBN 3-932246-47-0
08. Auflage (März 2005) 131 Seiten.
5,00 € [D] (einschließlich Versandkosten!)


Rezension: - Arrist Spieß (wispor.de ) - letzte Korrekturen: 10. Dez. 2005

'Sozialhilfemißbrauch'

Die Broschüre: 'Sozialhilfemißbrauch. Wer missbraucht eigentlich wen?' von Professor Rainer Roth aus dem Fachhochschulverlag setzt sich einmal ausführlich anhand vieler konkreter Beispiele mit der Tatsache auseinander, dass die Sozialhilfe (die ja eigentlich dazu dasein sollte, zumindest die übelsten Ungerechtigkeitsspitzen unseres kapitalistischen Systems wenigstens etwas zu mildern!), die (seit Jahren) nach zahlreichen Äußerungen von Politikern (auch in entsprechenden Broschüren von Ministerien) ja kein Almosen darstellen soll und "das Recht eines jeden Bürgers sind ...", eben doch Almosen sind (die zudem nur äußerst "ungern" und zumal mit immer mehr entwürdigenden Methoden nur noch spärlichst verteilt werden).

Es wird auch deutlich gemacht, dass die Hilfe zum Lebensunterhalt in den letzten 20 Jahren (und vor allem den letzten 10 Jahren!) immer weiter (und heute extrem!) beschnitten worden ist.

Außerdem wird klar, dass alle wichtigen "Meinungsmacher": die Politik, die Wirtschaft, die Medien und Volkes Meinung hier (eigentlich auf wundersame Weise ...) an einem Strang ziehen.

Leider wird von denjenigen, die selbst einen nicht so toll bezahlten Job haben (oder auch einmal arbeitslos werden können ...) und die diese Reduzierungsmaßnahmen natürlich nur für "die Anderen" für gerecht und richtig halten, u. a. nicht gesehen, dass die Wirtschaft schon sehr bald nach einer weiteren Absenkung der Sozialhilfe, bzw. des Alg II nichts Besseres zu tun haben wird, als die jetzigen tariflichen Mindestlöhne ebenfalls weiter abzusenken!

Denn, was kann es denn Schöneres (für die Wirtschaft!) geben, als ein möglichst großes Heer von Menschen, die einfach jede Arbeit, zu einem noch so geringen Lohn annehmen müssen. "Unsere Regierung" wird weiter dabei brav helfen, indem sie z. B. die Rechte dieser Bevölkerungsgruppe immer weiter beschneidet (siehe Zwangsarbeit in Form von "1-Eurotätigkeiten" (mit: Vorenthaltung der Arbeitnehmerrechte, Bruch des Grundgesetzes (siehe: Artikel: 12,2 und 12,3) ...).

Schon in der Einleitung (ab S. 7) macht der Autor deutlich, dass nicht über Sozialhilfe-Bezieher hergezogen werden sollte, sondern, dass es besser sei: "sich Gedanken darüber zu machen, von wem die Staatsfinanzen wirklich ausgeplündert werden".

In der Broschüre wird mit konkreten Hinweisen auch klargemacht, wem die: "massive Verarmung von Millionen von Menschen ...", "... die Senkung des Lebensstanddards aller LohnarbeiterInnen ..." wirklich dient.

Wie weit es schon in punkto Ausbeutung von Arbeitnehmern besonders im Niedriglohnsektor gekommen ist, belegt folgendes Beispiel:

Zum Thema "Löhne immer mehr unter die Sozialhilfe senken" auf S. 81 heißt es:

"... Bezugspunkt für die Sitten- und damit die Rechtswidrigkeit von Löhnen sind ausschließlich Tariflöhne. Und zwar auch dann, wenn diese selbst schon unterhalb der Sozialhilfe liegen.

In Deutschland gibt es 2,8 Millionen Arbeitsverhältnisse mit Tariflöhnen unter 6 Euro brutto die Stunde. Bei einer wöchentlichen Arbeitszeit von 38,5 Stunden kommt man mit 6 Euro brutto auf 1.000 Euro im Monat. Das sind knapp 700 Euro netto. Alle diese Löhne liegen unter dem Sozialhilfeniveau.

Aber erst bei einem Drittel unter dem vereinbarten Tariflohn beginnt die Sittenwidrigkeit, bei einem Tariflohn von 6 Euro brutto also erst bei weniger als 4 Euro ..."



Bestellung der Broschüre:
Fachhochschulverlag
Kleiststr. 31
60318 Frankfurt am Main

bestellung@fhverlag.de
www.fhverlag.de

'Sozialhilfemißbrauch. Wer missbraucht eigentlich wen?'
von Professor Rainer Roth


ISBN: 3-936065-33-0
(2004), 104 Seiten.
5,80 € [D] (versandkostenfrei!)


Rezension: - Arrist Spieß (wispor.de ) - letzte Korrekturen: 07. Jan.  2006

'Leitfaden für Arbeitslose' Der Rechtsratgeber zum SGB III (Arbeitslosengeld I)

Die Broschüre 'Leitfaden für Arbeitslose' Der Rechtsratgeber zum SGB III (gemeint ist das Arbeitslosengeld I) stellt einen mehr als notwendigen Helfer in dem Dschungel des SGB III dar.

Es ist für den Normalsterblichen einfach unmöglich, durch dieses Gewimmel von Paragraphen und Bestimmungen und Auslegungen allein hindurch zufinden!

Wer damit rechnen muss, dass er bald SGB III-Leistungen in Anspruch nehmen muss, oder schon diese Leistungen bezieht, der sollte sich diese Broschüre schleunigst bestellen.

Auf über 700 Seiten werden u. a. folgende Hauptthemen beschrieben:

  • Sie werden (demnächst) arbeitslos - worauf Sie achten müssen
  • Hilfen bei der Anbahnung und Aufnahme einer Beschäftigung (Förderung aus dem Vermittlungsbudget)
  • Maßnahmen von den Trägern zur Aktivierung und beruflichen Eingliederung
  • Wer bekommt Arbeitslosengeld
  • Zumutbarkeit
  • Höhe des Arbeitslosengeldes
  • Anrechnung von Nebenverdienst
  • Dauer des Arbeitslosengeldbezugs
  • Beschäftigung und Förderung von Migranten
  • Sperrzeiten
  • Ruhen von Arbeitslosengeld, insbesondere bei Entlassungsentschädigungen
  • Kurzarbeitergeld (Rug)
  • Insolvenzgeld (Insg)
  • Berufsausbildungsbeihilfe
  • Weitere Förderung der Berufsausbildung
  • Berufliche Weiterbildung
  • Berufliche Weiterbildung in (noch) bestehenden Arbeistverhältnissen
  • Teilhabe behinderter Menschen am Arbeitsleben - Übergangsgeld
  • ABM, Zuschüsse zu Transfermaßnahmen, Freie Förderung
  • Lohnkostenzuschüsse
  • Hilfen zur Existenzgründung
  • Mittel aus dem Europäischen Sozialfond (ESF)
  • Zahlung, Schutz, Abzweigung, Rückforderung von Leistungen
  • Kranken-, Pflege, Unfall-, Rentenversicherung
  • Widerspruch und Klage
Dazu enthält die Broschüre noch ein Abkürzungsverzeichnis, ein Stichwortverzeichnis, Schaubilder, Tabellen und Musterbriefe.

Wirksam unterstützt werden die genannten Paragraphen und Bestimmungen durch zahlreiche konkrete Beispiele!

Der Fachhochschulverlag bringt übrigens auch für SGB_II = Hart_IV (Arbeitslosengeld II) und für SGB_XII (= Sozialhilfe) ähnliche Broschüren heraus.

Bestellung der Broschüre(n):
Fachhochschulverlag
Kleiststr. 10 (Gebäude 1)
60318 Frankfurt am Main

bestellung@fhverlag.de
www.fhverlag.de

'Leitfaden für Arbeitslose' Der Rechtsratgeber zum SGB III
von Ulrich Stascheit und Ute Winkler


ISBN: 3-940087-55-3
(2010), 702 Seiten.
15,00 € [D] zzgl. Porto


Rezension: - Arrist Spieß (wispor.de ) - letzte Korrekturen: 22. Dez. 2010

'Sind Arbeitslose faul?
Was ist dran an den Vorwürfen?'


Die Broschüre: 'Sind Arbeitslose faul?" von Klartext e.V. erschienen im Fachhochschulverlag widerspricht fundiert den gängigen Voreingenommenheiten, den von Wirtschaftskreisen und der Politik, gezielt in die Welt gesetzten und verbreiteten 'Argumenten' und auch der 'Volksmeinung' zur Arbeitslosigkeit, bzw. den Arbeitslosen.

In der Broschüre wird vielen dieser Klischees mit aussagekräftigen Argumenten, Zahlen, Fakten und Zitaten zu Leibe gerückt. Als da sind z. B.:

"Viele Arbeitslose wollen nicht arbeiten!"

"Jeder, der Arbeit will, findet auch welche!"

"Den Arbeitslosen geht es zu gut - Deshalb wollen sie nicht arbeiten!"

"Die Sozialhilfe ist zu hoch - Deshalb wollen Sozialhilfeempfänger nicht arbeiten!"


Die Argumentation gegen diese dummen Sprüche erfolgt immer kurz und knapp und eignet sich so auch ganz hervorragend für die Weiterverwendung in gewerkschaftlichen und/oder anderen sozial und politisch motivierten Gruppen. Etwa für Flugblätter, als Argumentationshilfen etc.

Wichtig ist in diesem Zusammenhang natürlich auch die Broschüre
'Sozialhilfemißbrauch', die ebenfalls im Fachhochschulverlag erschienen ist und die ähnliche, gleiche Gründe festmacht, die hinter der gesamtgesellschaftlichen Treibjagd - gerade unserer Zeit - stecken.
In der 'Missbrauch'-Broschüre wird aufgezeigt, wer tatsächlich Missbrauch betreibt. Dass sind offenkundig nicht 'die' Sozialhilfeempfänger oder 'die' Arbeitslosen!!!



Bestellung der Broschüre:
Fachhochschulverlag
Kleiststr. 31
60318 Frankfurt am Main

bestellung@fhverlag.de
www.fhverlag.de

'Sind Arbeitslose faul? Was ist dran an den Vorwürfen?'
Klartext e.V. (Hrsg.)


ISBN: 3-936065-18-7
(2004), 48 Seiten.
3,00 € [D] (versandkostenfrei!)


Rezension: - Arrist Spieß (wispor.de ) - letzte Korrekturen: 13. Jan.  2006

'Wir sind besser, als wir glauben'
Wohlstand für alle




Professor Peter Bofinger (ehemals einer der '5 Wirtschaftsweisen') geht in diesem Buch leicht verständlich, aber dennoch fundiert auf 284 Seiten auf die großen Wirtschaftsfragen unserer Republik ein.

Seine Gegenpositionen zur herrschenden Meinung sind nicht nur erfrischend, sondern auch dringend nötig, um der einseitigen Ausrichtung der öffentlichen Diskussion zu diesem Thema wenigstens etwas entgegen zu setzen.

Besonders interessant ist dabei auch, dass sich Professor Bofinger immer wieder auf Positionen des Vaters des dt. Wirtschaftswunders 'Ludwig Erhardt' bezieht.

Prof. Bofinger nimmt z. B. folgende polulären Einschätzungen, die uns überall (und nicht nicht nur in den Medien) immer wieder, quasio als Faustformeln, präsentiert werden gründlich auseinander und bezieht Gegenpositon.

1. Wir leben über unsere Verhältnisse.
2. Arbeit lohnt sich nicht mehr.
3. Der Staat ist zu fett geworden.
4. Die Steuern sind viel zu hoch.
5. Die Bürokratie erstickt das Wachstum.
6. Die Löhne sind zu hoch, Arbeitszeit zu kurz.
7. Der Arbeitsmarkt ist zu unflexibel.
8. Wir haben unsere Wettbewerbsfähigkeit verloren.
9. Immer mehr Firmen investieren im Ausland.


Prof. Bofinger gibt hier auch Antworten auf zentrale Fragen und Themen wie:

Was bedeutet die Globalisierung tatsächlich für unsere Arbeitsplätze?
Warum steigen die Staatsschulden immer weiter an?
Wovon hängt es ab, ob wir die demografische Zeitbombe entschärfen können?
Wie geil ist Geiz wirklich?

Teil I: Warum wir besser sind, als wir glauben.
Teil II: Die Hypotheken der 90er Jahre.
Teil III: Sparen, Sparen über alles?
Teil IV: Vor der Reform ist nach der Reform.
Teil V: Von der "Wende zum Weniger" zum "dynamischen Durchbruch nach vorne".


Besonders wichtig finde ich, dass Prof. Bofinger handfeste Argumente z. B. gegen den Sozialabbau liefert und den unbedingten Erhalt des Sozialstaates (wie er im Grundgesetz verankert ist) propagiert.

*Peter Bofinger ist Professor für Geldpolitik und internationale Wirtschaftsbeziehungen an der Universität Würzburg.

'Wir sind besser, als wir glauben'
Wohlstand für alle

Autor: Professor Peter Bofinger

Pearson-Studium
ISBN: 3-8273-7138-4
(2005), 284 Seiten.
19,95 € [D] | 20,60 € [A]


Rezension: - Arrist Spieß (wispor.de ) - letzte Korrekturen: 11. Aug. 2006

'Wirtschaft die arm macht'
Vom Sozialstaat zur gespaltenen Gesellschaft





Autor: Horst Afheldt

Verlag Kunstmann

In seinem Buch 'Wirtschaft die arm macht' Vom Sozialstaat zur gespaltenen Gesellschaft
, das uns in der überarbeiteten Neuauflage von 2005 vorliegt, beschreibt der Autor Horst Afheldt wirklich sehr gut nachvollziehbar und sehr gut lesbar (es ist kaum 'Fachchinesisch' zu finden) zum Einen die Folgen der Arbeitsmarkt-'Reformen' in unserem Lande.

Dabei zeigt Afheldt gründlich auf, dass kein Wirtschaftssystem für die Ewigkeit gemacht ist.

Es wird (auch nach seiner Auffassung) höchste Zeit, dass der neoliberale Wahnsinn, der gebetsmühlenartig auf den in die Krise geratenen Kapitalismus - weil ihm das Wachstum ausbliebt - immer herunter gebetet und leider auch angewandt wird, ein Ende hat. Soll heißen: "Löhne runter, Wachstum, Wachstum, Wachstum ..., weg mit 'Handelshemmnissen', Unternehmens-'Entlastungen' von Abgaben und Steuern.

Denn ganz offensichtlich - schließlich wird es ja schon über 10 Jahre versucht! - greifen die neoliberalen Ideen überhaupt nicht, wie sich an dem Zustand unserer Gesellschaft zum Leidwesen von mindest einem Drittel der Gesellschaft ablesen läßt (schließlich lebt schon jetzt ein großer Teil der Erwerbsttätigen und der Arbeitslosen sowieso in Dtl. in 'prekären' Verhältnissen)!

Horst Afheldt wendet sich hier auch mutig gegen den Gedanken des weltweiten Freihandels.

*Info (wispor.de):
Freihandel: Internationaler Handel ohne jegliche Beschränkung des Staates von Im- und Export (also z.B. keine Zölle ...).


'Wirtschaft die arm macht'
Vom Sozialstaat zur gespaltenen Gesellschaft


Verlag Kunstmann
ISBN: 3-88897-385-6
Neuausgabe (2005), 256 Seiten.
19,90 € [D] | SFR 34,90 €


Rezension: - Arrist Spieß (wispor.de ) - letzte Korrekturen: 07. Dez. 2007

'Schamland'
Die Armut mitten unter uns




Autor: Prof. Stefan Selke

Verlag Econ

Professor Selke stellt in seinem Buch: 'Schamland' aus 2013 die Welt der Arbeitslosen in Deutschland vor.

Er setzt den Fokus auf die (mittlerweile fast 1.000 mit weit über 2.000 Ausgabestellen, für bis zu 1,5 Mio. Menschen / Stand: Feb. 2018) TAFELn in Deutschland und was die Nutzung bei den Betroffenen bewirkt.

Ein System, das nur als Notlösung gedacht war und schon 1993 in Berlin (als Suppenküche, Hilfe für Obdachlose) gestartet ist, hat sich derartig durch die AGENDA 2010 und Hartz IV verfestigt, dass man sich vielfach als von Arbeitslosigkeit, sprich Armut Betroffener, sagen lassen muss: 'Wenn's nicht reicht, gehen Sie doch zur TAFEL!'.

*Kommentar (wispor.de) ===

Als wenn der TAFEL-Besuch fester Bestandteil, der ganz offensichtlich nicht ausreichenden 'Bezüge' von Hartz IV, Sozialhilfe, Grundsicherung und (der wohl am schlimmsten Betroffenen) den Asylsuchenden - auch durch die seit Jahren heftig steigenden Kosten für z.B.: Mieten, Energierversorgung, Lebensmittel, sein soll.

Wie zum Hohn werden nur Minimal-Erhöhungen von Hartz IV und Sozialhilfe um jeweils wenige Euros vorgenommen.
Nach dem Motto: 'Seht, wir tun doch etwas!'.

===

*Hier aus eigener Erfahrung einige (zusätzliche) 'gute' Argumente gegen die TAFELn und für ein die Betroffenen ausreichend versorgendes Sozialsystem, auf das man einen Rechtsanspruch hat und nicht für fragwürdige (wenn auch von privater Seite sicherlich gut gemeinte) Hilfe den ewigen Bittsteller mimen muss:

1a. Was ist mit denen, die chronisch krank sind und nicht zur Tafel können???

1b. Was mit denen, die Magen- oder Darmkrank sind und die meisten Sachen gar nicht vertragen???

2. Was ist das für ein 'Sozial-System', bei dem man als mehrfach-chronisch Kranker im Februar 1 1/2 Stunden draußen in der Kälte in der Schlange stehen muss, um die milden Gaben zu empfangen, von denen man nicht einmal weiß, was z.B. für einen Magen-Darm-Kranken überhaupt verwertbar ist (mir geschehen in Münster [Westfalen], Herz-Jesu-Kirche)!!! Der Tross dieser Armen war übrigens die ganze Zeit über deutlich für die vorbeiflanierenden 'Normal-Bürger' an einer Hauptstraße (Wolbecker-Straße) sichtbar.
3. In Münster (Westf.) gab es (zumindest um den 17.04.2014 herum) einen TAFEL-Ausgabestopp. Ich solle in 6 Wochen 'mal wieder anrufen!!! *Was machen diejenigen, die sich auf diese 'Not-Versorgung' fest eingerichtet haben, wenn sie plötzlich ersatzlos wegfällt???

===



Nach Professor Selke hat sich sogar eine regelrechte 'Armuts-Ökonomie' herausgebildet.

Nutznießer sind teilweise karitative Einrichtungen, aber vor allem Firmen, die als Sach-Spender fungieren und nicht müde werden ihr Engagement zur Imageaufpolierung zu vermarkten.

So kam z.B. (siehe 'Schamland', S. xxx) eine Werbefirma auf die hinterfotzige Idee, leere Pfandflaschen mit einem Etikett zu versehen, auf dem dem Finder eine Portion von der ortsansässigen TAFEL garantiert wurde!

*Kommentar (wispor.de) === Also, es ist richtig, im Dreck wühlen zu müssen, um einen Anspruch auf Segnungen von honorigen Gönnern erlangen zu können ? ... Genau: "Gewöhnt euch schon einmal daran, Ihr Schmeisfliegen - ab in die Container. Und vergesst auf keinen Fall, Danke zu sagen!" ===

Noch nie hat es ein Buch zu diesem Thema gegeben, in dem derartig viele Arme in unserem Land mit auf den Punkt gebrachten Zitaten zu Wort kommen!

Der größte Teil des Buches ist aber gesellschaftliche Anlayse. Aber keine Sorge, dieses Buch ist nicht für Fachkollegen geschrieben, sondern richtet sich an alle Interessierten. Sprich, es ist durchweg einfach zu verstehen.

Stefan Selke ist Soziologieprofessor an der Hochschule in Furtwangen auf dem Lehrstuhl: 'Gesellschaftlicher Wandel'.

Fazit:

Ein außerordentlich wichtiges Buch zum Thema Arbeitslosigkeit und deren Auswirkungen auf die Betroffenen im heutigen Deutschland.

Endlich erhebt jemand aus der geistigen Elite dieses Landes laut und deutlich und vor allem auch ausdauernd seine Stimme gegen offensichtliche Missstände, die so viele Menschen unter ein derartig entwürdigendes Kuratel gestellt haben.

Kritik:

Was unserer Meinung nach diese Buch noch ein klein wenig wertvoller machen würde:

Wir wünschen uns wie immer einen ausführlichen Index. Der fehlt hier leider ganz.

Und - auch wie immer - wir wünschen uns für alle Sachbücher die Abbildung, Beschreibung des inhaltlichen Extraktes. Sprich, eine sehr kurze und knappe Zusammenfassung jedes Kapitels.

*Kommentar (wispor.de) ===

Es ist eine Schande, dass nicht viel, viel mehr von unserer geistigen Elite, so z.B. Hochschulprofessoren etc. sich schützend vor die betroffenen Bürger stellen. Gegen diesen - die Gesellschaft zerreissenden - stetig fortschreitenden Prozess vehement angehen.

* Statt dessen nutzen unglaublich viele Professoren (seit Jahren) die 'tolle' Gelegenheit und stellen 1-Euro-Kräfte an, um die Bezahlung von studentischen Hilfskräften zu sparen.



'Schamland'
Die Armut mitten unter uns


Verlag Econ
ISBN: 978-3-430-20152-0
(2013), 279 Seiten.

18,00 € [D] | 18,50 [A] €


Rezension: - Arrist Spieß (wispor.de ) - letzte Korrekturen: 03. Feb. 2020

 
© Texte, Datenbanken, Auflistungssysteme, Fotos & Layout (wispor.de)
- lexikalischer Auskunftsdienst / Münster (Westfalen)