
Der Weg zum Python-Profi
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions


Persons
Content
- Cover
- Titel
- Impressum
- Inhalt
- Widmung
- Der Autor
- Der Fachgutachter
- Danksagung
- Einleitung
- Wer dieses Buch lesen sollte und warum
- Über dieses Buch
- Ihr Weg zur Programmierung
- 1 Fehlermeldungen und Recherche
- Python-Fehlermeldungen verstehen
- Tracebacks untersuchen
- Fehlermeldungen recherchieren
- Fehler vermeiden mit Lintern
- Um Hilfe bitten
- Geben Sie gleich ausreichend Informationen, um Rückfragen zu vermeiden
- Formulieren Sie Ihre Fragen als Fragen
- Stellen Sie Ihre Fragen auf einer geeigneten Website
- Geben Sie das Problem in der Überschrift an
- Erklären Sie, was der Code tun soll
- Geben Sie die vollständige Fehlermeldung an
- Teilen Sie Ihren Code vollständig mit
- Gestalten Sie Ihren Code durch saubere Formatierung lesbar
- Beschreiben Sie, was Sie bereits versucht haben
- Beschreiben Sie Ihre Ausstattung
- Ein Beispiel für eine gut gestellte Frage
- Zusammenfassung
- 2 Die Einrichtung der Umgebung und die Befehlszeile
- Das Dateisystem
- Pfade in Python
- Das Benutzerverzeichnis
- Das aktuelle Arbeitsverzeichnis
- Absolute und relative Pfade
- Programme und Prozesse
- Die Befehlszeile
- Ein Terminalfenster öffnen
- Programme an der Befehlszeile ausführen
- Befehlszeilenargumente
- Python-Code mit -c an der Befehlszeile ausführen
- Python-Programme an der Befehlszeile ausführen
- Py.exe
- Befehle aus einem Python-Programm heraus ausführen
- Tipparbeit durch Tabulatorvervollständigung sparen
- Der Befehlsverlauf
- Gebräuchliche Befehle
- PATH und andere Umgebungsvariablen
- Umgebungsvariablen anzeigen
- Die Umgebungsvariable PATH
- Die Umgebungsvariable PATH in der Befehlszeile ändern
- Ordner in Windows dauerhaft zu PATH hinzufügen
- Ordner in macOS und Linux dauerhaft zu PATH hinzufügen
- Python-Programme außerhalb der Befehlszeile ausführen
- Python-Programme in Windows ausführen
- Python-Programme in macOS ausführen
- Python-Programme in Ubuntu Linux ausführen
- Zusammenfassung
- 3 Codeformatierung mit Black
- Wie man Freunde und Kollegen vergrault
- PEP 8 und andere Stilrichtlinien
- Horizontale Abstände
- Leerzeichen zur Einrückung verwenden
- Abstände innerhalb einer Zeile
- Vertikale Abstände
- Beispiel für vertikale Abstände
- Empfohlene Vorgehensweisen für vertikale Abstände
- Black: Der kompromisslose Codeformatierer
- Black installieren
- Black an der Befehlszeile ausführen
- Black für einzelne Abschnitte Ihres Codes ausschalten
- Zusammenfassung
- 4 Aussagekräftige Namen
- Groß- und Kleinschreibung
- Namenskonventionen in PEP 8
- Namen geeigneter Länge
- Zu kurze Namen
- Zu lange Namen
- Leicht zu findende Namen
- Scherze, Wortspiele und Anspielungen vermeiden
- Integrierte Namen nicht überschreiben
- Die allerschlechtesten Variablennamen
- Zusammenfassung
- 5 Codegerüche
- Duplizierter Code
- Magische Zahlen
- Auskommentierter und toter Code
- Print-Debugging
- Variablen mit numerischen Suffixen
- Klassen statt Funktionen oder Module
- Verschachtelte Listennotation
- Leere except-Blöcke und nichtssagende Fehlermeldungen
- Legenden über Code Smells
- Legende: Funktionen sollten nur eine return-Anweisung am Ende aufweisen
- Legende: Funktionen mit einer try-Anweisung dürfen keine anderen Anweisungen enthalten
- Legende: Flag-Argumente sind schlecht
- Legende: Globale Variablen sind schlecht
- Legende: Kommentare sind unnötig
- Zusammenfassung
- 6 Pythonischer Code
- Python-Zen
- Aussagekräftige Einrückungen
- Leistung mit dem Modul timeit messen
- Häufig falsch angewendete Syntax
- Verwenden Sie enumerate() statt range()
- Verwenden Sie with statt open() und close()
- Verwenden Sie is statt == zum Vergleich mit None
- Stringformatierung
- Verwenden Sie Rohstrings bei einer großen Anzahl von Backslashes
- F-Strings
- Flache Kopien von Listen
- Pythonischer Umgang mit Dictionarys
- Verwenden Sie get() und setdefault() für Dictionarys
- Verwenden Sie collections.defaultdict für Standardwerte
- Verwenden Sie Dictionarys statt switch-Konstruktionen
- Bedingte Ausdrücke: Pythons »hässlicher« ternärer Operator
- Variablenwerte
- Zuweisungs- und Vergleichsoperatoren verketten
- Eine Variable auf Gleichheit mit mehreren Werten prüfen
- Zusammenfassung
- 7 Programmierjargon
- Definitionen
- Die Sprache Python und der Interpreter Python
- Garbage Collection
- Literale
- Schlüsselwörter
- Objekte, Werte und Identitäten
- Elemente
- Veränderbare und unveränderbare Objekte
- Indizes, Schlüssel und Hashes
- Container-, Folgen-, Maps- und Set-Datentypen
- Dunder- oder magische Methoden
- Module und Pakete
- Aufrufbare Objekte und Objekte erster Klasse
- Häufig verwechselte Begriffe
- Anweisungen und Ausdrücke
- Blöcke, Klauseln und Rümpfe
- Variablen und Attribute
- Funktionen und Methoden
- Iterierbare Objekte und Iteratoren
- Syntax-, Laufzeit- und semantische Fehler
- Parameter und Argumente
- Implizite und explizite Typumwandlung
- Eigenschaften und Attribute
- Bytecode und Maschinencode
- Skripte und Programme, Skriptsprachen und Programmiersprachen
- Bibliotheken, Frameworks, SDKs, Engines und APIs
- Zusammenfassung
- Literatur
- 8 Häufige Fallstricke in Python
- Elemente zu Listen hinzufügen und entfernen
- Veränderbare Werte kopieren
- Standardargumente
- Strings zusammenbauen
- Sortierung mit sort()
- Genauigkeit von Fließkommazahlen
- Verkettung von Ungleichheitsoperatoren
- Das Komma in einelementigen Tupeln
- Zusammenfassung
- 9 Exotische Eigenarten von Python
- 256 ist 256, aber 257 ist nicht 257
- String-Interning
- Die Bedeutung von ++ und -- in Python
- Alles von nichts
- Boolesche Werte als Integer
- Verkettung unterschiedlicher Operatoren
- Schwerelosigkeit in Python
- Zusammenfassung
- 10 Zweckmäßige Funktionen
- Funktionsnamen
- Der Umfang von Funktionen
- Funktionsparameter und -argumente
- Standardargumente
- Argumente mit * und ** an Funktionen übergeben
- Variadische Funktionen mit * erstellen
- Variadische Funktionen mit ** erstellen
- Wrapper-Funktionen mit * und ** erstellen
- Funktionale Programmierung
- Nebenwirkungen
- Funktionen höherer Ordnung
- Lambda-Funktionen
- Zuordnung und Filterung mit Listennotation
- Der Datentyp von Rückgabewert
- Ausnahmen auslösen oder Fehlercodes zurückgeben
- Zusammenfassung
- 11 Kommentare, Docstrings und Typhinweise
- Kommentare
- Formatierung von Kommentaren
- Inline-Kommentare
- Erklärende Kommentare
- Kommentare zur Gliederung
- »Lessons-Learned-Kommentare«
- Rechtliche Hinweise
- Professionelle Formulierung
- Codetags und TODO-Kommentare
- Magische Kommentare und Quelldateicodierung
- Docstrings
- Typhinweise
- Tools zur statischen Analyse
- Typhinweise für mehrere Typen
- Typhinweise für Listen, Dictionarys u. Ä
- Rückportierung von Typhinweisen mithilfe von Kommentaren
- Zusammenfassung
- 12 Versionssteuerung mit Git
- Commits und Repositorys in Git
- Neue Python-Projekte mit Cookiecutter erstellen
- Git installieren
- Git-Benutzername und E-Mail-Adresse angeben
- GUI-Werkzeuge für Git installieren
- Der Arbeitsablauf in Git
- Der Dateistatus in Git
- Wozu gibt es bereitgestellte Dateien?
- Ein Git-Repository erstellen
- Zu verfolgende Dateien hinzufügen
- Einzelne Dateien ignorieren
- Änderungen mit Commit bestätigen
- Änderungen mit git diff vor dem Commit einsehen
- Änderungen mit git difftool in einer GUI-Anwendung einsehen
- Häufigkeit von Commits
- Dateien löschen
- Dateien umbenennen und verschieben
- Das Commitprotokoll einsehen
- Frühere Versionen wiederherstellen
- Unbestätigte lokale Änderungen rückgängig machen
- Bereitstellung einer Datei aufheben
- Die letzten Commits zurücknehmen
- Zurücksetzen einer einzelnen Datei zu einem bestimmten Commit
- Den Commitverlauf ändern
- GitHub und git push
- Ein bestehendes Repository auf GitHub übertragen
- Ein GitHub-Repository klonen
- Zusammenfassung
- 13 Leistungsmessung und Algorithmusanalyse
- Das Modul timeit
- Der Profiler cProfile
- Komplexitätsanalyse
- Ordnungen
- Ein Bücherregal als Metapher für Ordnungen
- Worst Case und Best Case
- Die Ordnung Ihres Codes bestimmen
- Warum Terme niedriger Ordnungen und Koeffizienten keine Rolle spielen
- Beispiele für die Komplexitätsanalyse
- Die Ordnung gängiger Funktionsaufrufe
- Komplexitätsanalyse im Überblick
- Die Ordnung spielt bei kleinem n keine Rolle - und n ist gewöhnlich klein
- Zusammenfassung
- 14 Praxisprojekte
- Turm von Hanoi
- Die Ausgabe
- Der Quellcode
- Den Code schreiben
- Vier gewinnt
- Die Ausgabe
- Der Quellcode
- Den Code schreiben
- Zusammenfassung
- 15 Klassen
- Formulare als Veranschaulichung
- Objekte aus Klassen erstellen
- Eine einfache Klasse erstellen: WizCoin
- Methoden, __init__() und der Parameter self
- Attribute
- Private Attribute und private Methoden
- Die Funktion type() und das Attribut __qualname__
- OOP- und Nicht-OOP-Code im Vergleich
- Klassen für reale Objekte
- Zusammenfassung
- 16 Vererbung
- Wie Vererbung funktioniert
- Methoden überschreiben
- Die Funktion super()
- Komposition statt Vererbung
- Nachteile der Vererbung
- Die Funktionen isinstance() und issubclass()
- Klassenmethoden
- Klassenattribute
- Statische Methoden
- Wann brauchen Sie Klassenmerkmale und statische Methoden?
- Schlagwörter der objektorientierten Programmierung
- Kapselung
- Polymorphismus
- Wann Sie die Vererbung nicht nutzen sollten
- Mehrfachvererbung
- Die Reihenfolge der Methodenauflösung
- Zusammenfassung
- 17 Pythonische OOP: Eigenschaften und Dunder-Methoden
- Eigenschaften
- Attribute in Eigenschaften umwandeln
- Set-Methoden zur Datenvalidierung
- Schreibgeschützte Eigenschaften
- Wann Sie Eigenschaften verwenden sollten
- Dunder-Methoden
- Dunder-Methoden zur Stringdarstellung
- Numerische Dunder-Methoden
- Reflektierte numerische Dunder-Methoden
- Direkte Dunder-Methoden für erweiterte Zuweisungsoperatoren
- Dunder-Methoden für Vergleiche
- Zusammenfassung
- Stichwortverzeichnis
System requirements
File format: PDF
Copy protection: Watermark-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Use the free software Adobe Reader, Adobe Digital Editions, or any other PDF viewer of your choice (see eBook Help).
- Tablet/Smartphone (Android; iOS): Install the free app Adobe Digital Editions or another reading app for eBooks, e.g., PocketBook (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Watermark-DRM, a „soft” copy protection. This means that there are no technical restrictions to prevent illegal distribution. However, there is a personalised watermark embedded in the eBook that can be used to identify the purchaser of the eBook in the event of misuse and to provide evidence for legal purposes.
For more information, see our eBook Help page.