Programmieren ist eine extrem gefragte Fähigkeit und doch beherrschen nur wenige Menschen dieses Handwerk. Das ist schwer nachzuvollziehen, da es so unfassbar viele Vorteile im privaten und beruflichen Leben bietet. Aus diesem Grund hat der bekannte YouTuber und Autor Florian Dalwigk regelmäßig Taus
Der Weg zum Python-Profi ein Best-Practice-Buch für sauberes Programmieren
✍ Scribed by Al Sweigart
- Year
- 2022
- Tongue
- German
- Leaves
- 423
- Edition
- 1. Auflage.
- Category
- Library
No coin nor oath required. For personal study only.
✦ Synopsis
Brückenschlag zu einer anderen Ebene der Python-Programmierung
- Wegweiser für fortgeschrittene Python-Coder
- Verbessern Sie Ihren Codierungs-Stil
- Setzen Sie Automatismen und Funktionen effektiv ein
Sie haben ein grundlegendes Python-Programmiertutorial absolviert oder bereits erste Erfahrungen im Programmieren. Was ist der nächste Schritt auf dem Weg zur fähigen, kompetenten Softwareentwickler:in?
Der Weg zum Python Profi ist mehr als eine bloße Sammlung meisterhafter Tipps für das Schreiben von sauberem Code. Es zeigt Ihnen, wie Sie die Kommandozeile bedienen und andere professionelle Tools wie Code-Formatierer, Type Checkers, Linters und Versionskontrolle verwenden können. Al Sweigart führt Sie durch bewährte Praktiken für die Einrichtung Ihrer 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 Ihre Programmierfähigkeiten deutlich verbessern - nicht nur in Python, sondern in jeder Sprache.
Sie werden lernen:
- wie Sie Pythons automatisches Formatierungswerkzeug Black für sauberen Code verwenden
- wie Sie häufige Fehlerquellen erkennen und sie mit Static analyzers aufspüren
- wie Sie die Dateien in Ihren Code-Projekten mit dem Cookiecutter-Template-Tool strukturieren
- erschließen Sie sich funktionale Programmiertechniken wie Lambda- und Funktionen höherer Ordnung
- wie Sie die Geschwindigkeit Ihres Codes mit den in Python integrierten Modulen timeit und cProfi le verbessern können
- wie Sie Ihre Kommentare und Dokumentationsstrings informativ gestalten und wie oft Sie sie schreiben sollten
Natürlich kann kein einziges Buch Sie zu einer professionellen Softwareentwicklerin machen. Aber Der Weg zum Python-Profi wird Sie weiterbringen, wenn Sie lernen, lesbaren Code zu schreiben, der leicht zu debuggen und perfekt pythonisch ist.
✦ Table of Contents
Inhalt
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
1.1.1 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
📜 SIMILAR VOLUMES
Programmieren ist eine extrem gefragte Fähigkeit und doch beherrschen nur wenige Menschen dieses Handwerk. Das ist schwer nachzuvollziehen, da es so unfassbar viele Vorteile im privaten und beruflichen Leben bietet. Aus diesem Grund hat der bekannte YouTuber und Autor Florian Dalwigk regelmäßig Taus
Der leichte Weg zum Python-Experten! Python ist eine weit verbreitete, universell einsetzbare und leicht zu erlernende Programmiersprache und eignet sich daher bestens zum Programmieren lernen! In diesem Buch wird das Programmieren in Python beginnend mit den Grundlagen leicht und verständlich e
<h2><font> Der leichte Weg zum C++-Experten! </font></h2>In diesem Buch wird die Programmiersprache C++, beginnend mit den Grundlagen, vermittelt, ohne, dass dabei Vorkenntnisse vorausgesetzt werden. Besonderer Fokus liegt dabei auf Objektorientierter Programmierung und dem Erstellen grafischer Ober
Der leichte Weg zum Java-Experten Java ist eine der beliebtesten Programmiersprachen der Welt, und das nicht ohne Grund: Java ist besonders leicht zu erlernen, vielfältig einsetzbar und läuft auf so gut wie allen Systemen. Egal ob du Apps für das Smartphone, Computerspiele oder Serveranwendungen sc