Python 3

Lernen und professionell anwenden. Das umfassende Praxisbuch

Michael Weigend

Diese Publikation zitieren

Michael Weigend, Python 3 (2018), mitp-Verlag, Frechen, ISBN: 9783958457928

4335
Accesses
56
Quotes

Beschreibung / Abstract

Einführung in alle Sprachgrundlagen: Klassen, Objekte, Vererbung, DictionariesBenutzungsoberflächen und Multimediaanwendungen mit PyQt, Datenbanken, XML und Internet-ProgrammierungWissenschaftliches Rechnen mit NumPy, parallele Verarbeitung großer Datenmengen, Datenvisualisierung mit MatplotlibÜbungen mit Musterlösungen zu jedem Kapitel
Die Skriptsprache Python ist mit ihrer einfachen Syntax hervorragend für Einsteiger geeignet, um modernes Programmieren zu lernen. Mit diesem Buch erhalten Sie einen umfassenden Einstieg in Python 3 und lernen darüber hinaus auch weiterführende Anwendungsmöglichkeiten kennen. Michael Weigend behandelt Python von Grund auf und erläutert die wesentlichen Sprachelemente. Er geht dabei besonders auf die Anwendung von Konzepten der objektorientierten Programmierung ein.Insgesamt liegt der Schwerpunkt auf der praktischen Arbeit mit Python. Ziel ist es, die wesentlichen Techniken und dahinter stehenden Ideen anhand zahlreicher anschaulicher Beispiele verständlich zu machen. Zu typischen Problemstellungen werden Schritt für Schritt Lösungen erarbeitet. So erlernen Sie praxisorientiert die Programmentwicklung mit Python und die Anwendung von Konzepten der objektorientierten Programmierung.Alle Kapitel enden mit einfachen und komplexen Übungsaufgaben mit vollständigen Musterlösungen.Das Buch behandelt die Grundlagen von Python 3 (Version 3.6) und zusätzlich auch weiterführende Themen wie die Gestaltung grafischer Benutzungsoberflächen mit tkinter und PyQt, Threads und Multiprocessing, CGI- und Internet-Programmierung, automatisiertes Testen, Datenmodellierung mit XML und JSON, Datenbanken, Datenvisualisierung mit Matplotlib und wissenschaftliches Rechnen mit NumPy.Der Autor wendet sich sowohl an Einsteiger als auch an Leser, die bereits mit einer höheren Programmiersprache vertraut sind. Zugleich bietet sich dieses Lehrbuch als Textgrundlage oder nützliche Ergänzung zu Universitätskursen an.Aus dem Inhalt:Datentypen, Kontrollstrukturen, Funktionen, GeneratorenModellieren mit Sequenzen, Dictionaries und MengenKlassen, Objekte, Vererbung, PolymorphieModule nutzen und auf PyPI veröffentlichenZeichenketten und reguläre AusdrückeGrafische Benutzungs-oberflächen mit tkinter und PyQtThreads und Events, Bildverarbeitung mit PILSystemfunktionen, Testen und Performance-AnalyseXML, CGI- und Internet-Programmierung, DatenbankenWissenschaftliche Projekte mit NumPyDatenvisualisierung mit Matplotlib und MesswerterfassungParallele Programmierung: Pipes, Queues, Pools

Beschreibung

Michael Weigend ist Informatiklehrer und hat bereits mehrere Bücher zu Python geschrieben wie z.B. Python Ge-Packt.

Inhaltsverzeichnis

  • Cover
  • Titel
  • Impressum
  • Einleitung
  • Warum Python?
  • Python 3
  • An wen wendet sich dieses Buch?
  • Inhalt und Aufbau
  • Hinweise zur Typographie
  • Programmbeispiele
  • Kapitel 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.8 Hintergrund: Geschichte der objektorientierten Programmierung
  • 1.9 Aufgaben
  • 1.10 Lösungen
  • Kapitel 2: Der Einstieg - Python im interaktiven Modus
  • 2.1 Python installieren
  • Anhang C: Download der Programmbeispiele
  • 2.2 Python im interaktiven Modus
  • 2.3 Objekte
  • 2.4 Namen
  • 2.5 Hintergrund: Syntax-Regeln für Bezeichner
  • 2.6 Schlüsselwörter
  • 2.7 Anweisungen
  • 2.8 Aufgaben
  • 2.9 Lösungen
  • Kapitel 3: Python-Skripte
  • 3.1 Skripte editieren und ausführen mit IDLE
  • 3.2 Ausführen eines Python-Skripts
  • 3.3 Kommentare
  • 3.4 Die Zeilenstruktur von Python-Programmen
  • 3.5 Das EVA-Prinzip
  • 3.6 Phasen der Programmentwicklung
  • 3.7 Guter Programmierstil
  • 3.8 Hintergrund: Die Kunst des Fehlerfindens
  • 3.9 Aufgaben
  • 3.10 Lösungen
  • Kapitel 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.11 Mengen
  • 4.12 Dictionaries
  • 4.13 Typumwandlungen
  • 4.14 Aufgaben
  • 4.15 Lösungen
  • Kapitel 5: Kontrollstrukturen
  • 5.1 Einfache Bedingungen
  • 5.2 Zusammengesetzte Bedingungen logische Operatoren
  • 5.3 Programmverzweigungen (bedingte Anweisungen)
  • 5.4 Bedingte Wiederholung (while)
  • 5.5 Iteration über eine Kollektion (for)
  • 5.6 Abbruch einer Schleife mit break
  • 5.7 Abfangen von Ausnahmen mit try
  • 5.8 Aufgaben
  • 5.9 Lösungen
  • Kapitel 6: Funktionen
  • 6.1 Aufruf von Funktionen
  • 6.2 Definition von Funktionen
  • 6.3 Schrittweise Verfeinerung
  • 6.4 Ausführung von Funktionen
  • 6.5 Voreingestellte Parameterwerte
  • 6.6 Funktionen mit beliebiger Anzahl von Parametern
  • 6.7 Lokale Funktionen
  • 6.8 Rekursive Funktionen
  • 6.9 Experimente zur Rekursion mit der Turtle-Grafik
  • 6.10 Rekursive Zahlenfunktionen
  • 6.11 Hintergrund: Wie werden rekursive Funktionen ausgeführt?
  • 6.12 Funktionen als Objekte
  • 6.13 Lambda-Formen
  • 6.14 Hinweise zum Programmierstil
  • 6.15 Aufgaben
  • 6.16 Lösungen
  • Kapitel 7: Sequenzen, Mengen und Generatoren
  • 7.1 Gemeinsame Operationen für Sequenzen
  • 7.2 Vertiefung: Rekursive Funktionen für Sequenzen
  • 7.3 Tupel
  • 7.4 Listen
  • 7.5 Generatoren
  • 7.6 Mengen
  • 7.7 Aufgaben
  • 7.8 Lösungen
  • Kapitel 8: Dictionaries
  • 8.1 Operationen für Dictionaries
  • 8.2 Wie erstellt man ein Dictionary?
  • 8.3 Zugriff auf Daten in einem Dictionary
  • 8.4 Praxisbeispiel: Vokabeltrainer
  • 8.5 Typische Fehler
  • 8.6 Aufgaben
  • 8.7 Lösungen
  • Kapitel 9: Ein- und Ausgabe
  • 9.1 Files
  • 9.2 Mehr Zuverlässigkeit durch try- und with-Anweisungen
  • 9.3 Objekte speichern mit pickle
  • 9.4 Die Pseudofiles sys.stdin und sys.stdout
  • 9.5 Ausgabe von Werten mit der print()-Funktion
  • 9.6 Kommandozeilen-Argumente (Optionen)
  • 9.7 Übungen
  • 9.8 Lösungen
  • Kapitel 10: Definition eigener Klassen
  • 10.1 Klassen und Objekte
  • 10.2 Definition von Klassen
  • 10.3 Objekte (Instanzen)
  • 10.4 Zugriff auf Attribute Sichtbarkeit
  • 10.5 Methoden
  • 10.6 Statische Methoden
  • 10.7 Abstraktion, Verkapselung und Geheimnisprinzip
  • 10.8 Vererbung
  • 10.9 Hinweise zum Programmierstil
  • 10.10 Typische Fehler
  • 10.11 Aufgaben
  • 10.12 Lösungen
  • Kapitel 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
  • Kapitel 12: Objektorientiertes Modellieren
  • 12.1 Phasen einer objektorientierten Software-Entwicklung
  • 12.2 Fallstudie: Modell eines Wörterbuchs
  • 12.3 Assoziationen zwischen Klassen
  • 12.4 Beispiel: Management eines Musicals
  • 12.5 Aufgaben
  • 12.6 Lösungen
  • Kapitel 13: Verarbeitung von Zeichenketten
  • 13.1 Standardmethoden zur Verarbeitung von Zeichenketten
  • 13.2 Codierung und Decodierung
  • 13.3 Automatische Textproduktion
  • 13.4 Analyse von Texten
  • 13.5 Reguläre Ausdrücke
  • 13.6 Den Computer zum Sprechen bringen Sprachsynthese
  • 13.7 Aufgaben
  • 13.8 Lösungen
  • Kapitel 14: Systemfunktionen
  • 14.1 Das Modul sys die Schnittstelle zum Laufzeitsystem
  • 14.2 Das Modul os die Schnittstelle zum Betriebssystem
  • 14.3 Datum und Zeit
  • 14.4 Aufgaben
  • 14.5 Lösungen
  • Kapitel 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.5 Gemeinsame Methoden der Widgets
  • 15.6 Die Klasse Tk
  • 15.7 Die Klasse Button
  • 15.8 Die Klasse Label
  • 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
  • Kapitel 16: Layout
  • 16.1 Der Packer
  • 16.2 Layout-Fehler
  • 16.3 Raster-Layout
  • 16.4 Vorgehensweise bei der GUI-Entwicklung
  • 16.5 Aufgaben
  • 16.6 Lösungen
  • Kapitel 17: Grafik
  • 17.1 Die tkinter-Klasse Canvas
  • 17.2 Die Klasse PhotoImage
  • 17.3 Bilder in eine Benutzungsoberfläche einbinden
  • 17.4 Die Python Imaging Library (PIL)
  • 17.5 Aufgaben
  • 17.6 Lösungen
  • Kapitel 18: Event-Verarbeitung
  • 18.1 Einführendes Beispiel
  • 18.2 Event-Sequenzen
  • 18.3 Beispiel: Tastaturereignisse verarbeiten
  • 18.4 Programmierung eines Eventhandlers
  • 18.5 Bindemethoden
  • 18.6 Aufgaben
  • 18.7 Lösungen
  • Kapitel 19: Komplexe Benutzungsoberflächen
  • 19.1 Text-Widgets
  • 19.2 Rollbalken (Scrollbars)
  • 19.3 Menüs
  • 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
  • Kapitel 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
  • Kapitel 21: Fehler finden und vermeiden
  • 21.1 Testen von Bedingungen
  • 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.6 Vertiefung: Professionelles Arbeiten mit Logging
  • 21.7 Debugging
  • 21.8 Aufgabe
  • 21.9 Lösung
  • Kapitel 22: CGI-Programmierung
  • 22.1 Wie funktionieren CGI-Skripte?
  • 22.2 Wie spät ist es? Aufbau eines CGI-Skripts
  • 22.3 Kommunikation über interaktive Webseiten
  • 22.4 Verarbeitung von Eingabedaten in einem CGI-Skript
  • 22.5 Sonderzeichen handhaben
  • 22.6 CGI-Skripte debuggen
  • 22.7 Objektorientierte CGI-Skripte Beispiel: ein Chatroom
  • 22.8 CGI-Skripte mit Cookies
  • 22.9 Aufgaben
  • 22.10 Lösungen
  • Kapitel 23: Internet-Programmierung
  • 23.1 Was ist ein Protokoll?
  • 23.2 Übertragung von Dateien mit FTP
  • 23.3 Zugriff auf Webseiten mit HTTP
  • 23.4 E-Mails senden mit SMTP
  • 23.5 Aufgaben
  • 23.6 Lösungen
  • Kapitel 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.6 Online-Redaktionssystem mit Datenbankanbindung
  • 24.7 Aufgaben
  • 24.8 Lösungen
  • Kapitel 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.5 Gestaltung von Testreihen mit unittest
  • 25.6 Tuning
  • 25.7 Aufgaben
  • 25.8 Lösungen
  • Kapitel 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.6 Attribute von XML-Elementen
  • 26.7 Anwendungsbeispiel 1: Eine XML-basierte Klasse
  • 26.8 Anwendungsbeispiel 2: Datenkommunikation mit XML
  • 26.9 JSON
  • 26.10 Aufgaben
  • 26.11 Lösungen
  • Kapitel 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
  • Kapitel 28: Benutzungsoberflächen mit Qt
  • 28.1 Was bietet PyQT5?
  • 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.19 Browser für jeden Zweck
  • 28.20 Ein Webbrowser mit Filter
  • 28.21 Surfen mit Geschichte der Verlauf einer Sitzung
  • 28.22 Aufgaben
  • 28.23 Lösungen
  • Kapitel 29: Multimediaanwendungen mit Qt
  • 29.1 Kalender und Textfeld ein digitales Tagebuch
  • 29.2 Kamerabilder
  • 29.3 Dialoge
  • 29.4 Videoplayer
  • 29.5 Aufgaben
  • 29.6 Lösungen
  • Kapitel 30: Rechnen mit NumPy
  • 30.1 NumPy installieren
  • 30.2 Arrays erzeugen
  • 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.18 Aufgaben
  • 30.19 Lösungen
  • Kapitel 31: Messdaten verarbeiten
  • 31.1 Messwerte in einem Diagramm darstellen Matplotlib und tkinter
  • 31.2 Messwerte aus einem Multimeter lesen und darstellen
  • 31.3 Anzeige der Temperatur
  • 31.4 Messreihen aufzeichnen
  • 31.5 Aufgabe
  • 31.6 Lösung
  • Kapitel 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.6 Daten im Pool bearbeiten
  • 32.7 Synchronisation
  • 32.8 Produzenten und Konsumenten
  • 32.9 Aufgaben
  • 32.10 Lösungen
  • Anhang A: Anhang
  • A.1 Zeichencodierung
  • A.2 Quellen im WWW
  • A.3 Standardfunktionen und Standardklassen
  • A.4 Mathematische Funktionen
  • Anhang B: Glossar
  • Anhang 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.3 Das Paket auf PyPI veröffentlichen
  • Stichwortverzeichnis

Mehr von dieser Serie

    Ähnliche Titel

      Mehr von diesem Autor