Lassen Sie uns über ein sehr wichtiges Thema sprechen, wenn Sie ein großartiger Programmierer sein wollen, und das
heißt Debuggen. Sie sehen, dass niemand perfekte Programme schreibt, es ist ehrlich gesagt unmöglich.
Wir werden immer Fehler machen.
Und Programme werden ständig verbessert.
Wir verbessern unseren Code ständig, da wir immer mehr Fehler finden, weil Programme voller Fehler sind oder was
wir Fehler oder Ausnahmen zur Laufzeit nennen.
Wenn der Code ausgeführt wird, sehen Sie, dass das Auffinden und Entfernen dieser Fehler oder Fehler aus unserem Code als
Debuggen bezeichnet wird.
Und ein großer Teil unserer Zeit als Programmierer ist das Debuggen von Code, egal ob es sich um unseren eigenen Code oder den Code
anderer Leute handelt, und herauszufinden, wieso das nicht funktioniert?
Und die leitenden Entwickler sind wirklich sehr gut im Debugging.
Lassen Sie uns in diesem Video über einige meiner Empfehlungen zum Debuggen und einige bewährte
Verfahren sprechen.
Denken Sie daran, dass Sie mit zunehmendem Code immer besseren Debugging-Code erhalten.
Das Beste, was Sie also tun können, ist, einfach weiter zu üben und weiter Python-Code zu schreiben.
Was sind also einige meiner Tipps?
Nun, zunächst möchten Sie auf jeden Fall etwas LINTANG verwenden, und was begrenzt das, was wir
gleich beim Einrichten unserer Entwicklerumgebung besprochen haben, ermöglicht es uns, einige Probleme mit unserem Code zu erkennen, während wir
codieren.
Zum Beispiel, wenn ich hier NUM plus vier mache und ich bekomme eine rote Unterstreichung und Sie sehen hier, dass die Pie Flakes
Linta bemerkt, bevor ich meinen Code ausführe, dass es eine undefinierte benannte Zahl gibt.
Lintang ermöglicht es uns also, diese Fehler zu finden, bevor wir unseren Code ausführen.
Und wir haben gesehen, dass wir IDs wie Pisar verwenden können, in denen Lanting bereits integriert ist, oder einen erhabenen Text-
oder Visual Studio-Code verwenden und Pakete und Erweiterungen wie Pellant installieren können, um LINTANG tatsächlich in unserem Code zu haben.
Das ist ein wirklich sehr wichtiges Werkzeug.
Als nächstes empfehle ich, immer eine Art ID oder.
Ed, da diese Editoren und IDs, insbesondere diejenigen, die spezifisch für Python sind, wie Pixar, all diese
integrierten Tools für uns zur Verfügung haben, wie zum Beispiel die automatische Formatierung basierend auf Pep 8, erinnern
Sie sich an den offiziellen Styleguide der Python-Community hat?
Es ermöglicht uns, Fehler in unserem Code zu erkennen, indem wir beispielsweise unseren Code hervorheben und formatieren.
So können wir Fehler leicht erkennen, noch bevor wir den Code ausführen.
Schließlich möchten Sie lernen, Fehler zu lesen.
Und das ist etwas, was ich versuche, mit Ihnen zu üben, da wir zum Beispiel Python gelernt haben, wenn
ich es für plus tue, sagen wir hier Kauderwelsch und ich klicke auf Ausführen.
Ich sehe sofort, hey, in Zeile sechs gibt es ein Air in meiner DCPI-Hauptdatei, es gibt einen Typ air und ich sehe hier,
dass ich versuche, es und eine Zeichenfolge hinzuzufügen, damit wir Fehler lesen und verstehen können was meinen Sie.
Vielleicht mache ich so etwas, wenn ich auf Ausführen klicke.
Ich erhalte einen Syntaxfehler.
Und ein mir bekannter Syntaxfehler bedeutet, dass der Python-Interpreter versucht, meinen Code zu lesen, aber was sie gerade geschrieben
hat, ist nicht Python.
Ich habe keine Ahnung, was du tust.
Hier sehe ich, dass beim Scannen des String-Literals das Zeilenende ist, also versuche ich, diesen String zu lesen, und plötzlich
endet das Programm so, wie Sie den String beenden sollten, erinnern Sie sich?
Es ist also wirklich sehr wichtig, diese Airs lesen zu können, und wir haben einige davon in diesem
Kurs besprochen, einige der häufigsten wie Syntaxfehler, bei denen Sie nur etwas schreiben, das
der Python-Interpreter nicht versteht.
Wir haben so etwas wie error, richtig, wo wir eine Variable verwenden, die nicht existiert.
Python versteht das nicht, hey, ich habe keine Ahnung, was ein Name ist, was ist der Wert von name?
Wir haben Dinge wie type air, das heißt, wenn wir den Datentyp nicht übereinstimmen und tun, sagen wir, eine Zeichenfolge plus vier.
Wir haben Dinge wie einen Werter.
Wir haben Dinge wie Kierra, wo wir versuchen, auf einen Schlüssel zuzugreifen, der nicht existiert, oder einen Attributfehler,
wo wir versuchen, auf die Methode des Objekts zuzugreifen, und diese Methode existiert nicht.
Nun, diese Fehler sind etwas, das wir während des gesamten Kurses gesehen haben, und wir werden
noch einige darüber hinaus sehen.
Es gibt ungefähr 15 bis 20 Fehler, die wirklich sehr häufig sind und in 90 Prozent der Fälle auftreten.
Und wenn Sie sich erinnern, können Sie jederzeit die Python-Dokumentation aufrufen, um mehr darüber zu erfahren, aber dies kommt nur
mit der Übung.
Wenn Sie einen Fehler sehen, den Sie noch nie zuvor gesehen haben, empfehle ich, in der Dokumentation
nachzulesen.
Wenn Sie es einmal sehen, erinnern Sie sich normalerweise daran, wann es das nächste Mal auftaucht.
Aber lassen Sie mich Ihnen meine bevorzugte Methode zum Debuggen von Code zeigen.
Und es heißt PDB oder Python Debugger, und PDB ist ein eingebautes Modul in Python hier.
Denken Sie auch hier daran, dass unser eingebautes Modul Teil der Standardbibliothek von Python ist und PDB
der Python-Debugger für interaktive Interpreter ist.
Und Sie können hier darüber lesen, aber lassen Sie mich Ihnen zeigen, was es tut.
Sie sehen, die PTB ist äußerst nützlich, weil sie es uns ermöglicht, mit dem Code zu interagieren. Wenn
wir also früher eine Funktion hatten, sagen wir, wir haben die Funktion add und wir haben Nummer eins, Nummer zwei, und dann gibt
diese Funktion einfach Namwon plus Nummer zwei zurück .
Wenn wir diesen Code zuvor, sagen wir, debuggen wollten.
Und sagen wir, wir fügen vier plus etwas Kauderwelsch hinzu und es gibt uns Luft.
Der erste Schritt, den ich unternehmen würde, wäre, hier einen Druck hinzuzufügen, damit ich sagen könnte, Druck, hey, was
ist los?
Lassen Sie mich Nummer eins und Nummer zwei sehen und was es mir gibt.
Und Drucken ist eine wirklich, wirklich schnelle und einfache Möglichkeit, Ihren Code zu debuggen.
Ich benutze es die ganze Zeit, aber PDB gibt uns einen kleinen zusätzlichen Schub.
Wir können es also so verwenden, wir importieren einfach PDB und anstatt so etwas wie eine Druckfunktion zu verwenden, können wir
einfach sagen lassen Sie mich den Weltraum hier rein, wir können einfach PDB für Python-Debugger sagen und dann sagen Sie set,
trace und trace, I würde sagen, ist die nützlichste Methode, die wir für dieses PDB-Objekt haben, dass wir es
importieren.
Sie sehen, wenn ich die Methode set ausführe.
Es gibt mir jetzt einen interaktiven Python-Debugger, in den ich jetzt Befehle eingeben und meinen Code tatsächlich testen
kann.
Und hier ist jetzt der interessante Teil in dieser PDB, ich bin direkt in Zeile acht, also versuchte mein Code
zu laufen, aber dann pausierte er, sobald er PDB sagte, sagte Trace.
Und jetzt bin ich in dieser Welt und kann testen, was los ist, damit ich tatsächlich sagen kann: Hey Namwon, was ist
das?
Nun, Nummer eins ist für was ist mit Nummer zwei?
Nun, Nummer zwei ist eine Zeichenfolge.
Und ich könnte sagen, oh, ich versuche, dem hier eine Zeichenfolge und ein Ende hinzuzufügen.
Dies funktioniert nicht.
So kann ich auch Fehler erkennen.
Nun, diese interaktive PDB bietet eine Menge nützlicher Dinge.
Also wenn ich hier Hilfe eintippe.
Sie sehen, dass ich Befehle habe, die ich in der PDB verwenden kann, also habe ich eine Menge hier, auf die ich Zugriff habe, von
denen ich annehme, dass sie mich von diesem PDB-Python-Debugger begeistern werden, aber ich habe auch.
Dinge wie.
Sagen wir Liste, mal sehen, was Liste so macht, wenn ich hier Liste eintippe und jetzt ist die Website
wirklich.
Zeigt mir nicht zu viel, kann aber hoffentlich die Liste sehen.
Und ich denke, eine Art Ausgabe, ich sehe, dass ich eine Liste meines Codes bekomme und OK, aber sagen wir, ich weiß nicht genau,
was die Liste macht.
Brunnen.
PDB ermöglicht es uns, Hilfe einzugeben und dann aufzulisten.
Und wenn wir das tun, erhalten wir tatsächlich die Dokumentation, genau wie hier.
Wenn wir zu, sagen wir, Liste gehen.
Mal sehen, lass uns hier eine lustlose Liste machen, es gibt mir die Dokumentation hier drin, also steht Listenquelle
für den Strom.
Rechts.
Es listet also nur den Quellcode auf, den wir geschrieben haben.
Okay, das geht.
Was gibt es noch?
Nun, wir haben auch so etwas wie Step oder kurz S und Step ist wirklich, wirklich cool.
Lassen Sie uns Clear verwenden, um dies nach oben zu bringen, also werde ich Clear sagen, damit alle Brüche gelöscht
werden.
Lass es uns tun.
Lassen Sie uns das ein bisschen größer machen, damit Sie sehen können, wo Sie hingehen, das ist besser, oder?
Jetzt kann ich also tatsächlich so etwas wie Step and Step machen, damit wir zur nächsten Zeile gehen können.
Also noch einmal, wenn wir das ein bisschen größer machen.
Step wird sagen, hey, gehe zu Zeile neun, also lass uns sehen, was passiert, ich werde Step eintippen.
Oh, und ich wurde zweimal erstochen, ein notwendiger Schritt.
Und sieh dir das an, ich gehe zur nächsten Zeile in meinem Mantel und es bekommt mich, hey, du bekommst einen Tippfehler, den Fehler, den wir
bekommen haben.
Also fügen wir hier eine weitere Zeile hinzu.
Nehmen wir an, wir versuchen hier vier plus fünf zu addieren oder vier mit fünf zu multiplizieren
und einer Variablen zuzuweisen.
Wenn ich das unterbreche und es erneut ausführe.
Ich bin jetzt drüben drüben.
Wenn ich T eintippe, erhalte ich einen Namen. T ist nicht definiert, weil ich mich hier in Zeile 8 im Code befinde, aber wir
haben noch eine rote Zeile neun.
Machen wir also einen Schritt.
Und jetzt bin ich auf der nächsten Seite.
Wenn ich es jetzt nicht tue, komme ich fast auf 20, großartig, also kann ich Schritt für Schritt durch den Code gehen, was wirklich sehr
nützlich ist.
Ich habe auch Dinge wie Continue, wodurch ich den Code durchlaufen kann, bis ich etwas zurückgebe,
und ich fortfahre und PDB verlasse und mir das anschaue.
Ich bekomme die ER.
Lassen Sie uns dies noch einmal ausführen, ein weiterer nützlicher Befehl ist a und A gibt mir tatsächlich alle Argumente der aktuellen Funktion, in
der wir uns befinden.
Also schau dir das an.
Ich verstehe alle Argumente, was wiederum sehr nützlich ist.
Es gibt auch den Befehl W.
Das zeigt mir den Kontext der aktuellen Zeile, die es ausführt.
Damit Sie hier sehen, wo wir sind, sind wir in der Anzeige.
Funktion.
Wir haben es mit diesen Argumenten aufgerufen und sind jetzt dabei, diese Zeile auszuführen.
Und dann endlich, während wir darüber diskutieren, in Ordnung, ich glaube, ich sehe endlich, dass
wir eine Nummer haben, wir hätten ihr eine Nummer geben sollen, damit ich jetzt einfach hier raus und einfach auf fünf fixe.
Jetzt kann ich einfach meine PDB entfernen und alles sollte mit meinem Code gut funktionieren.
Fantastisch.
PDB ist also großartig, um Ihren Code durchzugehen und zu debuggen und verschiedene Dinge auszuprobieren. Es erfordert ein
wenig Übung, aber nach einem Tag, in dem Sie nur mit PDB herumspielen, werden Sie wirklich, wirklich gut darin.
Nach diesem Video empfehle ich Ihnen also, PDB zu schreiben und hoffentlich eine ausreichend große Python-Datei zu haben.
Sie können einfach hinübergehen und mit verschiedenen Befehlen experimentieren, indem sie die Hilfe verwenden, die Liste verwenden, um zu sehen, was
Ihnen zur Verfügung steht.
Ich möchte Ihnen noch eine letzte Sache zeigen, also sagen wir, wir gehen zurück zu unserem Code, unsere PDB sagte Trace, ich klicke
auf Ausführen.
Könnte ich so etwas tun, wo ich bemerke, dass ich tippe und alles schreiben muss, mein Code funktioniert, aber könnte ich
Nummer zwei ändern, um jetzt etwas Kauderwelsch zu erreichen?
Mal sehen, ob ich es jetzt als nächstes mache.
Und lassen Sie uns als nächstes diese letzte Zeile ausführen.
Ich komme da rein, kann also auch Variablen hier ändern und Python-Code schreiben, um vielleicht meine Funktionen zu
testen.
Das funktioniert jetzt.
Ich kann testen, hey, was passiert, wenn wir diese Variable auf einen anderen Wert ändern?
Wieder sehr, sehr nützlich.