Python 3 für Studium und Ausbildung

Book description

  • Alle wichtigen Grundlagen der Python-Programmierung
  • Für alle Studiengänge geeignet, keine Vorkenntnisse notwendig
  • Mit Übungsaufgaben und leicht verständlichen Beispielen aus zahlreichen Anwendungsgebieten
  • Programmierkenntnisse sind heute eine Kompetenz, die nicht nur in IT-nahen Berufen vorausgesetzt wird. Dieses Buch richtet sich besonders an alle, die Python in Studium und Ausbildung lernen und keine Vorkenntnisse in der Programmierung haben.

    Die Ausrichtung des Studiengangs spielt dabei keine Rolle. Alle Themen werden fachunabhängig erläutert und die Übungen und praktischen Beispiele decken viele unterschiedliche Anwendungsbereiche ab, so dass Sie auf die verschiedensten Aufgaben optimal vorbereitet sind.

    Sie werden Schritt für Schritt in die Programmiertechniken eingeführt: von den Grundlagen (Datentypen, Kontrollstrukturen, Funktionen) über die Entwicklung komplexer Anwendungen mit grafischer Benutzungsoberfläche bis hin zur Anbindung an SQL-Datenbanken, Datenvisualisierung und wissenschaftlichem Rechnen mit Arrays (NumPy). Dabei lernen Sie auch, gut lesbare Programmtexte und sauberen Code zu schreiben, und erfahren, wie Sie Fehler finden und von Anfang an vermeiden können.

    Zahlreiche praktische Programmierübungen helfen Ihnen, Ihr Wissen zu festigen und sich auf Prüfungssituationen vorzubereiten. Die Lösungen zu allen Übungen inklusive Programmcode finden Sie auf der Verlagsseite zum kostenlosen Download.

    Aus dem Inhalt:
    • Alle Grundlagen einfach erklärt
    • Objektorientierte Programmierung
    • Mit Modulen arbeiten und eigene Module erstellen
    • Verarbeiten von Texten und Bildern
    • Grafische Benutzungsoberflächen mit tkinter
    • SQL-Datenbanken mit sqlite3
    • Wissenschaftliches Rechnen mit NumPy
    • Datenvisualisierung mit Matplotlib
    • Nutzung von CoLab und PythonAnywhere
    • Webprogrammierung mit CGI und WSGI
    • Agile Softwareentwicklung

Table of contents

  1. Impressum
  2. Inhalt
  3. Einleitung
    1. Python in Studium und Ausbildung
    2. Der Aufbau des Buchs
    3. Achten Sie auf den Schrifttyp!
    4. Programmtexte und Lösungen zum Download
  4. 1 Willkommen zu Python!
    1. 1.1 Die Programmiersprache Python
    2. 1.2 Was ist ein Algorithmus?
    3. 1.3 Syntax und Semantik
    4. 1.4 Interpreter und Compiler
    5. 1.5 Python installieren
    6. 1.6 Python im interaktiven Modus
    7. 1.7 Die Entwicklungsumgebung IDLE
    8. 1.8 Hotkeys für die IDLE-Shell
    9. 1.9 Anweisungen
      1. 1.9.1 Ausdruck
      2. 1.9.2 Funktionsaufruf
      3. 1.9.3 Zuweisung
      4. 1.9.4 Erweiterte Zuweisungen
    10. 1.10 Zahlen verarbeiten – Python als Taschenrechner
      1. 1.10.1 Operatoren
      2. 1.10.2 Variablen verwenden
    11. 1.11 Eine weitere Entwicklungsumgebung: Thonny
    12. 1.12 Notebooks mit Jupyter und CoLab
    13. 1.13 Rückblick
    14. 1.14 Übungen
    15. 1.15 Lösung der Frage: Semantik im Alltag
  5. 2 Datentypen – die Python-Typ-Hierarchie
    1. 2.1 Literale und die Funktion type()
    2. 2.2 Die Python-Typ-Hierarchie
    3. 2.3 Standard-Typen
      1. 2.3.1 Ganze Zahl (int)
      2. 2.3.2 Gleitkommazahl (float)
      3. 2.3.3 Komplexe Zahlen (complex)
      4. 2.3.4 Zeichenkette (str)
      5. 2.3.5 Tupel (tuple)
      6. 2.3.6 Liste (list)
      7. 2.3.7 Menge (set)
      8. 2.3.8 Dictionary (dict)
      9. 2.3.9 Wahrheitswerte – der Datentyp bool
      10. 2.3.10 NoneType
    4. 2.4 Gemeinsame Operationen für Kollektionen
      1. 2.4.1 Kollektion
      2. 2.4.2 Sequenz
    5. 2.5 Objekte eines Typs erzeugen – Casting
    6. 2.6 Dynamische Typisierung
    7. 2.7 Rückblick
    8. 2.8 Übung: Anweisungen
  6. 3 Interaktive Programme
    1. 3.1 Das erste Python-Skript
    2. 3.2 Das EVA-Prinzip
    3. 3.3 Kommentare
    4. 3.4 Projekt: Volumenberechnung
      1. 3.4.1 Kürzerer Programmtext durch verschachtelte Funktionsaufrufe
      2. 3.4.2 Aufruf der Funktion print() mit mehreren Argumenten
    5. 3.5 Python-Programme starten
      1. 3.5.1 Ausführung auf der Kommandozeile
      2. 3.5.2 Start durch Anklicken des Programm-Icons unter Windows
      3. 3.5.3 Python-Programme unter Linux – die Shebang-Zeile
      4. 3.5.4 Starten im Finder von macOS
    6. 3.6 Fehler finden
      1. 3.6.1 Syntaxfehler
      2. 3.6.2 Laufzeitfehler
      3. 3.6.3 Semantische Fehler
      4. 3.6.4 Tipps zum Fehlerfinden
    7. 3.7 Rückblick
    8. 3.8 Übungen
    9. 3.9 Lösungen zu den Fragen
  7. 4 Kontrollstrukturen
    1. 4.1 Programmverzweigungen
      1. 4.1.1 Einseitige Verzweigung (if)
      2. 4.1.2 Projekt: Passwort
      3. 4.1.3 Zweiseitige Verzweigung (if…else)
      4. 4.1.4 Projekt: Kinokarte
      5. 4.1.5 Fallunterscheidung (if...elif...else)
      6. 4.1.6 Projekt: Auskunftautomat
    2. 4.2 Das Layout von Python-Programmen: Zeilen und Blöcke
      1. 4.2.1 Block
      2. 4.2.2 Zeilenstruktur
    3. 4.3 Bedingungen konstruieren
      1. 4.3.1 Boolesche Werte
      2. 4.3.2 Boolesche Operatoren
      3. 4.3.3 Vergleichsketten
      4. 4.3.4 Projekt: Früchte erkennen
    4. 4.4 Bedingte Wiederholung – while
      1. 4.4.1 Projekt: Aufsummieren
      2. 4.4.2 Projekt: Planeten
      3. 4.4.3 Projekt: Wurzelberechnung (Mathematik)
      4. 4.4.4 Endloswiederholung
    5. 4.5 Iterationen – for
      1. 4.5.1 Wiederholungen mit range()
    6. 4.6 Rückblick
    7. 4.7 Übungen
    8. 4.8 Lösungen zu den Fragen
  8. 5 Funktionen
    1. 5.1 Warum definiert man Funktionen?
    2. 5.2 Definition und Aufruf einer Funktion
      1. 5.2.1 Projekt: Fallhöhe berechnen
    3. 5.3 Optionale Parameter und voreingestellte Werte
      1. 5.3.1 Erweiterung des Projekts: Fallhöhe auf unterschiedlichen Himmelskörpern
    4. 5.4 Eine Funktion in der Shell testen
    5. 5.5 Die return-Anweisung
      1. 5.5.1 Prozeduren
      2. 5.5.2 Wirkungen der return-Anweisung
    6. 5.6 Positionsargumente und Schlüsselwortargumente
    7. 5.7 Guter Programmierstil
      1. 5.7.1 Funktionsname
      2. 5.7.2 Funktionsannotationen
      3. 5.7.3 Docstring
      4. 5.7.4 Signatur
    8. 5.8 Die print()-Funktion unter der Lupe
    9. 5.9 Globale und lokale Namen
    10. 5.10 Rekursive Funktionen
      1. 5.10.1 Projekt: Die Berechnung der Fakultät
    11. 5.11 Lambda-Funktionen *
    12. 5.12 Funktionen als Argumente: map() und filter() *
      1. 5.12.1 Mapping
      2. 5.12.2 Filtern
    13. 5.13 Rückblick
    14. 5.14 Übungen
    15. 5.15 Lösungen zu den Fragen
  9. 6 Mit Modulen arbeiten
    1. 6.1 Importanweisungen
      1. 6.1.1 Ein Modul importieren
      2. 6.1.2 Funktionen aus einem Modul importieren
    2. 6.2 Mathematische Funktionen: Das Modul math
    3. 6.3 Zufallsfunktionen: Das Modul random
      1. 6.3.1 Projekt: Würfeln
      2. 6.3.2 Projekt: Wer ist der Nächste?
    4. 6.4 Datum und Zeit
      1. 6.4.1 Projekt: Uhrzeit
      2. 6.4.2 Projekt: Rechentrainer
    5. 6.5 Ein eigenes Modul erstellen
      1. 6.5.1 Projekt: Ein Modul zur Volumenberechnung
      2. 6.5.2 Welchen Vorteil haben Module?
    6. 6.6 Module aus dem Python Package Index (PyPI)
    7. 6.7 Rückblick
    8. 6.8 Übungen
  10. 7 Mit Kollektionen modellieren
    1. 7.1 Sequenzen
      1. 7.1.1 Listen
      2. 7.1.2 Tupel
      3. 7.1.3 Komplexe Sequenzen
      4. 7.1.4 Iteration über eine Liste aus Tupeln
      5. 7.1.5 Gemeinsame Operationen für Sequenzen
      6. 7.1.6 Spezielle Operationen für Listen
      7. 7.1.7 Sortieren
      8. 7.1.8 Eine Liste erzeugen
    2. 7.2 Projekt: Telefonliste
    3. 7.3 Dictionaries
      1. 7.3.1 Operationen für Dictionaries
      2. 7.3.2 Ein Dictionary ändern
    4. 7.4 Projekt: Vokabeltrainer
    5. 7.5 Projekt: Routenplaner
      1. 7.5.1 Verkehrswege und Graphen
      2. 7.5.2 Programmierung
    6. 7.6 Rückblick
    7. 7.7 Übungen
    8. 7.8 Lösungen zu den Fragen
  11. 8 Daten speichern
    1. 8.1 Wie werden Daten gespeichert?
      1. 8.1.1 Dateien öffnen
      2. 8.1.2 Stream-Methoden
      3. 8.1.3 Texte speichern und laden
      4. 8.1.4 Binärdateien und Bytestrings
      5. 8.1.5 Pfade im Verzeichnisbaum
    2. 8.2 Laufzeitfehler abfangen
      1. 8.2.1 try...except
      2. 8.2.2 try…except…finally
    3. 8.3 with-Anweisungen
    4. 8.4 Projekt: Logbuch
    5. 8.5 Datenstrukturen speichern und laden: Das Modul pickle
      1. 8.5.1 Speichern
      2. 8.5.2 Laden
    6. 8.6 Projekt: Digitaler Planer
    7. 8.7 Daten im JSON-Format speichern
      1. 8.7.1 Aufbau eines JSON-Texts
      2. 8.7.2 Die Grenzen von JSON
    8. 8.8 Projekt: Temperaturdaten
      1. 8.8.1 Writer
      2. 8.8.2 Reader
    9. 8.9 Daten aus dem Internet
    10. 8.10 Projekt: Digitale Bibliothek
    11. 8.11 Rückblick
    12. 8.12 Übung: News-Check
    13. 8.13 Lösungen zu den Fragen
  12. 9 Textverarbeitung
    1. 9.1 Unicode-Nummern für Zeichen
    2. 9.2 Escape-Sequenzen
    3. 9.3 Stringmethoden
    4. 9.4 Projekt: Goethes Wortschatz
    5. 9.5 Projekt: Wie warm wird es heute?
    6. 9.6 Ausblick: Reguläre Ausdrücke *
      1. 9.6.1 Was ist ein regulärer Ausdruck?
      2. 9.6.2 Aufbau eines regulären Ausdrucks
      3. 9.6.3 Textpassagen finden mit findall()
      4. 9.6.4 Platzhalter für Zeichen aus einer Zeichenmenge
      5. 9.6.5 Reguläre Ausdrücke verknüpfen
      6. 9.6.6 Quantoren
      7. 9.6.7 Sonderzeichen maskieren
      8. 9.6.8 Gieriges oder nicht gieriges Finden
      9. 9.6.9 Webscraping mit regulären Ausdrücken
    7. 9.7 Texte mit variablen Teilen
      1. 9.7.1 Formatierung
      2. 9.7.2 Platzhalter mit Namen
      3. 9.7.3 Formatangaben für Platzhalter
    8. 9.8 Projekt: Textanalyse
    9. 9.9 Projekt: Storytelling
    10. 9.10 Rückblick
    11. 9.11 Übungen
    12. 9.12 Lösungen zu den Fragen
  13. 10 Zugriff auf die Systemumgebung
    1. 10.1 Schnittstelle zum Betriebssystem: Das Modul os
    2. 10.2 Suchen und Eigenschaften ermitteln
      1. 10.2.1 Unterverzeichnisse ausgeben
      2. 10.2.2 Verzeichnisbaum durchlaufen
    3. 10.3 Dateien und Verzeichnisse anlegen und umbenennen
      1. 10.3.1 Projekt: Bilddateien umbenennen
    4. 10.4 Das Modul sys – die Schnittstelle zum Laufzeitsystem
      1. 10.4.1 Informationen über die aktuelle Systemumgebung abfragen
      2. 10.4.2 Kommandozeilenargumente abfragen
      3. 10.4.3 Blick hinter die Kulissen: Speicherverwaltung *
      4. 10.4.4 Zugriff auf Module
      5. 10.4.5 Die Standardausgabe in eine Datei umleiten
    5. 10.5 Rückblick
    6. 10.6 Übungen
    7. 10.7 Lösung zu der Frage: Welcher Kommentar passt?
  14. 11 Grafische Benutzungsoberflächen
    1. 11.1 Widgets
    2. 11.2 Das Anwendungsfenster Tk
    3. 11.3 Ein Widget einfügen
    4. 11.4 Das Aussehen der Widgets gestalten
      1. 11.4.1 Die Größe eines Widgets
    5. 11.5 Gemeinsame Methoden der Widgets
    6. 11.6 Schaltflächen und Eventhandler
      1. 11.6.1 Projekt: Motivator
    7. 11.7 Das Layout verfeinern
    8. 11.8 Raster-Layout
    9. 11.9 Projekt: 25 Farben – ein automatisches Farbfelder-Bild
    10. 11.10 Widgets zur Texteingabe
      1. 11.10.1 Einzeilige Eingabe: Das Entry-Widget
      2. 11.10.2 Mehrzeilige Eingabe: Das Text-Widget
      3. 11.10.3 Projekt: Reimen mit Goethe
    11. 11.11 Radiobuttons
      1. 11.11.1 Projekt: Währungsrechner
    12. 11.12 Dialogboxen
      1. 11.12.1 Projekt: Texteditor
    13. 11.13 Parallele Abläufe: Threads
      1. 11.13.1 Ein Experiment: Countdown
      2. 11.13.2 Eine Funktion in einem eigenen Thread ausführen
    14. 11.14 Rückblick
    15. 11.15 Übungen
    16. 11.16 Lösungen zu den Fragen
  15. 12 Grafik programmieren
    1. 12.1 Bilder auf Schaltflächen und Labels
      1. 12.1.1 Projekt: Würfelspiel
      2. 12.1.2 Bilder verändern
      3. 12.1.3 Projekt: Graustufen
    2. 12.2 Canvas
      1. 12.2.1 Flächen gestalten
      2. 12.2.2 Linien gestalten
      3. 12.2.3 ID-Nummern: Elemente löschen oder bewegen
    3. 12.3 Projekt: Creative Coding
    4. 12.4 Die Python Imaging Library (PIL)
      1. 12.4.1 Ein Image-Objekt aus einer Datei gewinnen
      2. 12.4.2 Ein Image-Objekt ohne Datei erzeugen
      3. 12.4.3 Attribute und Methoden von Image-Objekten
      4. 12.4.4 Bilder über Listen verarbeiten
      5. 12.4.5 Bilder einfügen
      6. 12.4.6 Projekt: Greenscreen
      7. 12.4.7 PIL.Image-Objekte in tkinter-Anwendungen
      8. 12.4.8 Projekt: Webcam-Viewer
    5. 12.5 Rückblick
    6. 12.6 Übungen
  16. 13 Fehler finden und vermeiden
    1. 13.1 Zusicherungen
    2. 13.2 Tracing
      1. 13.2.1 Beispiel: Quicksort
    3. 13.3 Debugging mit IDLE
      1. 13.3.1 Der Debugger der Python-Shell
      2. 13.3.2 Das Programm schrittweise durchlaufen
      3. 13.3.3 Haltepunkte setzen
    4. 13.4 Debugging mit Thonny
    5. 13.5 Rückblick
    6. 13.6 Lösungen zu den Fragen
  17. 14 Objektorientierte Programmierung
    1. 14.1 Klassen und Objekte
      1. 14.1.1 Was ist Objektorientierung?
      2. 14.1.2 Klassen entwerfen und grafisch darstellen – UML
      3. 14.1.3 Definition einer Klasse
      4. 14.1.4 Objekte einer Klasse erzeugen: Instanziierung
      5. 14.1.5 Auf Attribute zugreifen
      6. 14.1.6 Methoden aufrufen
      7. 14.1.7 Objekte mit variablen Anfangswerten
      8. 14.1.8 Metaphern in der Programmierung
    2. 14.2 Projekt: Geld
      1. 14.2.1 Mit Geld-Objekten rechnen
      2. 14.2.2 Klassenattribute
      3. 14.2.3 Operatoren überladen – Polymorphie
    3. 14.3 Magische Methoden
    4. 14.4 Projekt: Abrechnung
    5. 14.5 Vererbung
    6. 14.6 Projekt: Farbtester
    7. 14.7 Projekt: Zahlenregen
    8. 14.8 Rückblick
    9. 14.9 Übungen
    10. 14.10 Lösungen zu den Fragen
  18. 15 Datenbanktechnik
    1. 15.1 Was ist ein Datenbanksystem?
    2. 15.2 Eine Datenbank entwerfen – das Entity-Relationship-Diagramm (ER)
    3. 15.3 Relationale Datenbanken
    4. 15.4 Relationen mit Python darstellen *
      1. 15.4.1 Menge von Tupeln
      2. 15.4.2 Benannte Tupel (named tuples)
    5. 15.5 Das Modul sqlite3 – Schnittstelle zu einer SQL-Datenbank
      1. 15.5.1 Mit SQL Tabellen anlegen und Tupel eintragen
      2. 15.5.2 Mit sqlite3 eine SQLite-Datenbank aufbauen
      3. 15.5.3 Formulierung von Anfragen (Queries) mit SQL
      4. 15.5.4 Datenbankanfragen in Python-Programmen
      5. 15.5.5 SQL-Anweisungen mit variablen Teilen
    6. 15.6 Projekt: Zitatesammlung
      1. 15.6.1 ER-Diagramm
      2. 15.6.2 Tabellen (Beispiel)
      3. 15.6.3 Administration der Zitatesammlung
      4. 15.6.4 Nach Zitaten suchen
    7. 15.7 Rückblick
    8. 15.8 Übungen
    9. 15.9 Lösungen zu den Fragen
  19. 16 Wissenschaftliche Projekte
    1. 16.1 NumPy – Rechnen mit Arrays
      1. 16.1.1 Arrays
      2. 16.1.2 Indizieren
      3. 16.1.3 Slicing
      4. 16.1.4 Arrays verändern
      5. 16.1.5 Arithmetische Operationen
      6. 16.1.6 Funktionen, die elementweise ausgeführt werden
      7. 16.1.7 Matrizenmultiplikation mit dot()
      8. 16.1.8 Array-Funktionen und Achsen
    2. 16.2 Datenvisualisierung mit matplotlib
      1. 16.2.1 Liniendiagramme
      2. 16.2.2 Mehrere Linien in einem Diagramm
      3. 16.2.3 Histogramme
      4. 16.2.4 Projekt: Würfeln
      5. 16.2.5 Heatmaps
    3. 16.3 Projekt: Bewegungsprofil
    4. 16.4 Google Colaboratory – Colab
      1. 16.4.1 Ein Colab-Notebook erzeugen
      2. 16.4.2 Text-Zellen
      3. 16.4.3 Bilder einfügen
      4. 16.4.4 Notebooks speichern und öffnen
    5. 16.5 Projekt: Füchse und Hasen – Simulation eines Räuber-Beute-Systems
      1. 16.5.1 Notebooks teilen
    6. 16.6 Rückblick
    7. 16.7 Übungen
    8. 16.8 Lösungen zu den Fragen
  20. 17 Dynamische Webseiten: CGI und WSGI
    1. 17.1 Dynamische Webseiten mit CGI
      1. 17.1.1 Projekt: Wie spät ist es?
      2. 17.1.2 Die Ausgabe eines CGI-Skripts
      3. 17.1.3 Wie ist ein CGI-Skript aufgebaut?
      4. 17.1.4 CGI-Skripte unter Windows
      5. 17.1.5 Aufruf mit dem Webbrowser
      6. 17.1.6 Ein HTTP-Server
      7. 17.1.7 Zugriff von einem anderen Computer im lokalen Netz
    2. 17.2 Interaktive Webseiten
      1. 17.2.1 Eingabekomponenten in einem HTML-Formular
      2. 17.2.2 Verarbeitung von Eingabedaten mit FieldStorage
    3. 17.3 Wie verarbeitet man Umlaute? *
    4. 17.4 Dynamische Webseiten mit WSGI
      1. 17.4.1 Das Applikationsobjekt
      2. 17.4.2 Skripte mit eigenem HTTP-Server – das Modul wsgiref
    5. 17.5 Projekt: Wie spät ist es? (II)
    6. 17.6 Projekt: Umfrage
      1. 17.6.1 Die HTML-Schablonen
      2. 17.6.2 Der algorithmische Teil
    7. 17.7 Einen Hosting-Dienst nutzen
      1. 17.7.1 Python Anywhere
      2. 17.7.2 Das vorgefertigte OWSGI-Programm ausprobieren
      3. 17.7.3 Projekt: Wie spät ist es? (III)
      4. 17.7.4 WSGI-Projekte modularisieren
    8. 17.8 Rückblick
    9. 17.9 Übungen
    10. 17.10 Lösung zur Frage: Interaktive Webseite
  21. 18 Professionelle Software-Entwicklung
    1. 18.1 Die Laufzeit von Programmen
      1. 18.1.1 Schnelles Sortieren – Quicksort versus Straight Selection
      2. 18.1.2 Performance-Analyse mit dem Profiler
    2. 18.2 Agile Software-Entwicklung
      1. 18.2.1 Software Engineering
      2. 18.2.2 Einige Grundideen der agilen Software-Entwicklung
    3. 18.3 Projekt: Digitales Notizbuch
      1. 18.3.1 Stories
      2. 18.3.2 Erste Iteration
      3. 18.3.3 Zweite Iterationen
      4. 18.3.4 Refactoring
      5. 18.3.5 Neue Stories und Änderbarkeit
    4. 18.4 Test Driven Development mit doctest
    5. 18.5 Übung: Ticketbuchung
  22. Glossar

Product information

  • Title: Python 3 für Studium und Ausbildung
  • Author(s): Michael Weigend
  • Release date: March 2022
  • Publisher(s): mitp Verlag
  • ISBN: 9783747504369