Python von Kopf bis Fuß:
Gespeichert in:
1. Verfasser: | |
---|---|
Weitere Verfasser: | |
Format: | Buch |
Sprache: | German English |
Veröffentlicht: |
Beijing ; Boston ; Farnham ; Sebastopol ; Tokyo
O'Reilly
2017
|
Ausgabe: | Zweite Auflage |
Schriftenreihe: | Von Kopf bis Fuß
|
Schlagworte: | |
Online-Zugang: | Inhaltstext Inhaltsverzeichnis |
Beschreibung: | "Aktuell zu Python 3" - Auf dem Cover "Laden Sie sich die wesentlichen Python-Kenntnisse direkt ins Hirn; vermeiden Sie saure Überraschungen: Benutzen Sie die DB-API; erstellen Sie eine moderne Web-App mit Flask; Modellieren Sie Daten als Listen, Tupel, Sets und Dictionaries; Objekte? Dekoratoren? Generatoren? Bitteschön!; verwenden Sie Module, um Ihren Code mit anderen zu teilen" - Auf dem Cover |
Beschreibung: | xxxiv, 585 Seiten Illustrationen, Diagramme |
ISBN: | 9783960090359 3960090358 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV044263857 | ||
003 | DE-604 | ||
005 | 20180815 | ||
007 | t | ||
008 | 170406s2017 gw a||| |||| 00||| ger d | ||
015 | |a 17,N12 |2 dnb | ||
016 | 7 | |a 1127544152 |2 DE-101 | |
020 | |a 9783960090359 |c Broschur : circa EUR 44.90 (DE), circa EUR 46.20 (AT) |9 978-3-96009-035-9 | ||
020 | |a 3960090358 |c Broschur |9 3-96009-035-8 | ||
035 | |a (OCoLC)979555538 | ||
035 | |a (DE-599)DNB1127544152 | ||
040 | |a DE-604 |b ger |e rda | ||
041 | 1 | |a ger |h eng | |
044 | |a gw |c XA-DE-BW | ||
049 | |a DE-M347 |a DE-860 |a DE-1102 |a DE-523 |a DE-11 |a DE-91G |a DE-19 |a DE-1049 |a DE-B768 |a DE-188 |a DE-706 |a DE-862 |a DE-824 |a DE-858 |a DE-20 |a DE-1046 |a DE-739 |a DE-859 |a DE-703 |a DE-573 |a DE-634 |a DE-945 |a DE-83 | ||
082 | 0 | |a 005.133 |2 22/ger | |
082 | 0 | |a 004 |2 23 | |
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |a 004 |2 sdnb | ||
084 | |a DAT 366f |2 stub | ||
100 | 1 | |a Barry, Paul |d 1966- |0 (DE-588)139463631 |4 aut | |
240 | 1 | 0 | |a Head first Python |
245 | 1 | 0 | |a Python von Kopf bis Fuß |c Paul Barry ; deutsche Übersetzung von Jørgen W. Lang |
250 | |a Zweite Auflage | ||
264 | 1 | |a Beijing ; Boston ; Farnham ; Sebastopol ; Tokyo |b O'Reilly |c 2017 | |
300 | |a xxxiv, 585 Seiten |b Illustrationen, Diagramme | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a Von Kopf bis Fuß | |
500 | |a "Aktuell zu Python 3" - Auf dem Cover | ||
500 | |a "Laden Sie sich die wesentlichen Python-Kenntnisse direkt ins Hirn; vermeiden Sie saure Überraschungen: Benutzen Sie die DB-API; erstellen Sie eine moderne Web-App mit Flask; Modellieren Sie Daten als Listen, Tupel, Sets und Dictionaries; Objekte? Dekoratoren? Generatoren? Bitteschön!; verwenden Sie Module, um Ihren Code mit anderen zu teilen" - Auf dem Cover | ||
650 | 0 | 7 | |a Python |g Programmiersprache |0 (DE-588)4434275-5 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Programmierung |0 (DE-588)4076370-5 |2 gnd |9 rswk-swf |
655 | 7 | |8 1\p |0 (DE-588)4151278-9 |a Einführung |2 gnd-content | |
689 | 0 | 0 | |a Python |g Programmiersprache |0 (DE-588)4434275-5 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a Programmierung |0 (DE-588)4076370-5 |D s |
689 | 1 | |8 2\p |5 DE-604 | |
700 | 1 | |a Lang, Jørgen W. |0 (DE-588)129082112 |4 trl | |
776 | 0 | 8 | |i Erscheint auch als |n Online-Ausgabe, PDF |z 978-3-96009-135-2 |
776 | 0 | 8 | |i Erscheint auch als |n Online-Ausgabe, ePub |z 978-3-96009-136-9 |
776 | 0 | 8 | |i Erscheint auch als |n Online-Ausgabe, Mobi |z 978-3-96009-137-6 |
780 | 0 | 0 | |i Vorangegangen ist |b 1. Auflage |d 2011 |z 978-3-89721-318-0 |w (DE-604)BV037476011 |
856 | 4 | 2 | |m X:MVB |q text/html |u http://deposit.dnb.de/cgi-bin/dokserv?id=c5680da8538144c599dad90ae857d8e5&prov=M&dok_var=1&dok_ext=htm |3 Inhaltstext |
856 | 4 | 2 | |m Digitalisierung UB Passau - ADAM Catalogue Enrichment |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=029668707&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
883 | 1 | |8 1\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk | |
883 | 1 | |8 2\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk | |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-029668707 |
Datensatz im Suchindex
DE-BY-862_location | 2000 |
---|---|
DE-BY-FWS_call_number | 2000/ST 250 P99 B281(2) |
DE-BY-FWS_katkey | 658657 |
DE-BY-FWS_media_number | 083000518182 |
_version_ | 1819651977510912000 |
adam_text |
Inhaltsverzeichnis
per
1 Die Grundlagen: Volle Kraft voraus! 1
2 Listendaten: Mit geordneten Daten arbeiten 47
3 Strukturierte Daten: Mit struktuherten Daten arbeiten 95
4 Gode wiederverwenden: Funktionen undModule 145
5 Eine Webapplikation erstellen: Auf ins wahre Leben! 195
6 Daten speichern und bearbeiten: Wo kommen die Daten hin? 243
7 Datenbanken benutzen: Die DB-API von Python verwenden 281
8 Ein bisschen Klasse: Verhalten und fustand abstrahieren 309
9 Das Kontextmanagement-Protokoll: Sich in Pythons with-Anweisung einklinken 335
10 Funktionsdekoratoren: Funktionen verpacken 363
11 Mit Ausnahmen umgehen: Was zu tun ist, wenn mal etwas schief geht 413
IVA Ein bisschen Threading: Taten statt Warten 461
12 Fortgeschrittene Iteration: Schiefen wie verrückt 477
A Installation: Python installieren 521
B PythonAnywhere: Ihre Webapplikation bereitstellen 529
G Die 10 wichtigsten Dinge, die wir nicht behandelt haben:
Es gibt immer noch etwas zu lernen 539
D Die 10 wichtigsten Projekte, die wir nicht behandelt haben:
Hoch mehr Werkzeuge, Bibliotheken und Module 551
E Mitmachen: Die Python-Gemeinschaft 563
Index 573
per Malt (jePt affitührllch)
Einführung
Ihr Gehirn und Python. Sie versuchen, etwas zu lernen, und Ihr Hirn tut sein
Bestes, damit das Gelernte nicht hängen bleibt. Es denkt nämlich: »Wir sollten lieber
ordentlich Platz für wichtigere Dinge lassen, z. B. für das Wissen darüber, welche Tiere einem
gefährlich werden könnten, oder dass es eine ganz schlechte Idee ist, nackt Snowboard zu
fahren.« Tja, wie schaffen wir es nun, Ihr Gehirn davon zu überzeugen, dass Ihr Leben davon
abhängt, wie man in Python programmiert?
Für wen ist dieses Buch? xxiv
Wir wissen, was Sie gerade denken XXV
Und wir wissen, was Ihr Gehirn gerade denkt XXV
Metakognition: Nachdenken übers Denken xxvii
Das haben WIR getan xxxii
Lies mich XXX
V
Inhaltsverzeichnis
Die Grundlagen
1 Volle Kraft vorausl
Finden Sie einen möglichst schnellen Einstieg in die
Programmiersprache Python, In diesem Kapitel geben wir Ihnen einen Einblick in die
Grundlagen der Python-Programmierung, und zwar wie es bei Von Kopf bis Fuß-Büchern üblich ist:
indem wir gleich loslegen. Nach ein paar Seiten ist Ihr erstes Programm bereits lauffähig. Am Ende
des Kapitels können Sie nicht nur Ihr Beispielprogramm ausführen, sondern auch den Code verstehen
(und noch einiges mehr). Unterwegs lernen Sie ein paar der Dinge, die Python als Programmiersprache
ausmachen. Lassen Sie uns also keine Zeit verschwenden. Blättern Sie um, und los geht's!
Die IDLE-Fenster verstehen
Code ausführen, eine Anweisung nach der anderen
Funktionen + Module = Standardbibliothek
Datenstrukturen sind schon eingebaut
Methodenaufrufe haben Ergebnisse
Entscheiden, wann Codeblöcke ausgeführt werden
Welche »eise« will schon mit »if«?
Suiten können selbst Suiten enthalten
Zurück zur Python-Shell
Experimente auf der Shell
Über eine Folge von Objekten iterieren
Eine bestimmte Anzahl von Wiederholungen ausführen
Das Ergebnis von Aufgabe 1 auf unseren Code anwenden
Die Ausführung unterbrechen
Zufallszahlen mit Python erzeugen
Eine ernsthafte Businessapplikation programmieren
Machen die Einrückungen Sie verrückt?
Mit dem help-Befehl des Interpreters den Hilfetext zu einer
Funktion anzeigen
Mit Wertebereichen experimentieren
Der Code aus Kapitel 1
VI
Inhaltsverzeichnis
Ut ndsi n
Mit geordneten Daten arbeiten
Alle Programme verarbeiten Daten, und Python-Programme sind da
keine Ausnahme. Sehen Sie sich einmal um; Daten sind überall. Programmierung hat fast immer
mit Daten zu tun: Daten sammeln, Daten verarbeiten, Daten verstehen. Um effektiv damit arbeiten zu
können, brauchen Sie einen Ort, um Ihre Daten abzulegen. Dank einiger äußerst vielseitiger Daten-
Strukturen kann Python hier besonders punkten: Listen, Dictionaries, Tupel und Sets. In diesem Kapitel
werden wir alle vier vorstellen, den Großteil des Kapitels werden wir uns jedoch eingehend mit Listen
befassen. (Die anderen drei Strukturen werden wir in Kapitel 3 genauer betrachten.) Wir gehen absicht¬
lich so früh auf diese Datenstrukturen ein, da die meisten Arbeiten in Python mit Daten zu tun haben.
Zahlen, Strings. und Objekte 48
Die vier eingebauten Datentypen 50
Eine ungeordnete Datenstruktur: Dictionary 52
Eine Datenstruktur ohne Duplikate: Set 53
Literale Erzeugung von Listen 55
Wenn Sie mit mehr als ein paar Godezeilen arbeiten,
sollten Sie den Editor benutzen 57
Eine Liste zur Laufzeit »wachsen lassen« 58
Zugehörigkeit mit »in« überprüfen 59
Objekte aus einer Liste entfernen 62
Eine Liste mit Objekten erweitern 64
Objekte in eine Liste einfügen 65
Datenstrukturen richtig kopieren 73
Listen erweitern die Schreibweise der eckigen Klammern 75
Listen verstehen Start, stop und Step 76
Start- und stop-Werte für Listen 78
Listen mithilfe von Slices bearbeiten 80
Pythons »for«-Schleife versteht Listen 86
Marvins Slices im Detail 88
Wann man Listen nicht benutzen sollte 91
Der Code aus Kapitel 2, 1 von 2 92
o 1 i 3 4- 5 i 1 0 1 10 11
0 □ 0 □ 0 0 3 !* □0 0
-11 -11 -10 -‘j -« -1 -k -4- -I -l -1
VII
Inhaltsverzeichnis
Strukturierte Daten
Mit strukturierten Daten arbeiten
Pythons Listen sind eine großartige Datenstruktur, aber kein All-
Heilmittel. Wenn Sie mit wirklich strukturierten Daten arbeiten müssen (und eine Liste zum
Speichern nicht geeignet ist), kann Pythons eingebaute Dictionary-(Wörterbuch-)Struktur mög-
licherweise helfen. Sammlungen von Schlüssel/Wert-Paaren lassen sich problemlos speichern
und bearbeiten. Wir werden Pythons Dictionary-Struktur in diesem Kapitel eingehend untersu-
chen und Ihnen dabei auch gleich Sets und Tupel vorstellen. Gemeinsam mit Listen (bekannt
aus dem vorigen Kapitel) bieten Dictionary, Set und Tupel eine Reihe vorgefertigter Datenstruk-
turen, die die Arbeit mit Daten in Python deutlich erleichtern.
lC: pord Prefefit
der= Male
tofdbotf Researcher
,e Planet Meiose Sever,
Ein Dictionary speichert Schlüssel/Wert-Paare 96
Dictionaries im Code erkennen 98
Reihenfolge des Einfügens wird NICHT beibehalten 99
Werte mithilfe eckiger Klammern nachschlagen 100
Zur Laufzeit mit Dictionaries arbeiten 101
Einen Frequenzzähler aktualisieren 105
Über ein Dictionary iterieren 107
Über Schlüssel und Werte iterieren 108
Mithilfe von »items« über ein Dictionary iterieren 110
Wie dynamisch sind Dictionaries wirklich? 114
KeyError-Laufzeitfehler vermeiden 116
Vorhandensein mit »in« überprüfen 117
Initialisierung vor Gebrauch sicherstellen 118
»in« durch »not in« ersetzen 119
Die »setdefault«-Methode verwenden 120
Sets effektiv erzeugen 124
Set-Methoden sinnvoll nutzen 125
Ein Plädoyer für Tupel 132
Eingebaute Datenstrukturen kombinieren 135
Auf Daten einer komplexen Datenstruktur zugreifen 141
Der Code aus Kapitel 3, Seite 1 von 2 143
VIII
Inhaltsverzeichnis
Code WîeclerVerWenden
Funktionen und Module
Die Wiederverwendbarkeit von Code ist Voraussetzung für ein wart-
bares System. Und bei Python ist Anfang und Ende aller Wiederverwendbarkeit die Funktion.
Nehmen Sie ein paar Codezeilen, geben Sie ihnen einen Namen, und schon haben Sie eine (wieder-
verwendbare) Funktion. Nehmen Sie eine Sammlung von Funktionen und packen Sie sie in eine eigene
Datei, und schon haben Sie ein Modul (das ebenfalls wiederverwendet werden kann). Es stimmt schon:
Teilen hilft. Am Ende dieses Kapitels werden Sie wissen, wie Code mithilfe von Pythons Funktionen und
Modulen wiederverwendet und mit anderen geteilt werden kann.
Code mithilfe von Funktionen wiederverwenden 146
Einführung in Funktionen 147
Rufen Sie Ihre Funktionen auf 150
Funktionen können Argumente übernehmen 154
Einen Wert zurückgeben 158
Mehr als einen Wert zurückgeben 159
Eingebaute Datenstrukturen: Wiederholung 161
Eine allgemein nützliche Funktion erstellen 165
Eine neue Funktion erstellen, 1 von 3 166
Standardwerte für Argumente definieren 170
Positionelle und Schlüsselwortzuweisung im Vergleich 171
Aktualisierung unseres Wissens über Funktionen 172
Python auf der Kommandozeile ausführen 175
Die erforderlichen Setup-Dateien erstellen 179
Eine Distributionsdatei erstellen 180
Pakete mit »pip« installieren 182
Demonstration von Werteparametern 185
Demonstration von Referenzparametern 186
Die Entwicklerwerkzeuge zum Testen installieren 190
Wie PEP 8-konform ist unser Code? 191
Die Fehlermeldungen verstehen 192
Der Code aus Kapitel 4 194
IX
Inhaltsverzeichnis
* ?3
Eine WeUppliknfion erstellen
Auf ins wahre Leben!
Jetzt kennen Sie genug Python, um richtig loszulegen.
Nachdem Sie die ersten vier Kapitel dieses Buchs gemeistert haben, sind Sie in der Lage,
Python in jeder Programmiersituation einzusetzen (obwohl es noch eine Menge zu lernen gibt).
Anstatt die lange Liste verschiedener Programme abzuarbeiten, wollen wir uns in den folgenden
Kapiteln mit der Erstellung einer webbasierten Applikation beschäftigen - einem Bereich, in dem
Python besonders stark ist. Unterwegs werden Sie etwas mehr über Python lernen. Bevor wir
loslegen, wollen wir Ihre bisherigen Python-Kenntnisse aber noch ein wenig auffrischen.
Python: Was Sie bereits wissen 196
Was soll unsere Webapplikation können? 200
Flask installieren 202
Wie funktioniert Flask? 203
Die Flask-'Web-App zum ersten Mal ausführen 204
Ein Flask-Webapplikationsobjekt erzeugen 206
Eine Funktion mit einer URL dekorieren 207
Das Verhalten Ihrer Webapplikation testen 208
Funktionalität im Web bereitstellen 209
Das HTML-Formular erstellen 213
Templates beziehen sich auf Webseiten 216
Templates mit Flask rendern 217
Das Formular der Webapplikation anzeigen 218
Vorbereitungen zum Ausführen des Template-Codes 219
HTTP-Statuscodes verstehen 222
Mit POST-Daten umgehen 223
Den Zyklus aus Bearbeiten, Anhalten, Starten und Testen optimieren 224
Mit Flask auf Formulardaten zugreifen 226
Die Formulardaten in der Webapplikation verwenden 227
Die Ergebnisse als HTML ausgeben 229
Die Webapplikation für die Cloud vorbereiten 238
Der Code aus Kapitel 5 241
X
Inhaltsverzeichnis
Daten speichern und bearbeiten
Wo kommen die Daten hin?
Früher oder später müssen Sie Ihre Daten irgendwo sicher speichern.
Und wenn es um Datenspeicherung geht, ist Python ganz für Sie da. In diesem Kapitel lernen Sie, wie
man Daten in Textdateien speichert und sie wieder ausliest. Das erscheint einem als Speichermechanis-
mus vielleicht ein wenig simpel, wird aber in vielen Problembereichen eingesetzt. Neben dem Speichern
und Auslesen von Daten aus Dateien werden Sie außerdem noch ein paar Tricks zum Bearbeiten von
Daten erfahren. Das »ernste Zeug« (Daten in einer Datenbank speichern) heben wir uns für das folgen-
de Kapitel auf, trotzdem wird uns die Arbeit mit Dateien jetzt schon ganz ordentlich auf Trab halten.
Etwas mit den Daten Ihrer Webapplikation anstellen 244
Python unterstützt die Öffnen-Bearbeiten-Schließen-Technik 245
Daten aus einer bestehenden Datei lesen 246
Eine bessere Version von Öffnen-Bearbeiten-Schließen: »with« 248
Das Protokoll von der Webapplikation anzeigen lassen 254
Die Rohdaten per »Quelltext anzeigen« untersuchen 256
Es ist Zeit, Ihre Daten zu escapen 257
Die gesamte Log-Datei in der Webapplikation betrachten 258
Bestimmte Attribute des Web-Requests protokollieren 261
Eine Zeile voneinander getrennter Datenfelder protokollieren 262
Von Rohdaten zu lesbaren Ausgaben 265
Lesbare Ausgaben mit HTML erzeugen 274
Darstellungslogik in das Template integrieren 275
Mit Jinja2 lesbare Ausgaben erzeugen 276
Der aktuelle Status Ihres Webapplikationscodes 278
Die Daten befragen 279
Der Code aus Kapitel 6 280
Formulardaten IP-Adresse Browser Ergebnisse
^»utablc/^lul-tiDidtiCi , 1Z7.0.0.1 AdozJlia/5 0 (Macintosh; {V, V}
KrUh-KikerO, OlitW, ladou)J) Ihiel Mac. ÖS ) 10J1JL)
like ¿jcdko) CHrome/^Zö.Z^Z^
.10* SaW^n^
Inhaltsverzeichnis
7
Die DB-API von Python verwenden
Datenspeicherung in einer relationalen Datenbank ist praktisch, in diesem
Kapitel lernen Sie, Code für die Zusammenarbeit mit der beliebten MySQL-Datenbank zu schreiben. Hierfür
verwenden wir eine allgemeine Datenbankschnittstelle namens DB-API. Mit dieser API (Teil der Python-
Standardinstallation) können Sie Code schreiben, der sich leicht zwischen verschiedenen Datenbankproduk-
ten austauschen lässt - sofern die verwendete Datenbank SQL versteht. Wir werden MySQL als Datenbank
benutzen, der DB-API-Code kann aber auch mit einer beliebigen anderen relationalen Datenbank verwendet
werden. Zunächst wollen wir sehen, was für den Einsatz relationaler Datenbanken mit Python gebraucht wird.
In diesem Kapitel gibt es eher wenig neuen Python-Code. Allerdings ist der Einsatz von Python für die Kom-
munikation mit Datenbanken ein sehr wichtiges Thema, über das man auf jeden Fall Bescheid wissen sollte.
Die Webapplikation für die Benutzung von Datenbanken vorbereiten 282
Aufgabe 1: Den MySQL-Server installieren 283
Einführung in die DB-API von Python 284
Aufgabe 2: Einen MySQL-Datenbanktreiber für Python installieren 285
MySQL-Connector/Python installieren 286
Aufgabe 3: Die Datenbank und die nötigen Tabellen für die Webapplikation erstellen 287
Eine Struktur für Ihre Log-Daten definieren 288
Bestätigen Sie, dass die Tabelle für die Daten bereit ist 289
Aufgabe 4: Den Code für die Datenbank und die Tabellen unserer
Webapplikation schreiben 296
Daten speichern ist die halbe Miete 300
Wie kann der Datenbankcode am besten wiederverwendet werden? 301
Überlegen Sie, was Sie hier wiederverwenden wollen 302
Und was ist mit import? 303
Sie kennen dieses Muster bereits 305
So schlecht sind die schlechten Nachrichten gar nicht 306
Der Code aus Kapitel 7
307
Ihr Code
xii
Pythons
DB-API
Der Python-
Treiber für MySQL
Inhaltsverzeichnis
Ein bisschen Klasse
Verhalten und Zustand abstrahieren
Klassen speichern Verhalten und Zustand gemeinsam.
In diesem Kapitel legen wir die Webapplikation zur Seite und beschäftigen uns stattdessen mit
Python-Klassen. Der Anlass ist, dass wir mithilfe einer Python-Klasse einen Kontextmanager erstel-
len wollen. Und weil die Erstellung und Programmierung von Klassen sowieso wissenswert ist, haben
wir ihnen dieses Kapitel gewidmet. Sie werden hier nicht alles über Klassen lernen, aber wir wollen
zumindest die Dinge ansprechen, die Sie brauchen, um für die Erstellung des Kontextmanagers Ihrer
Webapplikation fit zu werden. Dann wollen wir mal schauen, worum es hier eigentlich geht.
Sich in die »with«-Anweisung einklinken 310
Kurze Einführung in Objektorientierung 311
Objekte aus Klassen erzeugen 312
Objekte übernehmen das Verhalten, aber nicht den Zustand 313
Mehr mit CountFromBy anfangen 314
Methodenaufrufe: Die Details verstehen 316
Methoden einer Klasse hinzufügen 318
Die Bedeutung von »seif« 320
Die Gültigkeit von Geltungsbereichen 321
Stellen Sie Ihren Attributnamen »seif« voran 322
(Attribut-)Werte vor Gebrauch initialisieren 323
_init_ initialisiert Attribute 324
Attribute mit»_init_«initialisieren 325
Die Darstellung von CountFromBy verstehen 328
Die Darstellung von CountFromBy selbst definieren 329
Sinnvolle Standardwerte für CountFromBy 330
Klassen: Was wir bereits wissen 332
Der Code aus Kapitel 8 333
® ’ countfromby.py - /Users/paul/DesktGp/_NewBook/ch07/countfromby.py (3.5.1)
cjlasi'i CountFromBy:
dei: _init_(seif, v: int, i: int) - Kon«:
self.val = v
self.incr = i
def increase(self) - Honr?:
self.val += self.incr
Ln: 2 Col: 0
XIII
Inhaltsverzeichnis
Deis K^xtmanagemeiit-'R’otokoll
Sich in Pythons with-Anweisung einklinken
Es ist Zeit, das Gelernte anzuwenden. In Kapitel 7 haben wir über die Verwen-
dung einer relationalen Datenbank mit Python gesprochen, während Kapitel 8 eine Einführung
in Python-Klassen enthielt. Nun werden wir beide Techniken kombinieren, um einen Kontextma-
nager zu erstellen. Dieser soll die with-Anweisung so erweitern, dass sie auch mit relationalen
Datenbanken funktioniert. In diesem Kapitel klinken Sie sich in die with-Anweisung ein, indem
Sie eine neue Klasse erstellen, die mit Pythons Kontextmanagement-Protokoll konform ist.
Wie können wir den Gode unserer Webapplikation am besten mit anderen teilen? 336
Kontext anhand von Methoden verwalten 338
Sie kennen den Kontextmanager bereits 339
Eine neue Klasse für den Kontextmanager erstellen 340
Die Klasse mit der Datenbankkonfiguration initialisieren 341
Setup mit»_enter_« 343
Teardown mit»_exit_« 345
Den Code der Webapplikation überdenken, Teil 1 von 2 348
Die »log_request«-Funktion auf dem Prüfstand 350
Die »Iog_request«-Funktion anpassen 351
Die »view_the_log«-Funktion auf dem Prüfstand 352
Nicht nur der Gode ändert sich 353
Die »view_the_log«-Funktion anpassen 354
Die Datenfragen beantworten 359
Der Code aus Kapitel 9, 1 von 2 360
Datei Bearbeiten Fenster Hilfe Die Log-Datenbank testen
$ mysgl -u vsearch -p vsearchlogDB
Enter password:
Welcome to MySQL monitor.
mvsql select * from log;
+--- ■+-*•— --——-—— ---------------------— —---+***'——+—*"——+--—-—**—--—+—-—--—------—----------------■+
| id \ ts ] phrase I letters | ip 1 browser string | results |
4— ---------------------4----------------------+— ------—+--— ----+—-•---~-------+--------------------+
| 1 j 2016-03-09 13:40:46 | life, the uni . ything | aeiou | 127.0.0.1 | firefox | {'u1, 'e', 'i', 'a'} J
| 2 | 2016-03-09 13:42:07 | hitch-hiker I aeiou J 127.0.0.1 1 safari 1 {‘i\ 'e'} ]
| 3 | 2016-03-09 13:42:15 | galaxy I xyz | 127.0.0.1 | chrome | {'y’, 'x'} |
j 4 | 2016-03-09 13:43:07 | hitch-hiker j xyz | 127.0.0.1 | firefox [ set{) |
+---+-------------------+----------------------+------+-----------+--------------+--------------------+
4 rows in set (0.0 sec)
mysql quit
Bye
xiv
Inhaltsverzeichnis
Funkttensclekor^oren
Funktionen verpacken
Für die Erweiterung von Code gibt es neben dem Kontextmanagement-
Protokoll auch noch andere Optionen. In Python können Sie auch Funktionsdeko-
ratoren benutzen. Damit können Sie Funktionscode erweitern, ohne diesen zu verändern. Auf den
ersten Blick erscheint das wie schwarze Magie, aber keine Sorge: So schlimm ist es nicht. Trotzdem
sehen viele Python-Programmierer das Schreiben von Funktionsdekoratoren als eher schwierig an.
Dadurch werden Dekoratoren weniger eingesetzt als eigentlich sinnvoll. In diesem Kapitel wollen wir
Ihnen zeigen, dass die Erstellung und Verwendung eigener Dekoratoren nicht so schwer ist, wie oft
behauptet wird.
Der Webserver (nicht Ihr Computer) führt den Code aus
Zustandsverwaltung mit Flasks Sessions
Den Zustand im Dictionary nachschlagen
Anmeldevorgänge mit Sessions verwalten
Log-out und Status überprüfen
Eine Funktion an eine Funktion übergeben
Eine übergebene Funktion aufrufen
Eine Liste mit Argumenten übernehmen
Eine Liste mit Argumenten verarbeiten
Ein Dictionary mit Argumenten übernehmen
Ein Dictionary mit Argumenten verarbeiten
366
368
369
374
377
386
387
390
391
392
393
Funktionsargumente von beliebiger Zahl und beliebigem Typ übernehmen 394
Einen Funktionsdekorator erstellen
Der letzte Schritt: Mit Argumenten umgehen
Der Dekorator im praktischen Einsatz
Zurück zur Zugangsbeschränkung für /viewlog
Der Code aus Kapitel 10, Teil 1 von 2
397
401
404
408
410
, il)!*"
6*
slPaU
,,000
S6S*C
CtO'
0V9
vö 5'
£*•
iCät 6
lo '
ed.
in
d «***t.iWp* *0 iïl' *!*# * ' n-A iil
o') *
**TC«at*
u seS
itgSi
ad
■C '
i
Cü':.
XV
Inhaltsverzeichnis
Mit Aüsnalinieri umgehen
Was zu tun ist, wenn mal etwas schiefgeht
Egal wie gut Ihr Code ist, irgendetwas geht immer schief, sie haben alle
Beispiele in diesem Buch erfolgreich durchgearbeitet und sind sich ziemlich sicher, dass der bisherige
Code auch funktioniert. Aber ist der deshalb wirklich robust? Vermutlich nicht. Es ist (bestenfalls) naiv,
zu glauben, man könne Code schreiben und es würde schon alles gut gehen. Vorsicht ist hier deutlich
besser als Vertrauensseligkeit. Wenn Ihr Code auch dann noch funktionieren soll, wenn die Dinge aus
dem Ruder laufen, müssen Sie sorgfältig Vorgehen. In diesem Kapitel zeigen wir nicht nur, was alles
schiefgehen kann, sondern auch, was in solchen Fällen (oder oft sogar davor) zu tun ist.
Datenbanken sind nicht immer verfügbar 418
Angriffe aus dem Web können richtig nerven 419
Ein- und Ausgaben sind (manchmal) langsam 420
Funktionsaufrufe können fehlschlagen 421
Versuchen Sie immer, möglicherweise fehlerhaften Code auszuführen 423
Ein try, viele excepts 426
Ein Händler, sie zu knechten . 428
Mit »sys« mehr über Ausnahmen erfahren 430
Noch mal: der »catch all«-Ausnahme-Handler 431
Zurück zum Code unserer Webapplikation 433
Ausnahmen leise handhaben 434
Mit anderen Datenbankfehlern umgehen 440
Vermeiden Sie eng verbundenen Code 442
Wiedersehen mit dem DBcm-Modul 443
E*Ceptl+ü stoplteration
U stopAsyncIterat,oP
^VoverflouError
+—vZeroDivis
AssettionError
AttributeError
ionError
+_- Buf£eiEiro£
+— EOFEirot
Eigene Ausnahmen erstellen
Was kann mit »DBcm« noch schiefgehen?
Die Behandlung von SQLError funktioniert anders
Einen SQLError auslösen
Ein schneller Rückblick: Robustheit hinzufügen
Wie mit Wartezeiten umgehen? Kommt drauf an .
Der Code aus Kapitel 11,1 von 3
444
448
451
453
455
456
457
xvi
Inhaltsverzeichnis
Ein bisschen Tkending
Taten statt Warten
Manchmal braucht Code wirklich ziemlich lang für die
Ausführung. Abhängig davon, wem das auffällt, kann das ein Problem sein oder
nicht. Wenn Ihr Code »hinter den Kulissen« 30 Sekunden für die Ausführung braucht,
ist die Wartezeit vermutlich kein Thema. Wenn aber ein Benutzer 30 Sekunden auf
eine Antwort Ihrer Applikation wartet, merkt das jeder. Die Lösung hängt davon ab,
welche Aufgabe Ihre Applikation hat (und wer warten muss), in diesem kurzen Kapitel
zeigen wir ein paar mögliche Optionen und sehen uns dann eine Lösung für das tat-
sächliche Problem an: Was passiert, wenn etwas sehr lange dauert?
Warten: Was ist zu tun? 462
Wie fragen Sie Ihre Datenbank ab? 463
Datenbank-INSERTs und -SELECTs sind verschieden 464
Mehrere Dinge gleichzeitig tun 465
Keine Sorge. Benutzen Sie Threads 466
Das Wichtigste zuerst: keine Panik 470
Keine Sorge: Flask kann helfen 471
Ist Ihre Webapplikation jetzt robust? 474
Der Code aus Kapitel 113A, 1 von 2 475
0
Inhaltsverzeichnis
Fortgeschrittene Iteration
Schleifen wie verrückt
Es ist erstaunlich, wie viel Zeit unsere Programme in Schleifen verbringen
Das überrascht nicht, weil die meisten Programme die gleiche Aufgabe viele Male durchführen müssen.
Für die Optimierung von Schleifen gibt es zwei Ansätze: 1. die Verbesserung der Schleifensyntax (um die
Definition einer Schleife zu erleichtern) und 2. die Verbesserung der Schleifenausführung (um sie schnelle
zu machen). Als Python 2 noch jung war (also vor sehr, sehr langer Zeit), haben die Designer der Sprach
ein Merkmal entwickelt, das beide Ansätze implementiert. Es nennt sich Compréhension (eine Form der
Abstraktion). Lassen Sie sich durch den seltsamen Namen nicht täuschen. Am Ende dieses Kapitels wer-
den Sie sich fragen, wie Sie bisher ohne Compréhensions leben konnten.
XVIII
CSV-Daten als Listen einiesen
CSV-Daten als Dictionaries einiesen
Rohdaten säubern und trennen
Vorsicht beim Verketten von Methodenaufrufen
Daten in das benötigte Format umwandeln
Die Daten in ein Dictionary mit Listen umwandeln
Das Programmiermuster bei Listen erkennen
Programmiermuster in Comprehensions umwandeln
Ein genauerer Blick auf Comprehensions
Eine Dictionary-Comprehension definieren
Comprehensions mit Filtern erweitern
Pythons Weg für den Umgang mit Komplexität
Set-Comprehensions in Aktion
Und was ist mit »Tupel-Comprehensions«?
Runde Klammern um Code == Generator
URLs mit einer Listen-Comprehension verarbeiten
URLs mit einem Generator verarbeiten
Definieren Sie, was Ihre Funktion tun soll
Die Macht der Generatorfunktionen
Die Generatorfunktion aufspüren, Teil 1 von 2
Eine letzte Frage
Der Code aus Kapitel 12
Wir sind dann mal weg .
479
480
482
483
484
485
490
491
492
494
495
499
505
507
508
509
510
512
513
514
518
519
520
Inhaltsverzeichnis
Installation
A Python installieren
Das Wichtigste zuerst: Wir wollen Python auf Ihrem Computer
installieren. Egal ob Sie Windows, macOS oder Linux im Einsatz haben, Python ist für
Sie da. Wie das im Einzelnen geht, hängt vom verwendeten Betriebssystem ab (ja, wissen wir -
eine Riesenüberraschung, oder?). Die Python-Community arbeitet hart daran, für alle beliebten
Plattformen einen Installer bereitzustellen. In diesem kurzen Anhang zeigen wir Ihnen, wie Sie
Python auf Ihrem Computer installieren können.
Python 3 unter Windows installieren 522
Python 3 unter Windows testen 523
Python 3 unter Windows ergänzen 524
Python 3 unter Mac OS X (macOS) installieren 525
Python 3 unter macOS konfigurieren und testen 526
Python 3 unter Linux installieren 527
PytknAnywfiere
Blhre Webapplikation bereitstellen
Am Ende von Kapitel 5 haben wir behauptet, dass die Bereitstellung
Ihrer Webapplikation in der Cloud nur zehn Minuten dauert.
Das Versprechen wollen wir jetzt einlösen. In diesem Anhang zeigen wir Ihnen, wie Sie Ihre Webapplika-
tion über PythonAnywhere bereitstellen können - und zwar in nur zehn Minuten. PythonAnywhere ist bei
Python-Programmierern sehr beliebt, und der Grund liegt auf der Hand: Die Plattform funktioniert exakt
wie erwartet, bietet großartige Unterstützung für Python (und Flask) - und das Beste daran: Sie können
Ihre Webapplikation dort kostenlos unterstellen. Sehen wir uns PythonAnywhere einmal genauer an.
Schritt 0: Etwas Vorbereitung 530
Schritt 1: Bei PythonAnywhere registrieren 531
Schritt 2: Die Dateien in die Cloud hochladen 532
Schritt 3: Den Code extrahieren und installieren 533
Schritt 4: Eine Starter-Webapplikation erstellen, 1 von 2 534
Schritt 5: Die Webapplikation konfigurieren 536
Schritt 6: Drehen Sie eine Runde mit Ihrer cloudbasierten
Webapplikation! 537
xix
Inhaltsverzeichnis
Die lo Wichtigsten Dinge, die Wir nicjit betende]t hoben
CEs gibt immer noch etwas zu lernen
Wir hatten nie die Absicht, alles zu behandeln.
Das Ziel dieses Buchs war, Ihnen genug Python zu zeigen, um Sie möglichst schnell auf den
Weg zu bringen. Wir hätten deutlich mehr behandeln können, haben wir aber nicht. Hier bespre-
chen wir die zehn wichtigsten Dinge, die wir - auf vielleicht weiteren 600 Seiten - auch noch hät-
ten besprechen können. Vermutlich werden Sie nicht alle davon interessieren. Trotzdem sollten
Sie zumindest kurz duchblättern, um zu sehen, ob nicht doch etwas Ihren Geschmack trifft oder
eine drängende Frage beantwortet. Alle in diesem Anhang besprochenen Programmiertechniken
sind direkter Bestandteil von Python und dem Interpreter.
1. Was ist mit Python 2? 540
2. Virtuelle Programmierumgebungen 541
3. Mehr zur Objektorientierung 542
4. Formate für Strings und Ähnliches 543
5. Dinge sortieren 544
6. Mehr zur Standardbibliothek 545
7. Code gleichzeitig ausführen 546
8. GUIs mit Tkinter (und Spaß mit turtle) 547
9. Ohne Test ist es nicht fertig 548
10. Debuggen, Debuggen, Debuggen 549
Inhaltsverzeichnis
Die jO Wichtigsten Projekte, die Wir nicht behandelt haben
Noch mehr Werkzeuge, Bibliotheken und Module
Wir wissen, was Sie beim Lesen der Überschrift gedacht haben.
Warum um alles in der Welt haben die den letzten Anhang nicht einfach Die 20 wichtigsten Din-
ge, die wir nicht behandelt haben genannt? Warum noch mal zehn? Im vorigen Anhang haben
wir uns auf Dinge beschränkt, die direkter Bestandteil von Python sind (Teile der »beiliegenden
Batterien« sozusagen). In diesem Anhang werfen wir das Netz weiter aus und sprechen über
eine Reihe von Technologien, die es gibt, weil es Python gibt, Hier ist viel Gutes zu entdecken,
und wie beim vorigen Kapitel lohnt sich selbst das Überfliegen auf jeden Fall.
1. .Alternativen zu » 552
2. Alternativen zu IDLE 553
3. Jupyter Notebook: die webbasierte IDE 554
4. Data Science betreiben 555
5. Technologien für die Webentwicklung 556
6. Mit Webdaten arbeiten 557
7. Noch mehr Datenquellen 558
8. Programmierwerkzeuge 559
9. Kivy: Unsere Wahl für das »coolste Projekt überhaupt« 560
10. Alternative Implementierungen 561
xxi
Inhaltsverzeichnis
Mitmaclien
Die Python-Gemeinschaft
Python ist viel mehr als nur eine großartige Programmiersprache.
Es ist auch eine großartige Gemeinschaft. Die Python-Gemeinschaft ist einladend, verschie-
denartig, offen, freundlich, selbstlos und freigiebig. Wir wundern uns die ganze Zeit, warum das
bis heute noch niemand auf eine Grußkarte gedruckt hat! Im Ernst, Python ist mehr als nur die
Sprache. Um Python ist ein komplettes Ökosystem entstanden - in Form von Büchern, Blogs,
Websites, Konferenzen, Treffen, Benutzergruppen und Persönlichkeiten. In diesem Anhang
untersuchen wir die Python-Gemeinschaft und sehen, was sie zu bieten hat. Sitzen Sie nicht nur
rum und programmieren im stillen Kämmerlein: Machen Sie mit!
Wohlwollender Diktator auf Lebenszeit 564
Eine tolerante Gemeinschaft: Respekt für Vielfalt 565
Python-Podcasts 566
Das Python-Zen 567
Welches Buch sollte ich jetzt lesen? 569
Unsere englischen Lieblings-Python-Bücher 570
Unsere deutschen Lieblings-Python-Bücher 571
XXI8 |
any_adam_object | 1 |
author | Barry, Paul 1966- |
author2 | Lang, Jørgen W. |
author2_role | trl |
author2_variant | j w l jw jwl |
author_GND | (DE-588)139463631 (DE-588)129082112 |
author_facet | Barry, Paul 1966- Lang, Jørgen W. |
author_role | aut |
author_sort | Barry, Paul 1966- |
author_variant | p b pb |
building | Verbundindex |
bvnumber | BV044263857 |
classification_rvk | ST 250 |
classification_tum | DAT 366f |
ctrlnum | (OCoLC)979555538 (DE-599)DNB1127544152 |
dewey-full | 005.133 004 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security 004 - Computer science |
dewey-raw | 005.133 004 |
dewey-search | 005.133 004 |
dewey-sort | 15.133 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
edition | Zweite Auflage |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nam a2200000 c 4500</leader><controlfield tag="001">BV044263857</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20180815</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">170406s2017 gw a||| |||| 00||| ger d</controlfield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">17,N12</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">1127544152</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783960090359</subfield><subfield code="c">Broschur : circa EUR 44.90 (DE), circa EUR 46.20 (AT)</subfield><subfield code="9">978-3-96009-035-9</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">3960090358</subfield><subfield code="c">Broschur</subfield><subfield code="9">3-96009-035-8</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)979555538</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)DNB1127544152</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rda</subfield></datafield><datafield tag="041" ind1="1" ind2=" "><subfield code="a">ger</subfield><subfield code="h">eng</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">gw</subfield><subfield code="c">XA-DE-BW</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-M347</subfield><subfield code="a">DE-860</subfield><subfield code="a">DE-1102</subfield><subfield code="a">DE-523</subfield><subfield code="a">DE-11</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-19</subfield><subfield code="a">DE-1049</subfield><subfield code="a">DE-B768</subfield><subfield code="a">DE-188</subfield><subfield code="a">DE-706</subfield><subfield code="a">DE-862</subfield><subfield code="a">DE-824</subfield><subfield code="a">DE-858</subfield><subfield code="a">DE-20</subfield><subfield code="a">DE-1046</subfield><subfield code="a">DE-739</subfield><subfield code="a">DE-859</subfield><subfield code="a">DE-703</subfield><subfield code="a">DE-573</subfield><subfield code="a">DE-634</subfield><subfield code="a">DE-945</subfield><subfield code="a">DE-83</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.133</subfield><subfield code="2">22/ger</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">004</subfield><subfield code="2">23</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">004</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 366f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Barry, Paul</subfield><subfield code="d">1966-</subfield><subfield code="0">(DE-588)139463631</subfield><subfield code="4">aut</subfield></datafield><datafield tag="240" ind1="1" ind2="0"><subfield code="a">Head first Python</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Python von Kopf bis Fuß</subfield><subfield code="c">Paul Barry ; deutsche Übersetzung von Jørgen W. Lang</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">Zweite Auflage</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Beijing ; Boston ; Farnham ; Sebastopol ; Tokyo</subfield><subfield code="b">O'Reilly</subfield><subfield code="c">2017</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">xxxiv, 585 Seiten</subfield><subfield code="b">Illustrationen, Diagramme</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="490" ind1="0" ind2=" "><subfield code="a">Von Kopf bis Fuß</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">"Aktuell zu Python 3" - Auf dem Cover</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">"Laden Sie sich die wesentlichen Python-Kenntnisse direkt ins Hirn; vermeiden Sie saure Überraschungen: Benutzen Sie die DB-API; erstellen Sie eine moderne Web-App mit Flask; Modellieren Sie Daten als Listen, Tupel, Sets und Dictionaries; Objekte? Dekoratoren? Generatoren? Bitteschön!; verwenden Sie Module, um Ihren Code mit anderen zu teilen" - Auf dem Cover</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Python</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4434275-5</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Programmierung</subfield><subfield code="0">(DE-588)4076370-5</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="655" ind1=" " ind2="7"><subfield code="8">1\p</subfield><subfield code="0">(DE-588)4151278-9</subfield><subfield code="a">Einführung</subfield><subfield code="2">gnd-content</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Python</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4434275-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">Programmierung</subfield><subfield code="0">(DE-588)4076370-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="8">2\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Lang, Jørgen W.</subfield><subfield code="0">(DE-588)129082112</subfield><subfield code="4">trl</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Erscheint auch als</subfield><subfield code="n">Online-Ausgabe, PDF</subfield><subfield code="z">978-3-96009-135-2</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Erscheint auch als</subfield><subfield code="n">Online-Ausgabe, ePub</subfield><subfield code="z">978-3-96009-136-9</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Erscheint auch als</subfield><subfield code="n">Online-Ausgabe, Mobi</subfield><subfield code="z">978-3-96009-137-6</subfield></datafield><datafield tag="780" ind1="0" ind2="0"><subfield code="i">Vorangegangen ist</subfield><subfield code="b">1. Auflage</subfield><subfield code="d">2011</subfield><subfield code="z">978-3-89721-318-0</subfield><subfield code="w">(DE-604)BV037476011</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">X:MVB</subfield><subfield code="q">text/html</subfield><subfield code="u">http://deposit.dnb.de/cgi-bin/dokserv?id=c5680da8538144c599dad90ae857d8e5&prov=M&dok_var=1&dok_ext=htm</subfield><subfield code="3">Inhaltstext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Passau - ADAM Catalogue Enrichment</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=029668707&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">2\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-029668707</subfield></datafield></record></collection> |
genre | 1\p (DE-588)4151278-9 Einführung gnd-content |
genre_facet | Einführung |
id | DE-604.BV044263857 |
illustrated | Illustrated |
indexdate | 2024-12-28T04:09:15Z |
institution | BVB |
isbn | 9783960090359 3960090358 |
language | German English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-029668707 |
oclc_num | 979555538 |
open_access_boolean | |
owner | DE-M347 DE-860 DE-1102 DE-523 DE-11 DE-91G DE-BY-TUM DE-19 DE-BY-UBM DE-1049 DE-B768 DE-188 DE-706 DE-862 DE-BY-FWS DE-824 DE-858 DE-20 DE-1046 DE-739 DE-859 DE-703 DE-573 DE-634 DE-945 DE-83 |
owner_facet | DE-M347 DE-860 DE-1102 DE-523 DE-11 DE-91G DE-BY-TUM DE-19 DE-BY-UBM DE-1049 DE-B768 DE-188 DE-706 DE-862 DE-BY-FWS DE-824 DE-858 DE-20 DE-1046 DE-739 DE-859 DE-703 DE-573 DE-634 DE-945 DE-83 |
physical | xxxiv, 585 Seiten Illustrationen, Diagramme |
publishDate | 2017 |
publishDateSearch | 2017 |
publishDateSort | 2017 |
publisher | O'Reilly |
record_format | marc |
series2 | Von Kopf bis Fuß |
spellingShingle | Barry, Paul 1966- Python von Kopf bis Fuß Python Programmiersprache (DE-588)4434275-5 gnd Programmierung (DE-588)4076370-5 gnd |
subject_GND | (DE-588)4434275-5 (DE-588)4076370-5 (DE-588)4151278-9 |
title | Python von Kopf bis Fuß |
title_alt | Head first Python |
title_auth | Python von Kopf bis Fuß |
title_exact_search | Python von Kopf bis Fuß |
title_full | Python von Kopf bis Fuß Paul Barry ; deutsche Übersetzung von Jørgen W. Lang |
title_fullStr | Python von Kopf bis Fuß Paul Barry ; deutsche Übersetzung von Jørgen W. Lang |
title_full_unstemmed | Python von Kopf bis Fuß Paul Barry ; deutsche Übersetzung von Jørgen W. Lang |
title_short | Python von Kopf bis Fuß |
title_sort | python von kopf bis fuß |
topic | Python Programmiersprache (DE-588)4434275-5 gnd Programmierung (DE-588)4076370-5 gnd |
topic_facet | Python Programmiersprache Programmierung Einführung |
url | http://deposit.dnb.de/cgi-bin/dokserv?id=c5680da8538144c599dad90ae857d8e5&prov=M&dok_var=1&dok_ext=htm http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=029668707&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT barrypaul headfirstpython AT langjørgenw headfirstpython AT barrypaul pythonvonkopfbisfuß AT langjørgenw pythonvonkopfbisfuß |
Beschreibung
THWS Schweinfurt Zentralbibliothek Lesesaal
Signatur: |
2000 ST 250 P99 B281(2) |
---|---|
Exemplar 1 | ausleihbar Checked out – Rückgabe bis: 07.02.2025 Vormerken |