O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Programmieren lernen mit Python, 2nd Edition

Book Description

Python ist eine moderne, interpretierte, interaktive und objektorientierte Skriptsprache, vielseitig einsetzbar und sehr beliebt. Python ist leicht erlernbar und daher die ideale Sprache für den Einstieg in die Welt des Programmierens. Das Buch führt Sie Schritt für Schritt durch die Sprache, beginnend mit grundlegenden Programmierkonzepten, über Funktionen, Syntax und Semantik, Rekursion und Datenstrukturen bis hin zum objekt-orientierten Design. Jenseits reiner Theorie enthält jedes Kapitel entsprechende Übungen, an denen Sie die neu erlernten Programmierkonzepte gleich ausprobieren und festigen können.

Table of Contents

  1. Vorwort
    1. Die seltsame Geschichte dieses Buchs
    2. Typografische Konventionen
    3. Nutzung der Codebeispiele
    4. Danksagungen
  2. 1. Programme entwickeln
    1. Die Programmiersprache Python
    2. Was ist ein Programm?
    3. Was ist Debugging?
    4. Syntaxfehler
    5. Laufzeitfehler
    6. Semantische Fehler
    7. Experimentelles Debugging
    8. Formale und natürliche Sprachen
      1. Übung 1-1:
    9. Das erste Programm
    10. Debugging
    11. Glossar
    12. Übungen
      1. Übung 1-2:
      2. Übung 1-3:
      3. Übung 1-4:
  3. 2. Variablen, Ausdrücke und Anweisungen
    1. Werte und Typen
    2. Variablen
      1. Übung 2-1:
    3. Variablennamen und Schlüsselwörter
    4. Operatoren und Operanden
    5. Ausdrücke und Anweisungen
    6. Interaktiver Modus und Skriptmodus
      1. Übung 2-2:
    7. Rangfolge von Operatoren
    8. String-Operationen
    9. Kommentare
    10. Debugging
    11. Glossar
    12. Übungen
      1. Übung 2-3:
      2. Übung 2-4:
  4. 3. Funktionen
    1. Funktionsaufrufe
    2. Funktionen zur Typkonvertierung
    3. Mathematische Funktionen
    4. Komposition
    5. Neue Funktionen erstellen
    6. Definition und Verwendung
      1. Übung 3-1:
      2. Übung 3-2:
    7. Programmablauf
    8. Parameter und Argumente
    9. Variablen und Parameter sind lokal
    10. Stapeldiagramme
    11. Funktionen mit und ohne Rückgabewert
    12. Warum Funktionen?
    13. Import mit from
    14. Debugging
    15. Glossar
    16. Übungen
      1. Übung 3-3:
      2. Übung 3-4:
      3. Übung 3-5:
  5. 4. Fallstudie: Gestaltung von Schnittstellen
    1. TurtleWorld
    2. Einfache Wiederholung
    3. Übungen
    4. Datenkapselung
    5. Generalisierung
    6. Gestaltung von Schnittstellen
    7. Refactoring
    8. Entwicklungsplan
    9. Docstring
    10. Debugging
    11. Glossar
    12. Übungen
      1. Übung 4-1:
      2. Übung 4-2:
      3. Übung 4-3:
      4. Übung 4-4:
      5. Übung 4-5:
  6. 5. Bedingungen und Rekursion
    1. Modulos-Operator
    2. Boolesche Ausdrücke
    3. Logische Operatoren
    4. Bedingte Ausführung
    5. Alternativer Programmablauf
    6. Verkettete Bedingungen
    7. Verschachtelte Bedingungen
    8. Rekursion
    9. Stapeldiagramme für rekursive Funktionen
      1. Übung 5-1:
      2. Übung 5-2:
    10. Endlose Rekursion
    11. Tastatureingaben
    12. Debugging
    13. Glossar
    14. Übungen
      1. Übung 5-3:
      2. Übung 5-4:
      3. Übung 5-5:
      4. Übung 5-6:
  7. 6. Funktionen mit Rückgabewert
    1. Rückgabewerte
      1. Übung 6-1:
    2. Inkrementelle Entwicklung
      1. Übung 6-2:
    3. Funktionskomposition
    4. Boolesche Funktionen
      1. Übung 6-3:
    5. Mehr Rekursion
    6. Vertrauensvorschuss
    7. Noch ein Beispiel
    8. Typprüfung
    9. Debugging
    10. Glossar
    11. Übungen
      1. Übung 6-4:
      2. Übung 6-5:
      3. Übung 6-6:
      4. Übung 6-7:
      5. Übung 6-8:
  8. 7. Iteration
    1. Mehrfache Zuweisungen
    2. Variablen aktualisieren
    3. Die while-Anweisung
      1. Übung 7-1:
    4. break
    5. Quadratwurzeln
      1. Übung 7-2:
    6. Algorithmen
    7. Debugging
    8. Glossar
    9. Übungen
      1. Übung 7-3:
      2. Übung 7-4:
      3. Übung 7-5:
  9. 8. Strings
    1. Ein String ist eine Folge
    2. len
    3. Traversierung mit einer Schleife
      1. Übung 8-1:
      2. Übung 8-2:
    4. String-Teile
      1. Übung 8-3:
    5. Strings sind unveränderbar
    6. Suchen
      1. Übung 8-4:
    7. Schleifen und Zähler
      1. Übung 8-5:
      2. Übung 8-6:
    8. String-Methoden
      1. Übung 8-7:
      2. Übung 8-8:
    9. Der in-Operator
    10. String-Vergleich
    11. Unicode
    12. Debugging
      1. Übung 8-9:
    13. Glossar
    14. Übungen
      1. Übung 8-10:
      2. Übung 8-11:
      3. Übung 8-12:
  10. 9. Fallstudie: Wortspiele
    1. Wortlisten einlesen
      1. Übung 9-1:
    2. Übungen
      1. Übung 9-2:
      2. Übung 9-3:
      3. Übung 9-4:
      4. Übung 9-5:
      5. Übung 9-6:
    3. Suchen
    4. Schleifen mit Indizes
    5. Debugging
    6. Glossar
    7. Übungen
      1. Übung 9-7:
      2. Übung 9-8:
  11. 10. Listen
    1. Eine Liste ist eine Sequenz
    2. Listen können geändert werden
    3. Listen durchlaufen
    4. Operationen mit Listen
    5. Listen-Slices
    6. Methoden für Listen
    7. Map, Filter und Reduktion
      1. Übung 10-1:
      2. Übung 10-2:
      3. Übung 10-3:
    8. Listen-Abstraktionen
    9. Elemente löschen
      1. Übung 10-4:
      2. Übung 10-5:
    10. Listen und Strings
    11. Objekte und Werte
    12. Aliasing
    13. Listen als Argument
    14. Mengen
    15. Debugging
    16. Glossar
    17. Übungen
      1. Übung 10-6:
      2. Übung 10-7:
      3. Übung 10-8:
      4. Übung 10-9:
      5. Übung 10-10:
      6. Übung 10-11:
      7. Übung 10-12:
      8. Übung 10-13:
  12. 11. Dictionaries
    1.  
      1. Übung 11-1:
    2. Dictionary als Menge von Zählern
      1. Übung 11-2:
    3. Schleifen und Dictionaries
      1. Übung 11-3:
    4. Inverse Suche
      1. Übung 11-4:
    5. Dictionaries und Listen
      1. Übung 11-5:
    6. Dictionary-Abstraktionen
    7. Memos
      1. Übung 11-6:
      2. Übung 11-7:
    8. Globale Variablen
    9. Long Integer
      1. Übung 11-8:
    10. Debugging
    11. Glossar
    12. Übungen
      1. Übung 11-9:
      2. Übung 11-10:
  13. 12. Tupel
    1. Tupel sind unveränderbar
    2. Tupel-Zuweisung
    3. Tupel als Rückgabewerte
    4. Argument-Tupel mit variabler Länge
      1. Übung 12-1:
    5. Listen und Tupel
    6. Dictionaries und Tupel
    7. Tupel vergleichen
      1. Übung 12-2:
    8. Sequenzen mit Sequenzen
    9. Debugging
    10. Glossar
    11. Übungen
      1. Übung 12-3:
      2. Übung 12-4:
      3. Übung 12-5:
      4. Übung 12-6:
  14. 13. Fallstudie: Die Wahl der richtigen Datenstruktur
    1. Häufigkeitsanalyse für Wörter
      1. Übung 13-1:
      2. Übung 13-2:
      3. Übung 13-3:
      4. Übung 13-4:
    2. Zufallszahlen
      1. Übung 13-5:
    3. Worthistogramm
    4. Die häufigsten Wörter
    5. Optionale Parameter
    6. Dictionary-Subtraktion
    7. Zufallswörter
      1. Übung 13-6:
    8. Markov-Analyse
      1. Übung 13-7:
    9. Datenstrukturen
    10. Debugging
    11. Glossar
    12. Übungen
      1. Übung 13-8:
  15. 14. Dateien
    1. Persistenz
    2. Lesen und schreiben
    3. Formatoperator
    4. format-Methode
    5. Dateinamen und Pfade
      1. Übung 14-1:
    6. Ausnahmen abfangen
      1. Übung 14-2:
    7. Datenbanken
    8. Pickling
      1. Übung 14-3:
    9. Pipes
      1. Übung 14-4:
    10. Module schreiben
      1. Übung 14-5:
    11. Debugging
    12. Glossar
    13. Übungen
      1. Übung 14-6:
  16. 15. Klassen und Objekte
    1. Benutzerdefinierte Typen
    2. Attribute
      1. Übung 15-1:
    3. Rechtecke
    4. Instanzen als Rückgabewerte
    5. Objekte sind veränderbar
      1. Übung 15-2:
    6. Kopieren
      1. Übung 15-3:
    7. Debugging
    8. Glossar
    9. Übungen
      1. Übung 15-4:
  17. 16. Klassen und Funktionen
    1. Zeit
      1. Übung 16-1:
      2. Übung 16-2:
    2. Reine Funktionen
    3. Modifizierende Funktionen
      1. Übung 16-3:
      2. Übung 16-4:
    4. Prototyping kontra Planung
      1. Übung 16-5:
    5. Debugging
    6. Glossar
    7. Übungen
      1. Übung 16-6:
      2. Übung 16-7:
  18. 17. Klassen und Methoden
    1. Objektorientierte Programmierung
    2. Objekte ausgeben
      1. Übung 17-1:
    3. Noch ein Beispiel
    4. Ein komplizierteres Beispiel
    5. init-Methode
      1. Übung 17-2:
    6. Methode __str__
      1. Übung 17-3:
    7. Operator-Überladung
      1. Übung 17-4:
    8. Dynamische Bindung
      1. Übung 17-5:
    9. Polymorphismus
    10. Debugging
    11. Schnittstelle und Implementierung
      1. Übung 17-6:
    12. Glossar
    13. Übungen
      1. Übung 17-7:
      2. Übung 17-8:
  19. 18. Vererbung
    1. Karten-Objekte
    2. Klassenattribute
    3. Karten vergleichen
      1. Übung 18-1:
    4. Stapel
    5. Kartenstapel ausgeben
    6. Hinzufügen, entfernen, mischen und sortieren
      1. Übung 18-2:
    7. Vererbung
      1. Übung 18-2:
    8. Klassendiagramme
      1. Übung 18-4:
    9. Debugging
    10. Datenkapselung
      1. Übung 18-5:
    11. Glossar
    12. Übungen
      1. Übung 18-6:
      2. Übung 18-7:
  20. 19. Fallstudie: Tkinter
    1. GUI
    2. Buttons und Callbacks
      1. Übung 19-1:
    3. Canvas-Widgets
      1. Übung 19-2:
    4. Koordinatensequenzen
    5. Weitere Widgets
      1. Übung 19-3:
    6. Widgets packen
    7. Menüs und Callables
    8. Bindung
    9. Debugging
    10. Glossar
    11. Übungen
      1. Übung 19-4:
      2. Übung 19-5:
      3. Übung 19-6:
  21. A. Debugging
    1. Syntaxfehler
      1. Ich nehme immer wieder Änderungen vor, sehe aber keinen Unterschied
    2. Laufzeitfehler
      1. Mein Programm macht absolut gar nichts
      2. Mein Programm hängt
        1. Endlosschleifen
        2. Endlose Rekursion
        3. Programmablauf
      3. Ich erhalte eine Ausnahme, wenn ich das Programm ausführe
      4. Ich habe so viele print-Anweisungen eingefügt, dass mich die Ausgaben überfordern
    3. Semantische Fehler
      1. Mein Programm funktioniert nicht
      2. Ich habe einen großen und haarigen Ausdruck, der nicht macht, was er soll
      3. Eine Funktion oder Methode liefert nicht den erwarteten Rückgabewert
      4. Ich komme wirklich nicht weiter und brauche Hilfe
      5. Nein, ich brauche wirklich Hilfe
  22. B. Algorithmenanalyse
    1. Wachstumsordnung
      1. Übung B-1:
    2. Analyse grundlegender Python-Operationen
      1. Übung B-2:
    3. Analyse von Suchalgorithmen
      1. Übung B-3:
    4. Hashtabellen
  23. C. Lumpy
    1. Zustandsdiagramm
    2. Stapeldiagramm
    3. Objektdiagramme
    4. Funktions- und Klassenobjekte
    5. Klassendiagramme
  24. Stichwortverzeichnis
  25. Kolophon
  26. Copyright