Python 3

Das umfassende Handbuch: Über 1.000 Seiten Sprachgrundlagen, Objektorientierte Programmierung und Beispielprogramme
 
 
Rheinwerk (Verlag)
  • 6. Auflage
  • |
  • erschienen im September 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 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
  • 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!«

6. Auflage
  • Deutsch
  • Bonn
  • |
  • Deutschland
Rheinwerk
  • Überarbeitete Ausgabe
  • Höhe: 246 mm
  • |
  • Breite: 183 mm
  • |
  • Dicke: 58 mm
  • 1910 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