Python 3

Das umfassende Handbuch: Über 1.000 Seiten Sprachgrundlagen, Objektorientierte Programmierung und Beispielprogramme
 
 
Rheinwerk (Verlag)
  • 6. Auflage
  • |
  • erschienen am 28. August 2020
 
  • Buch
  • |
  • Hardcover
  • |
  • 1079 Seiten
978-3-8362-7926-0 (ISBN)
 
Entdecken Sie die Möglichkeiten von Python 3. Egal, ob Sie erst anfangen, mit Python zu arbeiten oder bei Ihrer Arbeit etwas nachschlagen möchten - in diesem Buch finden Sie alles, was Sie zu Python wissen müssen. Nach einer Einführung in die Sprache für Einsteiger folgt eine umfassende Sprachreferenz, die Beschreibung der Standardbibliothek und ausführliche Informationen zu professionellen Themen wie GUI-Entwicklung, Webentwicklung mit Django, Anbindung an C/C++ oder wissenschaftliches Rechnen. Die Autoren helfen Ihnen auch bei der Migration alter Projekte von Python 2 nach Python 3.

Aus dem Inhalt:

Einführung in Python
Sprachgrundlagen
Modularisierung
Objektorientierung
Mathematische Module
Reguläre Ausdrücke
Datums- und Zeitfunktionen
Schnittstellen zum Betriebssystem
Thread-Programmierung
Datenspeicherung
Netzwerkkommunikation
Fehlerbehandlung
Distribution von Python-Projekten
Programmoptimierung
Webentwicklung mit Django
GUI-Programmierung
Wissenschaftliches Rechnen
Anbindung an C/C++
Migration von Python 2.x auf 3



Die Fachpresse zur Vorauflage:

dotnetpro: »Das Handbuch vermittelt einen einfachen und verständlichen Einstieg in die Programmierung mit Python und lässt sich auch gut als Nachschlagewerk verwenden - Bestnote!«

  • Deutsch
  • Bonn
  • |
  • Deutschland
Rheinwerk
  • Überarbeitete Ausgabe
  • Höhe: 248 mm
  • |
  • Breite: 181 mm
  • |
  • Dicke: 59 mm
  • 1894 gr
978-3-8362-7926-0 (9783836279260)
weitere Ausgaben werden ermittelt
Johannes Ernesti ist Diplom-Mathematiker und promoviert am Karlsruher Institut für Technologie (KIT) in angewandter Mathematik. Python ist unverzichtbar für seine Arbeit und wichtiger Bestandteil seiner Lehrtätigkeit.


1. Einleitung ... 27


2. Die Programmiersprache Python ... 35


2.1 ... Historie, Konzepte, Einsatzgebiete ... 35

2.2 ... Die Installation von Python ... 39

2.3 ... Die Verwendung von Python ... 41




TEIL I Einstieg in Python ... 43



3. Erste Schritte im interaktiven Modus ... 45


3.1 ... Ganze Zahlen ... 46

3.2 ... Gleitkommazahlen ... 47

3.3 ... Zeichenketten ... 48

3.4 ... Listen ... 48

3.5 ... Dictionarys ... 49

3.6 ... Variablen ... 50

3.7 ... Logische Ausdrücke ... 52

3.8 ... Funktionen und Methoden ... 54

3.9 ... Bildschirmausgaben ... 56

3.10 ... Module ... 57



4. Der Weg zum ersten Programm ... 59


4.1 ... Tippen, kompilieren, testen ... 59

4.2 ... Grundstruktur eines Python-Programms ... 63

4.3 ... Das erste Programm ... 66

4.4 ... Kommentare ... 69

4.5 ... Der Fehlerfall ... 69



5. Kontrollstrukturen ... 71


5.1 ... Fallunterscheidungen ... 71

5.2 ... Schleifen ... 76

5.3 ... Die pass-Anweisung ... 84



6. Dateien ... 85


6.1 ... Datenströme ... 85

6.2 ... Daten aus einer Datei auslesen ... 86

6.3 ... Daten in eine Datei schreiben ... 90

6.4 ... Das Dateiobjekt erzeugen ... 91



7. Das Laufzeitmodell ... 97


7.1 ... Die Struktur von Instanzen ... 99

7.2 ... Referenzen und Instanzen freigeben ... 103

7.3 ... Mutable vs. immutable Datentypen ... 104



8. Funktionen, Methoden und Attribute ... 109


8.1 ... Parameter von Funktionen und Methoden ... 109

8.2 ... Attribute ... 112



9. Informationsquellen zu Python ... 113


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

9.2 ... Die Onlinedokumentation ... 114

9.3 ... PEPs ... 114




TEIL II Datentypen ... 117



10. Basisdatentypen: eine Übersicht ... 119


10.1 ... Das Nichts -- NoneType ... 120

10.2 ... Operatoren ... 121



11. Numerische Datentypen ... 125


11.1 ... Arithmetische Operatoren ... 125

11.2 ... Vergleichende Operatoren ... 127

11.3 ... Konvertierung zwischen numerischen Datentypen ... 128

11.4 ... Ganzzahlen -- int ... 129

11.5 ... Gleitkommazahlen -- float ... 135

11.6 ... Boolesche Werte -- bool ... 138

11.7 ... Komplexe Zahlen -- complex ... 144



12. Sequenzielle Datentypen ... 147


12.1 ... Operationen auf Instanzen sequenzieller Datentypen ... 148

12.2 ... Listen -- list ... 159

12.3 ... Unveränderliche Listen -- tuple ... 171

12.4 ... Strings -- str, bytes, bytearray ... 174



13. Zuordnungen und Mengen ... 211


13.1 ... Dictionary -- dict ... 211

13.2 ... Mengen -- set und frozenset ... 223



14. Collections ... 237


14.1 ... Verkettete Dictionarys ... 237

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

14.3 ... Dictionarys mit Standardwerten ... 241

14.4 ... Doppelt verkettete Listen ... 241

14.5 ... Benannte Tupel ... 243



15. Datum und Zeit ... 247


15.1 ... Elementare Zeitfunktionen -- time ... 247

15.2 ... Objektorientierte Datumsverwaltung -- datetime ... 255



16. Weitere Datentypen ... 267


16.1 ... Aufzählungstypen -- Enum ... 267

16.2 ... Datenklassen ... 271



TEIL III. Fortgeschrittene Programmiertechniken ... 277


17. Funktionen ... 279


17.1 ... Schreiben einer Funktion ... 281

17.2 ... Funktionsobjekte ... 284

17.3 ... Funktionsparameter ... 285

17.4 ... Namensräume ... 296

17.5 ... Anonyme Funktionen ... 302

17.6 ... Rekursion ... 303

17.7 ... Eingebaute Funktionen ... 304



18. Modularisierung ... 331


18.1 ... Einbinden globaler Module ... 331

18.2 ... Lokale Module ... 334

18.3 ... Pakete ... 337

18.4 ... Das Paket importlib ... 341



19. Objektorientierung ... 347


19.1 ... Klassen ... 352

19.2 ... Vererbung ... 357

19.3 ... Setter und Getter und Property-Attribute ... 372

19.4 ... Klassenattribute und Klassenmethoden sowie statische Methoden ... 375

19.5 ... Built-in Functions für Objektorientierung ... 378

19.6 ... Objektphilosophie ... 381

19.7 ... Magic Methods und Magic Attributes ... 383



20. Ausnahmebehandlung ... 403


20.1 ... Exceptions ... 403

20.2 ... Zusicherungen -- assert ... 416

20.3 ... Warnungen ... 417



21. Iteratoren ... 419


21.1 ... Comprehensions ... 419

21.2 ... Generatoren ... 423

21.3 ... Iteratoren ... 430

21.4 ... Spezielle Generatoren -- itertools ... 440



22. Kontextobjekte ... 451


22.1 ... Die with-Anweisung ... 451

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



23. Manipulation von Funktionen und Methoden ... 457


23.1 ... Decorator ... 457

23.2 ... Das Modul functools ... 460



24. Annotationen zur statischen Typprüfung ... 469


24.1 ... Annotationen ... 471

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

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




TEIL IV Die Standardbibliothek ... 485



25. Mathematik ... 487


25.1 ... Mathematische Funktionen -- math, cmath ... 487

25.2 ... Zufallszahlengenerator -- random ... 493

25.3 ... Statistische Berechnungen -- statistics ... 497

25.4 ... Präzise Dezimalzahlen -- decimal ... 498

25.5 ... Hash-Funktionen -- hashlib ... 504



26. Reguläre Ausdrücke ... 511


26.1 ... Syntax regulärer Ausdrücke ... 511

26.2 ... Verwendung des Moduls ... 523

26.3 ... Ein einfaches Beispielprogramm -- Searching ... 529

26.4 ... Ein komplexeres Beispielprogramm -- Matching ... 530



27. Schnittstelle zu Betriebssystem und Laufzeitumgebung ... 535


27.1 ... Funktionen des Betriebssystems -- os ... 535

27.2 ... Zugriff auf die Laufzeitumgebung -- sys ... 538

27.3 ... Kommandozeilenparameter -- argparse ... 544



28. Dateisystem ... 553


28.1 ... Zugriff auf das Dateisystem mit os ... 553

28.2 ... Dateipfade -- os.path ... 559

28.3 ... Zugriff auf das Dateisystem -- shutil ... 564

28.4 ... Temporäre Dateien -- tempfile ... 570



29. Parallele Programmierung ... 573


29.1 ... Prozesse, Multitasking und Threads ... 573

29.2 ... Pythons Schnittstellen zur Parallelisierung ... 577

29.3 ... Die abstrakte Schnittstelle -- concurrent.futures ... 578

29.4 ... Die flexible Schnittstelle -- threading und multiprocessing ... 589

29.5 ... Die kooperative Schnittstelle -- asyncio ... 601

29.6 ... Fazit: Welche Schnittstelle ist die richtige? ... 619



30. Datenspeicherung ... 621


30.1 ... Komprimierte Dateien lesen und schreiben -- gzip ... 621

30.2 ... XML ... 623

30.3 ... Datenbanken ... 637

30.4 ... Serialisierung von Instanzen -- pickle ... 657

30.5 ... Das Datenaustauschformat JSON -- json ... 660

30.6 ... Das Tabellenformat CSV -- csv ... 662



31. Netzwerkkommunikation ... 669


31.1 ... Socket API ... 670

31.2 ... URLs -- urllib ... 689

31.3 ... FTP -- ftplib ... 698

31.4 ... E-Mail ... 704

31.5 ... Telnet -- telnetlib ... 722

31.6 ... XML-RPC ... 725



32. Debugging und Qualitätssicherung ... 737


32.1 ... Der Debugger ... 737

32.2 ... Formatierte Bildschirmausgabe -- pprint ... 740

32.3 ... Logdateien -- logging ... 742

32.4 ... Automatisiertes Testen ... 748

32.5 ... Analyse des Laufzeitverhaltens ... 757

32.6 ... Optimierung ... 766



33. Dokumentation ... 771


33.1 ... Docstrings ... 771

33.2 ... Automatisches Erstellen einer Dokumentation -- pydoc ... 773




TEIL V Weiterführende Themen ... 775



34. Alternative Interpreter und Compiler ... 777


34.1 ... Just-in-Time Kompilierung -- PyPy ... 777

34.2 ... Numba ... 778

34.3 ... Anbindung an C und C++ -- Cython ... 781

34.4 ... Die interaktive Python-Shell -- IPython ... 788



35. Distribution von Python-Projekten ... 797


35.1 ... Eine Geschichte der Distributionen in Python ... 797

35.2 ... Erstellen von Distributionen -- setuptools ... 799

35.3 ... Erstellen von EXE-Dateien -- cx_Freeze ... 808

35.4 ... Paketmanager ... 810

35.5 ... Virtuelle Umgebungen ... 814

35.6 ... Lokalisierung von Programmen -- gettext ... 818



36. Grafische Benutzeroberflächen ... 823


36.1 ... Toolkits ... 823

36.2 ... Einführung in tkinter ... 825

36.3 ... Einführung in PySide2 ... 871

36.4 ... Signale und Slots ... 881

36.5 ... Wichtige Widgets ... 884

36.6 ... Zeichenfunktionalität ... 892

36.7 ... Model-View-Architektur ... 904



37. Python als serverseitige Programmiersprache im WWW -- ein Einstieg in Django ... 921


37.1 ... Konzepte und Besonderheiten von Django ... 922

37.2 ... Installation von Django ... 923

37.3 ... Erstellen eines neuen Django-Projekts ... 924

37.4 ... Erstellung einer Applikation ... 928



38. Wissenschaftliches Rechnen und Data Science ... 969


38.1 ... Installation ... 970

38.2 ... Das Modellprogramm ... 971

38.3 ... Überblick über die Module numpy und scipy ... 979

38.4 ... Eine Einführung in die Datenanalyse mit pandas ... 990



39. Insiderwissen ... 1007


39.1 ... Zuweisungsausdrücke ... 1007

39.2 ... URLs im Standardbrowser öffnen -- webbrowser ... 1009

39.3 ... Interpretieren von Binärdaten -- struct ... 1010

39.4 ... Versteckte Passworteingabe ... 1012

39.5 ... Kommandozeilen-Interpreter ... 1013

39.6 ... Dateiinterface für Strings -- io.StringIO ... 1016

39.7 ... Generatoren als Konsumenten ... 1016

39.8 ... Kopieren von Instanzen -- copy ... 1022

39.9 ... Bildverarbeitung -- Pillow ... 1025



40. Von Python 2 nach Python 3 ... 1035


40.1 ... Die wichtigsten Unterschiede ... 1038

40.2 ... Automatische Konvertierung ... 1044

40.3 ... Geplante Sprachelemente ... 1047



A. Anhang ... 1049


A.1 ... Reservierte Wörter ... 1049

A.2 ... Operatorrangfolge ... 1049

A.3 ... Eingebaute Funktionen ... 1051

A.4 ... Eingebaute Exceptions ... 1055

A.5 ... Python IDEs ... 1059



Index ... 1063

Sofort lieferbar

44,90 €
inkl. 7% MwSt.
In den Warenkorb