Der Weg zum Python-Profi

Book description

Dieses Buch richtet sich an Programmierer, die bereits Kenntnisse der Python-Programmierung besitzen, diese aber ausbauen wollen.Der Weg zum Python Profi ist mehr als eine bloße Sammlung meisterhafter Tipps für das Schreiben von sauberem Code. Es zeigt, wie Programmierer und Programiererinnen die Kommandozeile bedienen und andere professionelle Tools wie Code-Formatierer, Type Checkers, Linters und Versionskontrolle verwenden können. Al Sweigart führt durch bewährte Praktiken für die Einrichtung der Entwicklungsumgebung, die Benennung von Variablen und die Verbesserung der Lesbarkeit und geht dann auf Dokumentation, Organisation, Leistungsmessung, objektorientiertes Design und sogar Big-O-Algorithmus-Analyse ein. Die Hinweise und Anleitungen des Buchs werden vorhandene Programmierfähigkeiten deutlich verbessern - nicht nur in Python, sondern in jeder Sprache.

Table of contents

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

Product information

  • Title: Der Weg zum Python-Profi
  • Author(s): Al Sweigart
  • Release date: January 2022
  • Publisher(s): dpunkt
  • ISBN: 9783864908743