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 von Kopf bis Fuß

Book Description

Haben Sie sich auch schon gefragt, ob es möglich ist, mithilfe eines Buchs das Programmieren zu lernen? Nun – mit dem richtigen Buch geht das schon! Programmieren von Kopf bis Fuß ist auch für all jene geeignet, die noch keinerlei Programmiererfahrung mitbringen, und vermittelt auf kluge und spielerische Art die grundlegenden Ideen bei der Entwicklung eigener Programme. Die vorgestellten Konzepte wie Variablen, Schleifen oder Anweisungen sind erst einmal allen Programmiersprachen gemeinsam, für die konkreten Beispiele und Übungen wird dann Python verwendet, weil sich anhand dieser dynamischen, vielseitigen Sprache das Gesagte sehr gut demonstrieren und vertiefen lässt.

Angst vor grauer Theorie und akademischer Starre brauchen Sie hier nicht zu haben: Krempeln Sie die Ärmel hoch, legen Sie los – und ehe Sie sich versehen, schicken Sie schon die Ergebnisse Ihrer Programme an Twitter!

Table of Contents

  1. Programmieren von Kopf bis Fuß
  2. Die Autoren von Programmieren von Kopf bis Fuß
  3. Über den Übersetzer dieses Buchs
  4. Wie man dieses Buch benutzt: Einführung
    1. Für wen ist dieses Buch?
      1. Wer sollte eher die Finger von diesem Buch lassen?
    2. Wir wissen, was Sie gerade denken
    3. Und wir wissen, was Ihr Gehirn gerade denkt
    4. Metakognition: Nachdenken übers Denken
    5. Das haben WIR getan
    6. Und das können SIE tun, um sich Ihr Gehirn untertan zu machen
    7. Lies mich
    8. Die technischen Gutachter
    9. Danksagungen
  5. 1. Der Anfang des Prgrammierens: Orientierungshilfe
    1. Mit Programmieren können Sie mehr erreichen
      1. Aber was sind t und tipp?
    2. Und wie führt man das Programm aus?
    3. Eine neue Programmdatei erstellen
    4. Code vorbereiten und ausführen
    5. Ein Programm ist mehr als eine einfache Folge von Befehlen
    6. Codeville: Ihr Programm ist wie ein Straßennetz
    7. Verzweigungen sind Codeschnittstellen
    8. if/else-Verzweigungen
    9. Der Python-Code braucht verknüpfte Verzweigungen
    10. In Python werden Pfade durch Einrückung verbunden
    11. Mit Schleifen können Sie Code immer wieder ausführen lassen
    12. Pythons while-Schleife
    13. Ihr Programmierwerkzeugkasten
  6. 2. Textdaten: Jeder Text zu seiner Zeit
    1. Der neue Sternback-Auftrag
    2. Hier ist der aktuelle Sternback-Code
    3. Der Preis ist in das HTML eingebettet
    4. Ein String ist eine Folge von Zeichen
    5. Zeichen in Text finden
    6. Aber wie erhält man mehr als ein Zeichen?
    7. Beans’R’Us belohnt Stammkunden
      1. Der Preis steht an einer anderen Stelle
    8. Suchen ist nicht leicht
    9. Python-Daten sind schlau
    10. Strings und Zahlen sind unterschiedlich
    11. Das Programm hat den Beans’R’Us-Server überfordert
    12. Zeit ... hätten wir nur mehr davon!
    13. Sie nutzen bereits eine Bibliothek
    14. Die Ordnung ist wiederhergestellt
    15. Ihr Programmierwerkzeugkasten
  7. 3. Funktinen: Ordnung schaffen
    1. Sternback gehen die Bohnen aus!
    2. Was muss das neue Programm leisten?
    3. Vermeiden Sie Codeverdopplung ...
    4. ... und verwenden Sie Ihren Code wieder
    5. Codewiederverwendung mit Funktionen
    6. Bringen Sie die Dinge in die richtige Reihenfolge
    7. Mit dem Befehl return Daten zurückliefern
    8. Nutze die Macht, das Web Luke
    9. Die Funktion sendet immer die gleiche Nachricht
    10. Funktionsverdopplung mit Parametern vermeiden
    11. Jemand hat an Ihrem Code herumgepfuscht
    12. Der Rest des Programms kann die Variable passwort nicht sehen
    13. Wenn Sie eine Funktion aufrufen, erstellt der Computer eine neue Variablenliste
    14. Wenn Sie eine Funktion verlassen, werden Ihre Variablen weggeworfen
    15. Die Sternback-Lager sind gefüllt!
    16. Ihr Programmierwerkzeugkasten
  8. 4. Daten in Dateien und Listen: Sortieren
    1. Starke Brandung in Codeville
    2. Die höchste Punktzahl in der Ergebnisdatei finden
    3. Dateien mit dem Öffnen-Lesen-Schließen-Muster durchlaufen
    4. Die Datei enthält nicht nur Zahlen ...
    5. Die Zeilen beim Lesen spalten
    6. Die Methode split() zerlegt den String
    7. Aber Sie benötigen mehr als ein Ergebnis
    8. Drei Highscores machen den Code komplexer
    9. Eine geordnete Liste macht den Code erheblich einfacher
    10. Im Speicher zu sortieren ist leichter
      1. Halten Sie Ihre Daten im Speicher
    11. Sie können unmöglich eine eigene Variable für jede Datenzeile nutzen
    12. Mit Listen können Sie ganze Datenzüge verwalten
    13. Listen in Python
      1. Listen sind erweiterbar
    14. Die Liste vor der Anzeige der Ergebnisse sortieren
    15. Die Punktzahlen in absteigender Folge sortieren
    16. Und wer ist der Sieger?
    17. Wir haben die Namen der Surfer vergessen
    18. Ihr Programmierwerkzeugkasten
  9. 5. Abbildungen und Datenbanken: Daten ihren Platz zuweisen
    1. Wer hat den Wettbewerb gewonnen?
    2. Punkte und Namen verbinden
      1. Nutzen Sie eine Abbildung
    3. Einen Schlüssel und einen Wert verbinden
    4. Abbildungen mit for durchlaufen
    5. Die Daten sind nicht sortiert
      1. Pythons Abbildungen haben keine sort()-Methode ...
      2. ... aber eine Funktion namens sorted()
    6. Wenn Daten komplexer werden
      1. Wie die RSV-Daten aussehen
    7. Aus einer Funktion eine Datenstruktur liefern
    8. Und hier: Ihr neues Brett!
    9. Unterdessen im Studio ...
    10. Der Code bleibt gleich, die Funktion ändert sich
    11. Die vKbF-TV-Daten bringen Geld!
    12. Ihr Programmierwerkzeugkasten
  10. 6. Mdulare Prgrammierung: In der Spur bleiben
    1. Fit von Kopf bis Fuß aktualisiert seine Systeme
    2. Das Programm muss eine Transaktionsdatei erstellen
    3. Strings mit Strings formatieren
    4. Spät in der Nacht schneit eine Mail rein
    5. 50.000 ... für einen Donut?!
    6. Nur die Geschäfte aus Ihrem Programm sind betroffen
    7. Die neue Bank nutzt ein neues Format
    8. Das Programm in der Bar nutzt immer noch das alte Format
    9. Aktualisieren Sie nicht einfach Ihren Code
      1. Kluge Programmierer schreiben modularen Code
    10. Und wie erstellen wir ein Modul?
      1. Und wie nutzt man es?
    11. Auch die Transaktionsdatei funktioniert
    12. Der Fitnessclub hat einen neuen Wunsch
    13. Der Sternback-Code
    14. Die beiden Rabattfunktionen haben den gleichen Namen
    15. Vollständig qualifizierte Namen verhindern Verwirrung
    16. Der Rabatt lässt die Kunden herbeiströmen
    17. Ihr Programmierwerkzeugkasten
  11. 7. Grafische Benutzerberflächen: Augen- und Ohrenschmaus
    1. Von Kopf bis Fuß-TV produziert auch Gameshows
    2. pygame ist plattformübergreifend
    3. 0 ... 2 ... 1 ... 9 ... abheben!
    4. tkinter schenkt Ihnen die Ereignisschleife
    5. tkinter hat massenhaft Optionen
    6. Das GUI funktioniert, macht aber nichts
    7. Code mit Button-Ereignissen verbinden
    8. Jetzt ist das GUI-Programm für ein Casting bereit
    9. Aber noch ist der Moderator nicht zufrieden
    10. Labeln Sie!
    11. Ihr Programmierwerkzeugkasten
  12. 8. GUİs und Daten: Grafische Dateneingabe
    1. PPD braucht ein neues Versandsystem
    2. Es gibt bereits einen Entwurf für die Benutzeroberfläche
    3. Datenerfassung im GUI
    4. Mit Entry- und Text-Widgets kann Ihr GUI Textdaten aufnehmen
      1. Das Entry-Widget: Eingabe einzeiliger Textdaten
      2. Text-Widget: Eingabe mehrzeiliger Textdaten
    5. Daten in Textfeldern lesen und schreiben
    6. Textfelder sind komplizierter
    7. Eine der Sendungen ging in die Irre
    8. In die Felder können beliebige Werte eingegeben werden
    9. Radiobuttons beschränken die Eingabe
    10. Radiobuttons in tkinter erstellen
    11. Die Radiobuttons sollten zusammenarbeiten
    12. Die Radiobuttons können ein Modell teilen
    13. Das System sagt den anderen Widgets, wenn sich das Modell ändert
    14. Wie man in tkinter Modelle nutzt
    15. PPD expandiert
    16. Es gibt zu viele Depots im GUI
    17. Ein OptionMenu bietet Ihnen so viele Optionen, wie Sie benötigen
    18. Das Modell bleibt gleich
      1. Doch Moment ... das mit den Werten geht einfacher
    19. Alles läuft gut bei PPD
    20. Ihr Programmierwerkzeugkasten
  13. 9. Ausnahmen und Dialgfenster: Nachricht angekommen?
    1. Was ist das für ein Geruch?
    2. Jemand hat die Dateiberechtigungen geändert
    3. Als es die Datei nicht schreiben konnte, löste Ihr Programm eine Ausnahme aus
    4. Die Ausnahme abfangen
    5. Ausnahmen überwachen mit try/except
    6. Es gibt ein Problem mit der Ausnahmebehandlung
    7. Ein Dialogfenster verlangt Aufmerksamkeit
    8. Dialogfenster in Python
      1. Dialogfenster, die etwas sagen
      2. Dialogfenster, die etwas fragen
    9. Ihr Programmierwerkzeugkasten
  14. 10. Elemente grafischer Oberflächen: Das richtige Werkzeug wählen
    1. Zeit zu mixen
    2. Die Musik spielte einfach weiter ...
    3. Nicht alle Ereignisse werden von Buttons erzeugt
      1. Den Fenstermanager steuern
    4. Das Ereignis abfangen reicht nicht
    5. Zwei Buttons oder nicht zwei Buttons? Das ist hier die Frage ...
    6. Eine Checkbox ist ein An/Aus-Schalter
    7. Checkboxen in tkinter
      1. Die get()-Methode nutzen
    8. Die Lautstärke anpassen
    9. Einen Schieber mit Skala modellieren
      1. Beginnen wir mit der Lautstärke
    10. Die Lautstärke mit pygame anpassen
    11. Mit tkinter den Rest erledigen
    12. Der DJ ist happy!
    13. Ihr Programmierwerkzeugkasten
  15. 11. Eigene Widgets und Klassen: Objekte im Sinn
    1. Der DJ möchte mehrere Stücke spielen
      1. Wie erstellen wir die Widgets für die einzelnen Stücke?
    2. Den Code für die Stücke als Funktion speichern
    3. Die neue Funktion enthält andere Funktionen
    4. Die Funktion muss Widgets und Ereignis-Handler erstellen
    5. Der DJ ist verwirrt
    6. Widgets gruppieren
      1. Eine neue Art von Widgets
    7. Frame-Widgets enthalten andere Widgets
    8. Klassen sind Maschinen zur Erstellung von Objekten
    9. Klassen haben Methoden, die Verhalten definieren
    10. Aber wie rufen Objekte Methoden auf?
      1. self identifiziert das Widget, das die Methode aufruft
    11. Die Klasse MixerPanel hat große Ähnlichkeit mit der Funktion gui_erstellen()
    12. Klassen = Methoden + Daten
    13. Der DJ hat ein ganzes Verzeichnis voll mit Musik
    14. It’s party time!
      1. Das Mixer-Programm macht Stimmung!
      2. Glückwunsch!
    15. Ihr Programmierwerkzeugkasten
    16. Der Aufbruch ...
    17. Es war nett mit Ihnen hier in Codeville!
  16. A. Was übrig bleibt: Die Top Ten der Dinge (die wir nicht behandelt haben)
    1. 1. »Den Python-Weg« wählen
    2. 2. Mit Python 2 arbeiten
    3. 3. Andere Programmiersprachen
    4. 4. Automatisiertes Testen
    5. 5. Debuggen
    6. 6. Kommandozeilenausführung
    7. 7. OOP ist etwas zu kurz gekommen
    8. 8. Algorithmen
    9. 9. Fortgeschrittene Erschreckende Programmierthemen
    10. 10. Andere IDEs, Shells und Texteditoren
  17. Stichwortverzeichnis