Das Buch „Learning Python: Spielprogrammierung, Datenvisualisierung, Webanwendungen. 3rd ed.

Bild Hi, habrozhiteli! Wir haben die dritte Version von # 1 Best Seller in Python Programming Amazon veröffentlicht , dem weltweit beliebtesten Python-Sprachführer.

Sie können es nicht nur so schnell wie möglich erlernen, sondern auch lernen, wie Sie Programme schreiben, Fehler beheben und funktionierende Anwendungen erstellen. Im ersten Teil des Buches erhalten Sie eine Einführung in grundlegende Programmierkonzepte wie Variablen, Listen, Klassen und Schleifen. In einfachen Übungen lernen Sie, wie Sie Vorlagen mit sauberem Code verwenden. Sie lernen, wie Sie Programme interaktiv gestalten und Code testen, bevor Sie sie einem Projekt hinzufügen.

Im zweiten Teil werden Sie das neue Wissen in die Praxis umsetzen und drei Projekte erstellen: ein Arcade-Spiel im Stil von Space Invaders, Datenvisualisierung mit praktischen Python-Bibliotheken und eine einfache Webanwendung, die schnell online bereitgestellt werden kann. Wenn Sie mit einem Buch arbeiten, lernen Sie Folgendes: ∙ Verwenden Sie leistungsstarke Bibliotheken und Python-Tools: Pygame, Matplotlib, Plotly und Django. ∙ Erstellen Sie 2D-Spiele mit unterschiedlicher Komplexität, die mit Tastatur und Maus gesteuert werden können. ∙ Erstellen Sie eine interaktive Datenvisualisierung. ∙ Entwerfen, konfigurieren und implementieren Sie das Web Anwendungen ∙ Behandeln Sie Fehler und Fehler

Die neue Ausgabe wurde sorgfältig überarbeitet und spiegelt die neuesten Fortschritte in der Python-Programmierpraxis wider. Der erste Teil des Buches wurde mit neuen Informationen zu f-Linien, Konstanten und Datenmanagement ergänzt. Im zweiten Teil wurde der Projektcode aktualisiert. Die Projektstruktur und der Code sind übersichtlicher und verständlicher geworden. Jetzt nutzen sie die volle Leistungsfähigkeit der gängigen Bibliotheken und Tools wie Plotly und Django.


Das Folgende ist eine Zusammenfassung der Änderungen in der dritten Ausgabe:


In Kapitel 1 wurden die Installationsanweisungen für Python für Benutzer aller gängigen Betriebssysteme vereinfacht. Jetzt empfehle ich die Verwendung des Sublime Text-Texteditors, der sowohl bei Anfängern als auch bei Profis beliebt ist und auf allen Betriebssystemen funktioniert.

Kapitel 2 enthält eine detailliertere Beschreibung der Implementierung von Variablen in Python. Variablen werden als Textbeschriftungen für Werte beschrieben, sodass der Leser das Verhalten von Variablen in Python besser verstehen kann. In diesem Buch werden die in Python 3.6 eingeführten f-Zeilen ausführlich verwendet, ein viel einfacherer und bequemerer Mechanismus für die Verwendung von Werten in Zeichenfolgen. In Python 3.6 wurde auch die Möglichkeit eingeführt, Unterstriche zur Darstellung großer Zahlen zu verwenden (z. B. 1_000_000). Sie ist auch in dieser Ausgabe enthalten. Die Mehrfachzuweisung von Variablen wurde in einem der Projekte der ersten Ausgabe vorgestellt; Die Beschreibung wurde zusammengestellt und zur Vereinfachung der Lesbarkeit in Kapitel 2 verschoben. Schließlich ist in diesem Kapitel ein verständliches Konventionssystem zur Darstellung von Konstanten in Python enthalten.

In Kapitel 6 wird die Methode get () zum Lesen von Werten aus einem Wörterbuch vorgestellt, die den Standardwert zurückgeben kann, wenn kein Schlüssel vorhanden ist.

Das Alien Invasion-Projekt (Kapitel 12–14) basiert nun vollständig auf der Verwendung von Klassen. Das Spiel selbst ist eine Klasse (anstelle einer Reihe von Funktionen, wie in der vorherigen Ausgabe). Dies vereinfacht die Gesamtstruktur des Spiels erheblich, reduziert die Anzahl der Funktionsaufrufe und die erforderlichen Parameter. Leser, die mit der ersten Ausgabe vertraut sind, werden die Einfachheit des neuen klassenbasierten Ansatzes zu schätzen wissen. Pygame kann jetzt in allen Systemen mit einem einzeiligen Befehl installiert werden, und der Leser kann wählen, ob das Spiel im Vollbild- oder im Fenstermodus gestartet werden soll.

In Datenvisualisierungsprojekten wurde die Installationsanleitung für Matplotlib für alle Betriebssysteme vereinfacht. Matplotlib-basierte Visualisierungen verwenden die Funktion subplots (), mit der Sie das Erstellen komplexer Visualisierungen einfacher erlernen können. Das Rolling Dice-Projekt aus Kapitel 15 verwendet Plotly, eine Visualisierungsbibliothek mit einfacher Syntax, hochwertiger Wartung und ansprechender Ausgabe mit umfangreichen Anpassungsoptionen.

In Kapitel 16 wurde das meteorologische Projekt in NOAA-Daten übersetzt, die im Laufe der Jahre eine größere Stabilität zeigten als der in der ersten Ausgabe verwendete Standort. Das Kartierungsprojekt ist jetzt der globalen seismischen Aktivität gewidmet. Bis zum Abschluss des Projekts wird eine großartige Visualisierung erstellt, die die Grenzen der tektonischen Platten entlang der Koordinaten aller Erdbeben für einen bestimmten Zeitraum visuell darstellt. Sie lernen, wie Sie Datensätze mit geografischen Koordinaten zuordnen.

Kapitel 17 verwendet die Plotly-Bibliothek, um Python-bezogene Aktivitäten in Open Source-Projekten auf GitHub zu visualisieren.

Das Learning Log-Projekt (Kapitel 18–20) basiert auf der neuesten Version von Django und wird mit der neuesten Version von Bootstrap entworfen. Der Projektbereitstellungsprozess in Heroku wurde mithilfe des Pakets django-heroku vereinfacht und verwendet Umgebungsvariablen, anstatt settings.py-Dateien zu bearbeiten. Diese Lösung ist einfacher und besser dafür geeignet, wie professionelle Programmierer moderne Django-Projekte bereitstellen.

Anhang A wurde komplett überarbeitet. Es enthielt Empfehlungen für die Installation von Python. Anhang B enthält detaillierte Empfehlungen zum Einrichten von Sublime Text und eine kurze Beschreibung der wichtigsten heute verwendeten Texteditoren und integrierten Umgebungen. Anhang B enthält Links zu neueren und beliebtesten Online-Ressourcen, und Anhang D enthält ein kurzes Tutorial zur Verwendung von Git für die Versionskontrolle.

Wir verstehen, dass es für viele überraschend ist, dass wir die dritte Ausgabe des Buches und das ursprüngliche Buch 2ed veröffentlicht haben. Der Grund für diesen Vorfall ist einfach. Sechs Monate nach der Veröffentlichung der ersten Ausgabe in russischer Sprache nahm der Autor signifikante, aber geringfügige Änderungen am Buch vor und korrigierte viele Codes. Nachdem wir uns die Anzahl der Änderungen angesehen hatten, entschieden wir uns, das neue Buch "Second Edition" zu nennen. So erschien am 30. Mai 2017 die zweite russischsprachige Publikation.

Und nun musste die 2. internationale Ausgabe als veröffentlicht werden
„Lernen Sie Python: Spieleprogrammierung, Datenvisualisierung, Webanwendungen. 3rd ed.

Auszug Wörterbücher


Manchmal ist es notwendig, viele Wörterbücher in einer Liste zu speichern oder eine Liste als Wert eines Wörterbuchelements zu speichern. Komplexe Strukturen dieser Art zu erzeugen, nennt man Einbettung. Sie können mehrere Wörterbücher in eine Liste, eine Liste von Elementen in einem Wörterbuch oder sogar ein Wörterbuch in einem anderen Wörterbuch einbetten. Wie die folgenden Beispiele zeigen, ist das Anhaften ein äußerst leistungsfähiger Mechanismus.

Liste der Wörterbücher


Das alien_0-Wörterbuch enthält eine Vielzahl von Informationen zu einem Alien, aber es gibt keinen Platz zum Speichern von Informationen über den zweiten Alien, ganz zu schweigen von dem durch Aliens verstopften gesamten Bildschirm. Wie simuliert man eine Invasionsflotte? Beispielsweise können Sie eine Liste von Ausländern erstellen, in der jedes Element ein Wörterbuch mit Informationen zu einem Ausländer ist. Mit dem folgenden Code wird beispielsweise eine Liste mit drei Aliens erstellt:

aliens.py alien_0 = {'color': 'green', 'points': 5} alien_1 = {'color': 'yellow', 'points': 10} alien_2 = {'color': 'red', 'points': 15} ❶ aliens = [alien_0, alien_1, alien_2] for alien in aliens: print(alien) 

Zunächst werden drei Wörterbücher erstellt, von denen jedes ein separates Alien darstellt. Bei Punkt ❶ wird jedes Wörterbuch mit dem Namen Aliens aufgelistet. Schließlich durchläuft das Programm die Liste und zeigt jeden Alien an:

 {'color': 'green', 'points': 5} {'color': 'yellow', 'points': 10} {'color': 'red', 'points': 15} 

In einem realistischen Beispiel werden natürlich mehr als drei Aliens verwendet, die automatisch generiert werden. Im folgenden Beispiel erstellt die Funktion range () eine Flotte von 30 Aliens:

 #      . aliens = [] #  30  . ❶ for alien_number in range(30): ❷ new_alien = {'color': 'green', 'points': 5, 'speed': 'slow'} ❸ aliens.append(new_alien) #   5 : ❹ for alien in aliens[:5]: print(alien) print("...") #    . ❺ print(f"Total number of aliens: {len(aliens)}") 

Zu Beginn des Beispiels ist die Liste zum Speichern aller zu erstellenden Aliens leer. Bei Punkt ❶ gibt die range () -Funktion eine Reihe von Zahlen zurück, die Python einfach mitteilen, wie oft die Schleife wiederholt werden soll. Jedes Mal, wenn der Zyklus abgeschlossen ist, wird ein neuer Ausländer erstellt, der dann zur Ausländerliste hinzugefügt wird. Bei Punkt ❹ wird das Segment verwendet, um die ersten fünf Aliens auszugeben, und bei Punkt ❺ wird die Listenlänge angezeigt (um zu demonstrieren, dass das Programm wirklich die gesamte Flotte von 30 Aliens generiert hat):

 {'speed': 'slow', 'color': 'green', 'points': 5} {'speed': 'slow', 'color': 'green', 'points': 5} {'speed': 'slow', 'color': 'green', 'points': 5} {'speed': 'slow', 'color': 'green', 'points': 5} {'speed': 'slow', 'color': 'green', 'points': 5} ... Total number of aliens: 30 

Alle Aliens haben die gleichen Eigenschaften, aber Python behandelt jedes Alien als separates Objekt, sodass Sie die Attribute jedes Besitzers einzeln ändern können.

Wie arbeitet man mit so vielen? Stellen Sie sich vor, dass in diesem Spiel einige Aliens die Farbe wechseln und sich schneller bewegen. Wenn es Zeit ist, die Farben zu ändern, können wir die for-Schleife und den if-Befehl verwenden, um die Farbe zu ändern. Um beispielsweise die ersten drei Aliens in Gelb zu verwandeln, bewegen Sie sich mit mittlerer Geschwindigkeit und bringen dem Spieler jeweils 10 Punkte.

 #      . aliens = [] #  30  . for alien_number in range (0,30): new_alien = {'color': 'green', 'points': 5, 'speed': 'slow'} aliens.append(new_alien) for alien in aliens[0:3]: if alien['color'] == 'green': alien['color'] = 'yellow' alien['speed'] = 'medium' alien['points'] = 10 #   5 : for alien in aliens[0:5]: print(alien) print("...") 

Um die ersten drei Aliens zu ändern, iterieren wir über die Elemente eines Segments, das nur die ersten drei Aliens enthält. Im Moment sind alle Aliens grün ('grün'), aber das wird nicht immer der Fall sein, deshalb schreiben wir einen if-Befehl, der sicherstellt, dass sich nur grüne Aliens ändern. Wenn der Außerirdische grün ist, ändert sich seine Farbe in gelb ('gelb'), die Geschwindigkeit in mittel ('mittel') und die Belohnung erhöht sich auf 10 Punkte:

 {'speed': 'medium', 'color': 'yellow', 'points': 10} {'speed': 'medium', 'color': 'yellow', 'points': 10} {'speed': 'medium', 'color': 'yellow', 'points': 10} {'speed': 'slow', 'color': 'green', 'points': 5} {'speed': 'slow', 'color': 'green', 'points': 5} ... 

Der Zyklus kann durch Hinzufügen eines Elif-Blocks erweitert werden, um gelbe Aliens in rote zu verwandeln - schnell und mit jeweils 15 Punkten. Wir werden nicht den gesamten Code zitieren, und die Schleife sieht folgendermaßen aus:

 for alien in aliens[0:3]: if alien['color'] == 'green': alien['color'] = 'yellow' alien['speed'] = 'medium' alien['points'] = 10 elif alien['color'] == 'yellow': alien['color'] = 'red' alien['speed'] = 'fast' alien['points'] = 15 

Eine Lösung zum Speichern von Wörterbüchern in einer Liste ist häufig, wenn jedes Wörterbuch unterschiedliche Attribute eines Objekts enthält. Beispielsweise können Sie für jeden Benutzer der Site ein Wörterbuch erstellen, wie dies im Programm user.py auf S. 39 geschehen ist. 114 und speichern Sie die einzelnen Wörterbücher in einer Liste mit dem Namen users. Alle Wörterbücher in der Liste müssen dieselbe Struktur haben, damit Sie die Liste durchlaufen und mit jedem Wörterbuchobjekt dieselben Vorgänge ausführen können.

Wörterbuchliste


Anstatt ein Wörterbuch in eine Liste aufzunehmen, ist es manchmal praktisch, eine Liste in ein Wörterbuch aufzunehmen. Stellen Sie sich vor, wie Sie die bestellte Pizza im Programm beschreiben würden. Wenn wir uns nur auf die Liste beschränken, kann nur die Liste der Beläge für Pizza gespeichert werden. Bei der Verwendung eines Wörterbuchs kann die Topliste nur ein Aspekt der Pizzabeschreibung sein.

Im folgenden Beispiel werden zwei Arten von Informationen für jede Pizza gespeichert: Basis- und Topliste. Die Belagliste ist der Wert, der dem Schlüssel "Belag" zugeordnet ist. Um Elemente in der Liste zu verwenden, müssen Sie wie für jeden anderen Wert im Wörterbuch den Wörterbuchnamen und den Schlüssel "toppings" angeben. Anstelle eines einzelnen Wertes wird eine Liste von Belägen erhalten:

 pizza.py #     . ❶ pizza = { 'crust': 'thick', 'toppings': ['mushrooms', 'extra cheese'], } #  . ❷ print(f"You ordered a {pizza['crust']}-crust pizza " "with the following toppings:") ❸ for topping in pizza['toppings']: print("\t" + topping) 

Die Arbeit beginnt bei Punkt ❶ mit einem Wörterbuch mit Informationen über die bestellte Pizza. Der Zeichenfolgenwert 'thick' ist einem Schlüssel im Wörterbuch 'crust' zugeordnet. Ein anderer Schlüssel "Toppings" hat einen Listenwert, der alle bestellten Toppings speichert. Bei Punkt ❷ wird eine Beschreibung der Bestellung angezeigt, bevor die Pizza erstellt wird. Wenn Sie in einem print () -Aufruf eine lange Zeile teilen müssen, wählen Sie einen Punkt aus, um die Ausgabezeile zu teilen, und beenden Sie die Zeile mit einem Anführungszeichen. Ziehen Sie die nächste Zeile ein, fügen Sie ein öffnendes Anführungszeichen hinzu und fahren Sie mit der Zeile fort. Python verkettet automatisch alle Zeichenfolgen in Klammern. Zum Abschluss von Ergänzungen wird eine for ❸ -Schleife geschrieben. Um die Toppings aufzulisten, verwenden wir den 'Toppings'-Schlüssel, und Python übernimmt die Liste der Toppings aus dem Wörterbuch.

In der folgenden Nachricht wird die zu erstellende Pizza beschrieben:

 You ordered a thick-crust pizza with the following toppings: mushrooms extra cheese 

Das Verschachteln einer Liste in einem Wörterbuch kann jedes Mal verwendet werden, wenn einem Wörterbuchschlüssel mehr als ein Wert zugeordnet werden muss. Wenn in der Liste im vorherigen Beispiel Antworten mit Programmiersprachen gespeichert wurden, konnte ein Teilnehmer der Umfrage mehrere Lieblingssprachen gleichzeitig auswählen. Bei der Aufzählung eines Wörterbuchs ist der jeder Person zugeordnete Wert eine Liste von Sprachen (anstelle einer Sprache). In der for-Schleife des Wörterbuchs wird eine weitere Schleife erstellt, um die Liste der Sprachen zu durchlaufen, die den einzelnen Teilnehmern zugeordnet sind:

 favorite_languages.py ❶ favorite_languages = { 'jen': ['python', 'ruby'], 'sarah': ['c'], 'edward': ['ruby', 'go'], 'phil': ['python', 'haskell'], } ❷ for name, languages in favorite_languages.items(): print(f"\n{name.title()}'s favorite languages are:") ❸ for language in languages: print(f"\t{language.title()}") 

Sie sehen an Punkt ❶, dass der jedem Namen zugeordnete Wert nun eine Liste ist. Einige Teilnehmer haben eine bevorzugte Programmiersprache, andere mehrere. Wenn Sie an Punkt ❷ über ein Wörterbuch iterieren, wird eine Variable mit dem Namen languages ​​verwendet, um jeden Wert aus dem Wörterbuch zu speichern, da wir wissen, dass jeder Wert eine Liste ist. Im Hauptzyklus durchläuft gemäß den Elementen des Wörterbuchs ein weiterer Zyklus die Elemente der Liste der bevorzugten Sprachen jedes Teilnehmers. Jetzt kann jeder Umfrageteilnehmer beliebig viele bevorzugte Programmiersprachen angeben:

 Jen's favorite languages are: Python Ruby Sarah's favorite languages are: C Phil's favorite languages are: Python Haskell Edward's favorite languages are: Ruby Go 

Um das Programm weiter zu verbessern, fügen Sie einen if-Befehl am Anfang der for-Schleife des Wörterbuchs ein, um zu prüfen, ob der Teilnehmer mehr als eine Programmiersprache ausgewählt hat (die Prüfung basiert auf dem Wert von len (languages)). Wenn der Teilnehmer nur eine bevorzugte Sprache hat, wird der Nachrichtentext für den Singular geändert (z. B. "Sarahs bevorzugte Sprache ist C").

»Weitere Informationen zum Buch finden Sie auf der Website des Herausgebers
» Inhalt
» Auszug

25% Rabatt Gutschein für Händler - Python

Nach Bezahlung der Papierversion des Buches wird ein elektronisches Buch per E-Mail verschickt.

Source: https://habr.com/ru/post/de485874/


All Articles