Book description
In der ersten Hälfte des Buches lernen Sie grundlegende Programmierkonzepte wie Listen, Wörterbücher, Klassen und Schleifen. Sie erlernen das Schreiben von sauberem und lesbarem Code mit Übungen für jedes Thema. Sie lernen auch, wie Sie Ihre Programme interaktiv machen und wie Sie Ihren Code sicher testen, bevor Sie ihn zu einem Projekt hinzufügen.In der zweiten Hälfte des Buches werden Sie Ihr neues Wissen in die Praxis mit drei lehrreichen »Real-world«-Projekten umsetzen:• ein durch »Space Invaders« inspiriertes Arcade-Spiel,• eine Daten-Visualisierungen mit Pythons superpraktischen Bibliotheken und• eine einfache Web-App, die Sie online bereitstellen können.
Table of contents
- Cover
- Titel
- Impressum
- Inhalt
- Widmung
- Der Autor
- Die Fachgutachter
- Danksagung
-
Teil 1 Grundlagen
- 1 Erste Schritte
-
2 Variablen und einfache Datentypen
- Was bei der Ausführung von hello_world.py wirklich geschieht
- Variablen
- Variablen benennen und verwenden
- Fehler bei Variablennamen vermeiden
- Strings
- Groß- und Kleinschreibung mithilfe von Methoden ändern
- Strings verketten
- Weißraum hinzufügen
- Weißraum entfernen
- Syntaxfehler bei der Stringverarbeitung vermeiden
- Die Print-Anweisung in Python 2
- Zahlen
- Integer
- Fließkommazahlen
- Typisierungsfehler mithilfe der Funktion str() vermeiden
- Integer in Python 2
- Kommentare
- Wie werden Kommentare geschrieben?
- Was für Kommentare sind sinnvoll?
- The Zen of Python
- Zusammenfassung
-
3 Eine Einführung in Listen
- Was sind Listen?
- Elemente in einer Liste ansprechen
- Indizes beginnen bei 0, nicht bei 1
- Einzelne Werte aus einer Liste verwenden
- Elemente ändern, hinzufügen und entfernen
- Elemente in einer Liste ändern
- Elemente zu einer Liste hinzufügen
- Elemente aus einer Liste entfernen
- Listen ordnen
- Listen mit sort() dauerhaft sortieren
- Listen mit der Funktion sorted() vorübergehend sortieren
- Listen in umgekehrter Reihenfolge ausgeben
- Die Länge einer Liste ermitteln
- Indexfehler vermeiden
- Zusammenfassung
-
4 Mit Listen arbeiten
- Eine komplette Liste durchlaufen
- Die Schleife im Detail
- Weitere Aufgaben in einer for-Schleife erledigen
- Aktionen nach der for-Schleife
- Einrückungsfehler vermeiden
- Vergessene Einrückung der ersten Zeile in einer Schleife
- Vergessene Einrückung nachfolgender Zeilen
- Unnötige Einrückung
- Unnötige Einrückung nach einer Schleife
- Vergessener Doppelpunkt
- Numerische Listen
- Die Funktion range()
- Numerische Listen mithilfe von range() aufstellen
- Einfache Statistiken für numerische Listen
- Listennotation
- Teillisten
- Einen Slice erstellen
- Einen Slice in einer Schleife durchlaufen
- Listen kopieren
- Tupel
- Ein Tupel definieren
- Die Werte in einem Tupel durchlaufen
- Tupel überschreiben
- Code formatieren
- Die Gestaltungsrichtlinien
- Einrückung
- Zeilenlänge
- Leerzeilen
- Zusammenfassung
-
5 if-Anweisungen
- Ein einfaches Beispiel
- Bedingungen
- Prüfung auf Gleichheit
- Groß- und Kleinschreibung bei der Prüfung auf Gleichheit
- Prüfung auf Ungleichheit
- Numerische Vergleiche
- Prüfung auf mehrere Bedingungen
- Prüfung auf Vorhandensein eines Werts in einer Liste
- Prüfung auf Abwesenheit eines Werts in einer Liste
- Boolesche Ausdrücke
- if-Anweisungen
- Einfache if-Anweisungen
- if-else-Anweisungen
- Die if-elif-else-Kette
- Mehrere elif-Blöcke
- Den else-Block weglassen
- Mehrere Bedingungen prüfen
- if-Anweisungen für Listen
- Prüfung auf besondere Elemente
- Prüfung auf nicht leere Liste
- Mehrere Listen verwenden
- if-Anweisungen gestalten
- Zusammenfassung
-
6 Dictionaries
- Ein einfaches Dictionary
- Umgang mit Dictionaries
- Zugriff auf die Werte in einem Dictionary
- Schlüssel-Wert-Paare hinzufügen
- Ein leeres Dictionary als Ausgangspunkt
- Werte in einem Dictionary ändern
- Schlüssel-Wert-Paare entfernen
- Ein Dictionary aus ähnlichen Objekten
- Dictionaries in einer Schleife durchlaufen
- Alle Schlüssel-Wert-Paare durchlaufen
- Alle Schlüssel in einem Dictionary durchlaufen
- Die Schlüssel in einem Dictionary geordnet durchlaufen
- Alle Werte in einem Dictionary durchlaufen
- Verschachtelung
- Dictionaries in einer Liste
- Listen in einem Dictionary
- Dictionaries in einem Dictionary
- Zusammenfassung
-
7 Benutzereingaben und while-Schleifen
- Die Funktion input()
- Klar verständliche Eingabeaufforderungen schreiben
- Verwendung von int() für numerische Eingaben
- Der Modulo-Operator
- Benutzereingaben in Python 2.7
- while-Schleifen
- while-Schleifen in Aktion
- Programmbeendigung durch den Benutzer
- Flags
- Eine Schleife mit break verlassen
- Die Anweisung continue
- Endlosschleifen vermeiden
- while-Schleifen für Listen und Dictionaries
- Elemente von einer Liste in eine andere verschieben
- Alle Vorkommen eines Wertes aus einer Liste entfernen
- Ein Dictionary mit Benutzereingaben füllen
- Zusammenfassung
-
8 Funktionen
- Funktionen definieren
- Informationen an eine Funktion übergeben
- Argumente und Parameter
- Argumente übergeben
- Positionsabhängige Argumente
- Schlüsselwortargumente
- Standardwerte
- Gleichwertige Funktionsaufrufe
- Argumentfehler vermeiden
- Rückgabewerte
- Einen einfachen Wert zurückgeben
- Optionale Argumente
- Ein Dictionary zurückgeben
- Funktionen in einer while-Schleife
- Eine Liste übergeben
- Eine Liste mithilfe einer Funktion ändern
- Die Änderung einer Liste in einer Funktion verhindern
- Beliebig viele Argumente übergeben
- Positionsabhängige Argumente und Argumente beliebiger Anzahl kombinieren
- Beliebig viele Schlüsselwortargumente übergeben
- Funktionen in Modulen speichern
- Ein komplettes Modul importieren
- Einzelne Funktionen importieren
- Eine Funktion mit »as« umbenennen
- Ein Modul mit »as« umbenennen
- Alle Funktionen eines Moduls importieren
- Funktionen formatieren
- Zusammenfassung
-
9 Klassen
- Eine Klasse erstellen und verwenden
- Die Klasse Dog erstellen
- Eine Instanz einer Klasse anlegen
- Mit Klassen und Instanzen arbeiten
- Die Klasse Car
- Einen Standardwert für ein Attribut festlegen
- Attributwerte bearbeiten
- Vererbung
- Die Methode __init__() für eine Kindklasse
- Vererbung in Python 2.7
- Attribute und Methoden der Kindklasse definieren
- Methoden der Elternklasse überschreiben
- Instanzen als Attribute
- Reale Objekte modellieren
- Klassen importieren
- Eine einzelne Klasse importieren
- Mehrere Klassen in einem Modul speichern
- Mehrere Klassen aus einem Modul importieren
- Ein gesamtes Modul importieren
- Alle Klassen eines Moduls importieren
- Ein Modul in ein Modul importieren
- Ihren eigenen Arbeitsablauf finden
- Die Standardbibliothek von Python
- Klassen formatieren
- Zusammenfassung
-
10 Dateien und Ausnahmen
- Aus Dateien lesen
- Eine gesamte Datei lesen
- Dateipfade
- Zeilenweises Lesen
- Eine Liste aus den Zeilen einer Datei erstellen
- Dateiinhalte verarbeiten
- Große Dateien: eine Million Stellen
- Ist Ihr Geburtsdatum in Pi enthalten?
- In Dateien schreiben
- In eine leere Datei schreiben
- Mehrere Zeilen schreiben
- Text an eine Datei anhängen
- Ausnahmen
- Division durch null
- try-except-Blöcke
- Abstürze mithilfe von Ausnahmen verhindern
- Der else-Block
- Datei nicht gefunden
- Text analysieren
- Umgang mit mehreren Dateien
- Fehler stillschweigend übergehen
- Welche Fehler sollten Sie melden und welche nicht?
- Daten speichern
- json.dump() und json.load()
- Benutzergenerierte Daten speichern und lesen
- Refactoring
- Zusammenfassung
-
11 Code testen
- Funktionen testen
- Unit Tests und Testfälle
- Ein bestandener Test
- Ein nicht bestandener Test
- Was tun bei einem nicht bestandenen Test?
- Neue Tests hinzufügen
- Klassen testen
- Verschiedene Zusicherungsmethoden
- Eine Beispielklasse zum Testen
- Die Klasse AnonymousSurvey testen
- Die Methode setUp()
- Zusammenfassung
-
Teil 2 Projekte
- Alien Invasion – ein Python-Spiel
- Datenvisualisierung
- Webanwendungen
- Projekt 1: Alien Invasion
-
12 Das eigene Kampfschiff
- Das Projekt planen
- Pygame installieren
- Python-Pakete mit pip installieren
- Pygame unter Linux installieren
- Pygame unter OS X installieren
- Pygame unter Windows installieren
- Das Spielprojekt beginnen
- Ein Pygame-Fenster anlegen und auf Benutzereingaben reagieren
- Die Hintergrundfarbe festlegen
- Eine Klasse für Einstellungen anlegen
- Das Bild eines Raumschiffs hinzufügen
- Die Klasse Ship
- Das Schiff auf den Bildschirm zeichnen
- Refactoring des Moduls game_functions
- Die Funktion check_events()
- Die Funktion update_screen()
- Das Schiff bewegen
- Auf Tastenbetätigungen reagieren
- Kontinuierliche Bewegung
- Bewegung nach rechts und links
- Die Geschwindigkeit des Schiffes anpassen
- Den Bewegungsbereich des Schiffes einschränken
- Refactoring von check_events()
- Zwischenstand
- alien_invasion.py
- settings.py
- game_functions.py
- ship.py
- Geschosse
- Einstellungen für Geschosse hinzufügen
- Die Klasse Bullet
- Geschosse in Gruppen speichern
- Geschosse abfeuern
- Alte Geschosse löschen
- Die Anzahl der Geschosse begrenzen
- Die Funktion update_bullets()
- Die Funktion fire_bullet()
- Zusammenfassung
-
13 Die Außerirdischen
- Überblick über das Projekt
- Das erste Invasionsschiff
- Die Klasse Alien
- Eine Instanz von Alien erstellen
- Das Invasionsschiff auf den Bildschirm zeichnen
- Die Invasionsflotte erstellen
- Wie viele Invasionsschiffe passen in eine Reihe?
- Reihen von Invasionsschiffen erstellen
- Die Flotte erstellen
- Refactoring von create_fleet()
- Reihen hinzufügen
- Die Flotte in Bewegung setzen
- Die Invasoren nach rechts bewegen
- Einstellungen für die Flugrichtung der Flotte
- Auf Randberührungen prüfen
- Sinken und Flugrichtung ändern
- Invasoren abschießen
- Kollisionen von Geschossen erkennen
- Größere Geschosse zu Testzwecken
- Die Flotte auffüllen
- Die Geschosse beschleunigen
- Refactoring von update_bullets()
- Spielende
- Kollisionen zwischen Invasoren und dem eigenen Schiff erkennen
- Auf Kollisionen zwischen Invasoren und dem eigenen Schiff reagieren
- Wenn Invasoren den unteren Bildschirmrand erreichen
- Game over!
- Welche Teile des Spiels müssen ausgeführt werden?
- Zusammenfassung
-
14 Das Wertungssystem
- Eine Play-Schaltfläche hinzufügen
- Die Klasse Button
- Die Schaltfläche auf den Bildschirm zeichnen
- Das Spiel starten
- Das Spiel zurücksetzen
- Die Play-Schaltfläche deaktivieren
- Den Mauszeiger ausblenden
- Levels
- Die Geschwindigkeitseinstellungen ändern
- Die Geschwindigkeit zurücksetzen
- Die Punktwertung
- Den Punktestand anzeigen
- Eine Anzeigetafel erstellen
- Den Punktestand bei jedem Abschuss erhöhen
- Alle Treffer berücksichtigen
- Den Punktwert erhöhen
- Den Punktestand runden
- Highscore
- Das Level anzeigen
- Die Anzahl der verfügbaren Schiffe anzeigen
- Zusammenfassung
- Projekt 2: Datenvisualisierung
-
15 Daten generieren
- Die Bibliothek matplotlib installieren
- Unter Linux
- Unter OS X
- Unter Windows
- matplotlib testen
- Die matplotlib-Galerie
- Einfache Liniendiagramme
- Beschriftung und Linienstärke ändern
- Das Diagramm korrigieren
- Einzelne Punkte mit scatter() darstellen und gestalten
- Eine Folge von Punkten mit scatter() ausgeben
- Daten automatisch berechnen
- Die Umrandungen der Punkte entfernen
- Eigene Farben festlegen
- Eine Colormap verwenden
- Diagramme automatisch speichern
- Zufallsbewegungen
- Die Klasse RandomWalk()
- Richtungen wählen
- Den Zufallspfad als Diagramm ausgeben
- Mehrere Zufallspfade erstellen
- Den Pfad gestalten
- Die Punkte färben
- Start- und Endpunkte anzeigen
- Die Achsen entfernen
- Datenpunkte hinzufügen
- Die Größe an den Bildschirm anpassen
- Würfeln mit Pygal
- Pygal installieren
- Die Pygal-Galerie
- Die Klasse Die
- Würfeln
- Die Ergebnisse analysieren
- Ein Histogramm erstellen
- Ergebnisse bei zwei Würfeln
- Würfel unterschiedlicher Flächenzahl
- Zusammenfassung
-
16 Daten herunterladen
- Das Dateiformat CSV
- CSV-Spaltenköpfe analysieren
- Die Spaltenköpfe und ihre Position ausgeben
- Daten entnehmen und lesen
- Daten in einem Temperaturdiagramm darstellen
- Das Modul datetime
- Datumsangaben im Diagramm darstellen
- Ein Diagramm für einen längeren Zeitraum
- Eine zweite Datenreihe darstellen
- Einen Diagrammbereich einfärben
- Fehlerprüfung
- Globale Daten im JSON-Format visualisieren
- Daten zur Weltbevölkerung herunterladen
- Relevante Daten entnehmen
- Strings in numerische Werte umwandeln
- Zweistellige Ländercodes ermitteln
- Eine Weltkarte zeichnen
- Numerische Daten auf einer Weltkarte darstellen
- Eine vollständige Karte der Weltbevölkerung
- Länder nach der Bevölkerungszahl gruppieren
- Weltkarten in Pygal gestalten
- Die Farbpalette aufhellen
- Zusammenfassung
-
17 APIs
- Web-APIs
- Git und GitHub
- Daten über einen API-Aufruf anfordern
- Das Paket requests installieren
- API-Antworten verarbeiten
- Das Antwort-Dictionary verarbeiten
- Ein Überblick über die höchstbewerteten Repositories
- Grenzwerte für die API-Aufrufrate
- Repositories mit Pygal visualisieren
- Pygal-Diagramme verbessern
- Eigene Tooltips hinzufügen
- Die Beschreibungen als Tooltips ausgeben
- Aktive Links zu dem Diagramm hinzufügen
- Die API von Hacker News
- Zusammenfassung
- Projekt 3: Webanwendungen
-
18 Erste Schritte mit Django
- Ein Projekt einrichten
- Eine Spezifikation schreiben
- Eine virtuelle Umgebung erstellen
- Das Paket virtualenv installieren
- Die virtuelle Umgebung aktivieren
- Django installieren
- Ein Projekt in Django erstellen
- Die Datenbank erstellen
- Das Projekt anzeigen
- Eine App anlegen
- Modelle definieren
- Modelle aktivieren
- Die Admin-Site von Django
- Das Modell für die Einträge definieren
- Das Modell Entry in die Datenbank aufnehmen
- Das Modell Entry auf der Admin-Site registrieren
- Die Django-Shell
- Seiten erstellen: die Startseite von Learning Log
- Eine URL zuordnen
- Eine Ansicht schreiben
- Eine Vorlage schreiben
- Weitere Seiten erstellen
- Vererbung bei Vorlagen
- Die Seite Topics
- Einzelne Fachgebietsseiten
- Die Vorlage für eine Fachgebietsseite
- Zusammenfassung
-
19 Benutzerkonten
- Dateneingabe durch die Benutzer
- Neue Fachgebiete hinzufügen
- Neue Einträge hinzufügen
- Einträge bearbeiten
- Benutzerkonten einrichten
- Die App users
- Die Anmeldeseite
- Abmelden
- Die Registrierungsseite
- Die Benutzer als Besitzer ihrer eigenen Daten
- Den Zugriff mit @login_required beschränken
- Daten mit Benutzern verknüpfen
- Den Zugriff auf die Fachgebiete auf die zuständigen Benutzer einschränken
- Die Fachgebiete eines Benutzers schützen
- Die Seite edit_entry schützen
- Neue Fachgebiete dem aktuellen Benutzer zuordnen
- Zusammenfassung
-
20 Eine App gestalten und bereitstellen
- Learning Log gestalten
- Die App django-bootstrap3
- Learning Log mit Bootstrap gestalten
- Änderungen an base.html
- Die Startseite mit einem Jumbotron gestalten
- Das Anmeldeformular gestalten
- Die Seite new_topic gestalten
- Die Seite Topics gestalten
- Einträge auf den Fachgebietsseiten gestalten
- Learning Log bereitstellen
- Ein Heroku-Konto anlegen
- Heroku Toolbelt installieren
- Die erforderlichen Pakete installieren
- Eine Paketliste mit der Datei requirements.txt erstellen
- Die Python-Laufzeitversion angeben
- Die Datei settings.py für Heroku anpassen
- Ein Procfile zum Starten der Prozesse erstellen
- Die Datei wsgi.py für Heroku anpassen
- Ein Verzeichnis für statische Dateien erstellen
- Den Server gunicorn lokal nutzen
- Mit Git den Überblick über die Projektdateien bewahren
- Die Datenbank auf Heroku einrichten
- Die Heroku-Bereitstellung verbessern
- Das Onlineprojekt schützen
- Änderungen mit Commit bestätigen und übertragen
- Eigene Fehlerseiten erstellen
- Weiterentwicklung des Projekts
- Die Einstellung SECRET_KEY
- Projekte auf Heroku löschen
- Zusammenfassung
- Nachwort
-
Anhang
- A Python installieren
- Python unter Linux
- Die installierte Version herausfinden
- Python 3 unter Linux installieren
- Python unter OS X
- Die installierte Version herausfinden
- Python 3 mit Homebrew installieren
- Python unter Windows
- Python 3 unter Windows installieren
- Den Python-Interpreter finden
- Python zur Pfadvariablen hinzufügen
- Schlüsselwörter und integrierte Funktionen
- Python-Schlüsselwörter
- Integrierte Python-Funktionen
- B Texteditoren
- Geany
- Geany unter Linux installieren
- Geany unter Windows installieren
- Python-Programme in Geany ausführen
- Geany-Einstellungen anpassen
- Sublime Text
- Sublime Text unter OS X installieren
- Sublime Text unter Linux installieren
- Sublime Text unter Windows installieren
- Python-Programme in Sublime Text ausführen
- Sublime Text konfigurieren
- Die Einstellungen von Sublime Text anpassen
- IDLE
- IDLE unter Linux installieren
- IDLE unter OS X installieren
- IDLE unter Windows installieren
- IDLE-Einstellungen anpassen
- Emacs und vim
- C Hilfe finden
- Erste Schritte
- Versuchen Sie es erneut
- Legen Sie eine Pause ein
- Nutzen Sie das Onlinematerial zu diesem Buch
- Online nach Hilfe suchen
- Stack Overflow
- Die offizielle Python-Dokumentation
- Offizielle Dokumentation der Bibliotheken
- r/learnpython
- Blogs
- IRC (Internet Relay Chat)
- Ein IRC-Konto anlegen
- Hilfreiche Kanäle
- IRC-Kultur
- D Versionssteuerung mit Git
- Git installieren
- Git unter Linux installieren
- Git unter OS X installieren
- Git unter Windows installieren
- Git konfigurieren
- Ein Projekt anlegen
- Dateien ignorieren
- Ein Repository initialisieren
- Den Projektstatus überprüfen
- Dateien zum Repository hinzufügen
- Einen Commit durchführen
- Das Protokoll einsehen
- Der zweite Commit
- Änderungen zurücknehmen
- Vorherige Commits auschecken
- Das Repository löschen
- Stichwortverzeichnis
Product information
- Title: Python Crashkurs
- Author(s):
- Release date: April 2017
- Publisher(s): dpunkt
- ISBN: 9783864904448
You might also like
book
Datenbanken -- Konzepte und Sprachen
Detaillierte Einführung in die Datenbanktechnologie in der 6. aktualisierten Neuauflage Konzepte relationaler Datenbanken: Architekturen, Modelle, Entwurfsmethoden, …
book
Design Patterns für die Spieleprogrammierung
Die bekannten Design Patterns der Gang of Four im konkreten Einsatz für die Entwicklung von Games …
book
Spiele programmieren mit Unity für Kids
2D- und 3D-Spiele selbst entwickeln Landschaften und Gebäude gestalten sowie Figuren animieren Wichtige C#-Programmier-Elemente kennenlernen und …
book
Datenbanken -- Implementierungstechniken, 4. Auflage
Architekturprinzipien und Datenstrukturen moderner Datenbanksysteme Algorithmen und optimierte Anfragen für Datenbankoperationen Transaktionsmodelle sowie Transaktionsverwaltung im Mehrbenutzerbetrieb …