• Neu
Ernesti / Kaiser | Python 3 | E-Book | www2.sack.de
E-Book

E-Book, Deutsch, 1171 Seiten

Reihe: Rheinwerk Computing

Ernesti / Kaiser Python 3

Das umfassende Handbuch
8. Auflage 2026
ISBN: 978-3-367-11317-0
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection

Das umfassende Handbuch

E-Book, Deutsch, 1171 Seiten

Reihe: Rheinwerk Computing

ISBN: 978-3-367-11317-0
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection



Alles zu Python 3 in einem Buch, mit vielen Beispielen und Übungen

Verständlich, umfassend, praxisnah: Dieses Python-Handbuch ist die erste Wahl für alle, die Python in der Software-Entwicklung einsetzen. Ob Sie gerade anfangen, mit Python zu programmieren oder bei Ihrer Arbeit etwas nachschlagen möchten – in diesem großen Kompendium finden Sie alles, was Sie zu Python wissen müssen.

Angefangen mit einem Einstieg in die Sprache und ersten einfachen Beispielen bieten Ihnen Johannes Ernesti und Peter Kaiser in diesem Buch eine Sprachreferenz und die Beschreibung der Standardbibliothek. Die Praxis steht immer im Vordergrund, auch wenn die beiden Autoren professionelle Themen ins Visier nehmen wie GUI-Entwicklung, Webentwicklung, wissenschaftliches Rechnen oder Data Science.

Überall im Buch finden Sie Praxisbeispiele , die Ihnen helfen, das Gelernte zu festigen und Ihre Programmierfähigkeiten zu trainieren oder zu vertiefen. Die Programme stehen Ihnen auch als Download zur Verfügung, zusammen mit weiteren Anwendungsbeispielen.

Ein Muss für alle, die mit Python Software entwickeln oder Python lernen wollen.

  • Über 1.000 Seiten Python-Wissen: Einführung, Praxis, Referenz
  • Sprachgrundlagen, Objektorientierung, Modularisierung
  • Parallele Programmierung, Debugging, Webentwicklung mit Django, GUIs, Netzwerkkommunikation, Data Science u. v. m.

Aus dem Inhalt:

  • Sprachgrundlagen und objektorientierte Programmierung
  • Einführung in Python
  • Modularisierung
  • Reguläre Ausdrücke
  • Datums- und Zeitfunktionen
  • Thread-Programmierung
  • GUI-Programmierung
  • Webentwicklung mit Django
  • Mathematische Module
  • Schnittstellen zum Betriebssystem
  • Netzwerkkommunikation
  • Distribution von Python-Projekten
  • Programmoptimierung
  • Wissenschaftliches Rechnen
  • Data Science
Ernesti / Kaiser Python 3 jetzt bestellen!

Weitere Infos & Material


  1.  Einleitung ... 31


       1.1 ... Warum haben wir dieses Buch geschrieben? ... 31

       1.2 ... Was leistet dieses Buch? ... 32

       1.3 ... Wie ist dieses Buch aufgebaut? ... 32

       1.4 ... Wer sollte dieses Buch wie lesen? ... 33

       1.5 ... Beispielprogramme ... 34

       1.6 ... Vorwort zur achten Auflage ... 34

       1.7 ... Danksagung ... 35

  2.  Die Programmiersprache Python ... 39


       2.1 ... Geschichte und Entstehung ... 39

       2.2 ... Grundlegende Konzepte ... 40

       2.3 ... Einsatzmöglichkeiten und Stärken ... 41

       2.4 ... Die Installation von Python ... 43

       2.5 ... Drittanbietermodule installieren ... 45

       2.6 ... Die Verwendung von Python ... 46

TEIL I.  Einstieg in Python ... 49

  3.  Erste Schritte im interaktiven Modus ... 51


       3.1 ... Ganze Zahlen ... 52

       3.2 ... Gleitkommazahlen ... 53

       3.3 ... Zeichenketten ... 54

       3.4 ... Listen ... 55

       3.5 ... Dictionarys ... 55

       3.6 ... Variablen ... 56

       3.7 ... Logische Ausdrücke ... 58

       3.8 ... Funktionen und Methoden ... 60

       3.9 ... Bildschirmausgaben ... 62

       3.10 ... Module ... 63

  4.  Der Weg zum ersten Programm ... 65


       4.1 ... Tippen, kompilieren, testen ... 65

       4.2 ... Grundstruktur eines Python-Programms ... 69

       4.3 ... Das erste Programm ... 73

       4.4 ... Kommentare ... 75

       4.5 ... Der Fehlerfall ... 76

  5.  Kontrollstrukturen ... 79


       5.1 ... Fallunterscheidungen ... 79

       5.2 ... Schleifen ... 83

       5.3 ... Die pass-Anweisung ... 91

       5.4 ... Zuweisungsausdrücke ... 91

  6.  Dateien ... 95


       6.1 ... Datenströme ... 95

       6.2 ... Daten aus einer Datei auslesen ... 96

       6.3 ... Daten in eine Datei schreiben ... 101

       6.4 ... Das Dateiobjekt erzeugen ... 102

  7.  Das Datenmodell ... 109


       7.1 ... Die Struktur von Instanzen ... 111

       7.2 ... Referenzen löschen ... 116

       7.3 ... Mutable vs. immutable Datentypen ... 118

  8.  Funktionen, Methoden und Attribute ... 123


       8.1 ... Parameter von Funktionen und Methoden ... 123

       8.2 ... Attribute ... 126

  9.  Informationsquellen zu Python ... 129


       9.1 ... Die Built-in Function help ... 129

       9.2 ... Die Onlinedokumentation ... 130

       9.3 ... PEPs ... 130

TEIL II.  Datentypen ... 133

10.  Basisdatentypen: eine Übersicht ... 135


       10.1 ... Das Nichts -- NoneType ... 136

       10.2 ... Operatoren ... 137

11.  Numerische Datentypen ... 143


       11.1 ... Arithmetische Operatoren ... 143

       11.2 ... Vergleichende Operatoren ... 145

       11.3 ... Konvertierung zwischen numerischen Datentypen ... 146

       11.4 ... Ganzzahlen -- int ... 147

       11.5 ... Gleitkommazahlen -- float ... 154

       11.6 ... Boolesche Werte -- bool ... 157

       11.7 ... Komplexe Zahlen -- complex ... 163

12.  Sequenzielle Datentypen ... 167


       12.1 ... Der Unterschied zwischen Text und Binärdaten ... 167

       12.2 ... Operationen auf Instanzen sequenzieller Datentypen ... 169

       12.3 ... Listen -- list ... 181

       12.4 ... Unveränderliche Listen -- tuple ... 195

       12.5 ... Strings -- str, bytes, bytearray ... 199

13.  Zuordnungen und Mengen ... 239


       13.1 ... Dictionary -- dict ... 239

       13.2 ... Mengen -- set und frozenset ... 253

14.  Collections ... 267


       14.1 ... Verkettete Dictionarys ... 267

       14.2 ... Zählen von Häufigkeiten ... 268

       14.3 ... Dictionarys mit Standardwerten ... 271

       14.4 ... Doppelt verkettete Listen ... 272

       14.5 ... Benannte Tupel ... 274

15.  Datum und Zeit ... 277


       15.1 ... Elementare Zeitfunktionen -- time ... 277

       15.2 ... Objektorientierte Datumsverwaltung -- datetime ... 286

       15.3 ... Zeitzonen -- zoneinfo ... 296

16.  Enumerationen und Flags ... 303


       16.1 ... Aufzählungstypen -- Enum ... 303

       16.2 ... Aufzählungstypen für Bitmuster -- Flag ... 305

       16.3 ... Ganzzahlige Aufzählungstypen -- IntEnum ... 306

TEIL III.  Fortgeschrittene Programmiertechniken ... 309

17.  Funktionen ... 311


       17.1 ... Definieren einer Funktion ... 313

       17.2 ... Rückgabewerte ... 314

       17.3 ... Funktionsobjekte ... 316

       17.4 ... Optionale Parameter ... 317

       17.5 ... Schlüsselwortparameter ... 318

       17.6 ... Beliebige Anzahl von Parametern ... 319

       17.7 ... Reine Schlüsselwortparameter ... 321

       17.8 ... Reine Positionsparameter ... 323

       17.9 ... Unpacking beim Funktionsaufruf ... 324

       17.10 ... Seiteneffekte ... 326

       17.11 ... Namensräume ... 329

       17.12 ... Anonyme Funktionen ... 336

       17.13 ... Rekursion ... 337

       17.14 ... Eingebaute Funktionen ... 338

18.  Module und Pakete ... 365


       18.1 ... Einbinden globaler Module ... 366

       18.2 ... Lokale Module ... 368

       18.3 ... Pakete ... 371

       18.4 ... Das Paket importlib ... 376

       18.5 ... Geplante Sprachelemente ... 377

19.  Objektorientierte Programmierung ... 379


       19.1 ... Beispiel: Ein nicht objektorientiertes Konto ... 379

       19.2 ... Klassen ... 385

       19.3 ... Vererbung ... 390

       19.4 ... Mehrfachvererbung ... 403

       19.5 ... Property-Attribute ... 404

       19.6 ... Statische Methoden ... 407

       19.7 ... Klassenmethoden ... 409

       19.8 ... Klassenattribute ... 411

       19.9 ... Built-in Functions für die objektorientierte Programmierung ... 411

       19.10 ... Erben von eingebauten Datentypen ... 415

       19.11 ... Magic Methods und Magic Attributes ... 417

       19.12 ... Datenklassen ... 438

20.  Ausnahmebehandlung ... 443


       20.1 ... Exceptions ... 443

       20.2 ... Zusicherungen -- assert ... 459

       20.3 ... Warnungen ... 460

       20.4 ... Exception Groups ... 461

21.  Generatoren und Iteratoren ... 467


       21.1 ... Generatoren ... 467

       21.2 ... Iteratoren ... 474

       21.3 ... Spezielle Generatoren -- itertools ... 485

       21.4 ... Generatoren als Konsumenten ... 495

22.  Kontext-Manager ... 501


       22.1 ... Die with-Anweisung ... 501

       22.2 ... Hilfsfunktionen für with-Kontexte -- contextlib ... 504

23.  Dekoratoren ... 509


       23.1 ... Funktionsdekoratoren ... 509

       23.2 ... Klassendekoratoren ... 515

       23.3 ... Das Modul functools ... 516

24.  Annotationen und statische Typprüfung ... 523


       24.1 ... Annotationen ... 525

       24.2 ... Type Hints -- das Modul typing ... 532

       24.3 ... Statische Typprüfung in Python -- mypy ... 539

25.  Structural Pattern Matching ... 541


       25.1 ... Die match-Anweisung ... 541

       25.2 ... Arten von Mustern in der case-Anweisung ... 542

TEIL IV.  Die Standardbibliothek ... 559

26.  Mathematik ... 561


       26.1 ... Mathematische Funktionen -- math, cmath ... 561

       26.2 ... Zufallszahlengenerator -- random ... 568

       26.3 ... Statistische Berechnungen -- statistics ... 572

       26.4 ... Intuitive Dezimalzahlen -- decimal ... 574

       26.5 ... Hash-Funktionen -- hashlib ... 580

27.  Bildschirmausgaben und Logging ... 589


       27.1 ... Übersichtliche Ausgabe komplexer Objekte -- pprint ... 589

       27.2 ... Logdateien -- logging ... 591

28.  Reguläre Ausdrücke ... 599


       28.1 ... Die Syntax regulärer Ausdrücke ... 599

       28.2 ... Verwendung des Moduls re ... 611

       28.3 ... Ein einfaches Beispielprogramm -- Searching ... 618

       28.4 ... Ein komplexeres Beispielprogramm -- Matching ... 620

       28.5 ... Kommentare in regulären Ausdrücken ... 623

       28.6 ... Katastrophales Backtracking ... 624

29.  Schnittstellen zum Betriebssystem und zur Laufzeitumgebung ... 627


       29.1 ... Funktionen des Betriebssystems -- os ... 627

       29.2 ... Starten von Subprozessen -- subprocess ... 630

       29.3 ... Zugriff auf die Laufzeitumgebung -- sys ... 633

       29.4 ... Kommandozeilenparameter -- argparse ... 638

30.  Das Dateisystem ... 647


       30.1 ... Grundlegendes zu Dateisystemen und Pfaden ... 647

       30.2 ... Die moderne Lösung -- pathlib ... 649

       30.3 ... Zugriff auf das Dateisystem mit os ... 656

       30.4 ... Dateipfade -- os.path ... 664

       30.5 ... Zugriff auf das Dateisystem -- shutil ... 668

       30.6 ... Temporäre Dateien -- tempfile ... 674

31.  Parallele Programmierung ... 677


       31.1 ... Prozesse, Multitasking und Threads ... 677

       31.2 ... Pythons Schnittstellen zur Parallelisierung ... 682

       31.3 ... Die abstrakte Schnittstelle -- concurrent.futures ... 683

       31.4 ... Die flexible Schnittstelle -- threading und multiprocessing ... 694

       31.5 ... Die kooperative Schnittstelle -- asyncio ... 706

       31.6 ... Fazit: Welche Schnittstelle ist die richtige? ... 725

32.  Datenspeicherung ... 727


       32.1 ... Das Datenaustauschformat JSON -- json ... 727

       32.2 ... Serialisierung von Instanzen -- pickle ... 729

       32.3 ... Das Tabellenformat CSV -- csv ... 733

       32.4 ... Komprimierte Dateien und Archive ... 739

       32.5 ... Datenbanken ... 741

       32.6 ... XML ... 761

33.  Netzwerkkommunikation ... 777


       33.1 ... Die Socket API ... 778

       33.2 ... XML-RPC ... 797

34.  Zugriff auf Ressourcen im Internet ... 807


       34.1 ... Protokolle ... 807

       34.2 ... Lösungen ... 808

       34.3 ... Der einfache Weg -- requests ... 809

       34.4 ... URLs -- urllib ... 812

       34.5 ... FTP -- ftplib ... 820

35.  E-Mail ... 829


       35.1 ... SMTP -- smtplib ... 829

       35.2 ... POP3 -- poplib ... 832

       35.3 ... IMAP4 -- imaplib ... 837

       35.4 ... Erstellen komplexer E-Mails -- email ... 843

36.  Debugging und Qualitätssicherung ... 847


       36.1 ... Der Debugger ... 847

       36.2 ... Automatisiertes Testen ... 850

       36.3 ... Analyse des Laufzeitverhaltens ... 858

37.  Dokumentation ... 869


       37.1 ... Docstrings ... 869

       37.2 ... Automatisches Erstellen einer Dokumentation -- pydoc ... 871

TEIL V.  Weiterführende Themen ... 873

38.  Distribution von Python-Projekten ... 875


       38.1 ... Eine Geschichte der Distributionen in Python ... 875

       38.2 ... Erstellen von Distributionen -- setuptools ... 877

       38.3 ... Erstellen von EXE-Dateien -- cx_Freeze ... 886

       38.4 ... Paketmanager ... 888

       38.5 ... Lokalisierung von Programmen -- gettext ... 893

39.  Virtuelle Umgebungen ... 899


       39.1 ... Das Arbeiten mit virtuellen Umgebungen -- venv ... 900

       39.2 ... Virtuelle Umgebungen in Anaconda ... 901

40.  Alternative Interpreter und Compiler ... 903


       40.1 ... Just-in-Time-Kompilierung -- PyPy ... 903

       40.2 ... Numba ... 905

       40.3 ... Anbindung an C und C++ -- Cython ... 907

       40.4 ... Die interaktive Python-Shell -- IPython ... 914

41.  Grafische Benutzeroberflächen ... 923


       41.1 ... Toolkits ... 923

       41.2 ... Einführung in tkinter ... 925

       41.3 ... Einführung in PySide6 ... 972

42.  Python als serverseitige Programmiersprache im WWW -- ein Einstieg in Django ... 1021


       42.1 ... Konzepte und Besonderheiten von Django ... 1022

       42.2 ... Installation von Django ... 1023

       42.3 ... Ein neues Django-Projekt erstellen ... 1024

       42.4 ... Eine Applikation erstellen ... 1028

43.  Wissenschaftliches Rechnen und Data Science ... 1069


       43.1 ... Installation ... 1070

       43.2 ... Das Modellprogramm ... 1071

       43.3 ... Überblick über die Module numpy und scipy ... 1080

       43.4 ... Eine Einführung in die Datenanalyse mit pandas ... 1090

44.  Insiderwissen ... 1107


       44.1 ... URLs im Standardbrowser öffnen -- webbrowser ... 1107

       44.2 ... Interpretieren von Binärdaten -- struct ... 1107

       44.3 ... Versteckte Passworteingabe -- getpass ... 1110

       44.4 ... Kommandozeilen-Interpreter -- cmd ... 1110

       44.5 ... Dateiinterface für Strings -- io.StringIO ... 1113

       44.6 ... Kopieren von Instanzen -- copy ... 1114

       44.7 ... Bildverarbeitung -- Pillow ... 1118

45.  Eine Geschichte der Python-Versionen ... 1129


       45.1 ... Die Versionshistorie ... 1129

       45.2 ... Der Sprung nach Python 3 ... 1132

  Anhang ... 1139


       A.1 ... Reservierte Wörter ... 1139

       A.2 ... Operatorrangfolge ... 1139

       A.3 ... Eingebaute Funktionen ... 1141

       A.4 ... Eingebaute Exceptions ... 1145

       A.5 ... Python-IDEs ... 1150

  Index ... 1153


Ernesti, Johannes
Dr. Johannes Ernesti hat am Karlsruher Institut für Technologie (KIT) in angewandter Mathematik promoviert. Seit Mai 2019 ist er bei DeepL als Research Scientist angestellt

Kaiser, Peter
Dr. Peter Kaiser hat am Karlsruher Institut für Technologie (KIT) in humanoider Robotik promoviert. Seit Mai 2019 arbeitet er als Research Scientist bei DeepL.



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.