Transkripte
1. Kurs-Promo: Interessieren Sie sich
sowohl für Cybersicherheit
als auch Python-Programmierung? Wenn die Antwort Ja lautet, sind
Sie bei uns genau richtig. Hi, mein Name ist Alex. Ich möchte Sie zu
meinem ganz besonderen Kurs
Python-Programmierung
für Cybersicherheit begrüßen meinem ganz besonderen Kurs
Python-Programmierung . Nun, das ist ein Kurs, den ich
speziell für Cybersicherheitsexperten und Enthusiasten konzipiert habe. Wer möchte etwas
über Python-Programmierung lernen, aber auf eine Weise, die für die Cybersicherheit
relevant ist. Was genau
bedeutet ein Python-Kurs für Cybersicherheit? Ich
meine einfach
, dass der gesamte
Code, die Programme
und Tools, die wir
in
diesem Kurs gemeinsam entwickeln werden, mit Cybersicherheit zu
tun haben werden. Nun, wenn Sie noch nie in
Ihrem Leben
das Land des Codes geschrieben haben,
wenn Sie in der Welt des Programmierens völlig neu sind, machen Sie sich
keine Sorgen. Ich werde dir alle Grundlagen
des Programmierens beibringen. Und natürlich werde ich
Ihnen die Grundlagen von Python beibringen, wie Variablen
und Datentypen, Kontrollfluss und
Schleifen, Funktionen, Datenstrukturen,
objektorientierte Programmierung, Dateibehandlung und vieles mehr. Im Laufe der Zeit
werden wir auch
verschiedene Arten von
Cybersicherheitstools zusammenstellen , wie z. B. ein Tool zur Überprüfung der
Passwortstärke, Audit-Tool und ein
Verschlüsselungstool Und schließlich werden
wir für
das Klassenprojekt gemeinsam
ein Benutzerregistrierungssystem aufbauen Ich sollte auch erwähnen
, dass dieser Kurs tonnenweise
Quiz-Programmierübungen
beinhalten wird tonnenweise
Quiz-Programmierübungen
beinhalten , um dich zu testen, dich herauszufordern und sicherzustellen, dass
du auf dem richtigen Weg bist Wenn Sie also
die Python-Fähigkeiten in Ihren Lebenslauf aufnehmen möchten , vielleicht versuchen, eine Beförderung
zu erhalten
oder einen neuen Karriereweg einzuschlagen, dieser Kurs
Python-Programmierung für ist
dieser Kurs
Python-Programmierung für
Cybersicherheit genau das Richtige für Sie. Ich hoffe also, dass Sie sich heute
für den Kurs anmelden, und ich hoffe, Sie
auf den Innenstühlen zu sehen.
2. Einführung in Python: Willkommen offiziell
zu den Python-Grundlagen für Cybersicherheitsexperten. Mein Name ist Alex und ich
werde dein Lehrer sein. Der Zweck dieses Videos besteht nun darin , Sie offiziell
zum Kurs willkommen zu heißen und Ihnen
einige Hinweise zu geben,
wie Sie ihn am besten absolvieren können einige Hinweise zu geben,
wie Sie ihn am besten absolvieren Also das Wichtigste zuerst, worum geht es in diesem Kurs
genau? Was meine ich mit Python
für Cybersicherheit? Nun, all die Beispiele, die Tests, die Herausforderungen, die Programmierübungen,
alle, nun ja, meisten von ihnen werden auf relevante
Cybersicherheitsprojekte
zugeschnitten sein . Als Beispiel werden wir Code zum Verschlüsseln von Passwörtern und
Hash-Passwörtern,
zum
Erstellen von Benutzerkonten, zum
Scannen von Ports und dergleichen
schreiben Hash-Passwörtern,
zum
Erstellen von Benutzerkonten, Scannen von Ports und dergleichen Also die Art von Projekten, Tools
oder Aufgaben , die Sie
normalerweise in
einer echten
Cybersicherheitsumgebung ausführen würden , werden
wir in diesem Kurs verwenden Und deshalb ist es ein Python-Kurs
für Cybersicherheit. Wenn Sie also ein
Cybersicherheitsexperte sind und ein wenig
über Python lernen
möchten , mit dem Sie
einige relevante
Cybersicherheitsprojekte oder -tools erstellen
können , ist
dieser Kurs perfekt für Sie. Ich sollte auch erwähnen
, dass, wenn Sie in
Ihrem ganzen Leben noch nie eine Codezeile
geschrieben haben, Sie
völlig blind hierher kommen. Keine Sorge, ich
habe alles für dich. Ich fange
bei den Grundlagen an,
und nach und nach
werden wir uns hocharbeiten , um
anspruchsvollere Programme zu schreiben. Der Kurs ist also grob in etwa
zehn verschiedene Abschnitte unterteilt. Das könnte sich ändern, wenn ich den Kurs
modifiziere und vielleicht
Inhalte hinzufüge oder entferne. Es hängt alles davon ab. Aber wir werden von
vorne anfangen, okay? Was ist Programmieren? Wir werden sehr
einfache Codezeilen schreiben. Und dann,
am Ende des Kurses, werden
wir uns selbst
ein sehr leistungsfähiges
Authentifizierungssystem und auch einen sehr,
sehr mächtigen Passwort-Checker entwickeln ein sehr leistungsfähiges
Authentifizierungssystem und auch einen sehr,
sehr mächtigen Passwort-Checker Das wird das
Projekt für diesen Kurs sein. Und ich kann Ihnen garantieren, dass Sie,
wenn Sie sich auf den Kurs konzentrieren, alle
Übungen und Tests machen.
Ich kann garantieren, dass
Sie am Ende dieses Kurses über das Wissen verfügen, das
erforderlich ist, um einige ziemlich gute Programme zum
Thema Cybersicherheit
schreiben zu können . Nun möchte ich eine Sache
über das Programmieren im Allgemeinen erwähnen , und zwar vor allem, wenn Sie in
Ihrem ganzen Leben noch nie
eine Codezeile geschrieben haben.
Das wird Zeit in Anspruch nehmen, okay? Es wird
eine Weile dauern, bis Sie wirklich kompetent und
fließend mit
einer Programmiersprache umgehen Insbesondere Python
ist im Vergleich zu den anderen
Programmiersprachen relativ einfach . Aber selbst Python
braucht Zeit, okay? also nicht frustriert wenn
Sie am Anfang, in
den ersten Wochen, immer noch Schwierigkeiten haben,
ein paar Codezeilen zu
schreiben , und Fehler machen Es ist nur natürlich. Stellen Sie sich das so vor, als ob Sie
versuchen,
eine echte verbale Sprache zu lernen . Vielleicht versuchst du zu lernen,
wie man spricht, ich weiß nicht, Griechisch oder Finnisch oder
Schwedisch oder was auch immer. Du wirst es nicht einfach automatisch
und sehr schnell
abholen , oder?
Es wird einige Zeit dauern. Es könnte mehrere
Monate dauern, vielleicht sogar bis zu einem Jahr. Am Anfang
wirst du
einfache Dinge wie Guten
Morgen sagen können . Mein Name ist Alex. Aber um dann einen vollständigen
Satz zu formulieren, wird
es einige
Zeit dauern, oder? Du musst herausfinden,
okay,
steht in dieser Sprache das Adjektiv
vor dem Pronomen oder steht das Substantiv vor
dem Verb, weißt du, all
diese Dinge Es braucht Zeit. Am
Anfang werden
Sie also
viele Fehler machen. Es könnte frustrierend werden, aber gib nicht auf, okay? Ich garantiere dir
, wenn du dich konzentrierst, übst
du so viel wie möglich Sie machen die Tests und Herausforderungen,
die ich Ihnen in diesem Kurs
zur Verfügung gestellt habe. Ich garantiere
dir, dass du eines Tages aufwachst und plötzlich merkst, dass, Moment, ich werde tatsächlich ziemlich gut darin
, mit Python zu programmieren. Also, da zu bleiben, ist
nur ein Teil des Prozesses. Die ganze Frustration am Anfang ist nur ein Teil des Prozesses. Bleib dran und ich verspreche
dir, dass du belohnt wirst. Nun, noch ein paar Dinge, die ich ganz schnell erwähnen
möchte Wir werden hier mit
einer bestimmten
Plattform namens
Replet arbeiten hier mit
einer bestimmten
Plattform namens , mach dir keine Sorgen, du
musst nicht dafür bezahlen Es ist völlig kostenlos. Ich werde in den nachfolgenden Videos
etwas später auf Weblte eingehen Aber behalte das einfach im Hinterkopf.
Wenn Sie mit einem Mac, Linux oder Windows arbeiten, können
Sie
diesen Kurs belegen. Und wenn Sie auf Herausforderungen
stoßen oder
etwas unklar ist, können
Sie sich jederzeit an mich wenden. Ich helfe Ihnen
gerne auf jede erdenkliche Weise weiter. Also noch einmal, willkommen zu den Python-Grundlagen für
Cybersicherheitsexperten. Ich hoffe, Sie finden diesen Kurs sehr informativ
und sehr nützlich Und ich hoffe
und glaube aufrichtig , dass
Sie am
Ende dieses Kurses gelernt haben werden, wie
man mit Python programmiert. Nochmals vielen Dank, dass Sie sich angemeldet haben. Und jetzt fangen wir an
3. Wichtiger Hinweis Arbeiten mit Python: Bevor wir mit
dem eigentlichen Kurs beginnen, muss
ich Ihre Aufmerksamkeit auf etwas lenken. Das ist sehr, sehr wichtig. Was die
Anwendung angeht, mit der ich diesen
speziellen Kurs erstellt habe, war
diese Bewerbung voll, okay? Replt ist diese
Plattform, auf der Sie so ziemlich jede Art
von Code aus jeder Programmiersprache
schreiben und damit arbeiten von Code aus Und natürlich funktioniert
Python auf Replate
sehr, sehr gut Also habe ich zunächst Replate verwendet
, um den Kurs zu erstellen. Während dieses Kurses wird also der
gesamte Code, mit
dem ich arbeiten werde auf der
Replet-Plattform geschrieben Der Grund, warum ich mich für p entschieden habe
, war , dass es
drei Hauptkriterien Erstens war die Nutzung
kostenlos. Zweitens ist es
ziemlich einfach zu bedienen. Und drittens ist es eine ziemlich leistungsstarke Plattform , die
so ziemlich jede Art von Code ausführen kann. Leider haben
sie in
den letzten Monaten einige sehr große Änderungen
an der Benutzerplattform vorgenommen . Und insbesondere haben sie
dies getan, weil sie KI
integrieren wollten , was verständlich
ist. Natürlich leben wir
im Zeitalter der KI,
und all diese
Plattformen, wissen Sie, sie wollen
sehr modern erscheinen und, wissen Sie,
das Nächstbeste und eine
der Möglichkeiten, dies zu tun, besteht ,
KI
einfach zu integrieren, was in Ordnung ist Der
Zweck dieses Kurses besteht jedoch
darin , Ihnen die Grundlagen
und Grundlagen von Python beizubringen Wir brauchen also noch keine KI-Hilfe. KI ist fantastisch, wenn
man erst einmal gelernt hat, mit Python zu arbeiten. Und dann
können Sie natürlich KI verwenden, um Sie zu unterstützen. Aber da wir Python
zum ersten Mal
als Anfänger lernen , wird
das für uns nicht funktionieren. Ich werde Ihnen also
zwei weitere Alternativen zeigen, um zwei weitere Alternativen Ihren Python-Code
auf Ihrem Computer
auszuführen. auch hier keine Sorgen, wie ich bereits sagte, in
diesem Kurs
wird der
gesamte Code, den ich schreibe, auf plt sein, aber Sie werden
Ihren eigenen Code entweder auf
Thonny- oder Visual Studio-Code schreiben Thonny- oder Visual Studio-Code Es ist der Code, der
zählt, okay? Die Plattform, auf der
du
den Code schreibst , ist nicht das
Wichtigste, okay? Es gibt so viele andere
Plattformen da draußen. Das
Wichtigste ist der Code. Also statt plt, okay, werde
ich dir zeigen,
wie man mit Thonny arbeitet, was eigentlich meine
empfohlene Option für dich wäre weil es extrem einfach zu
installieren und
extrem einfach zu bedienen ist installieren und
extrem einfach zu bedienen Es ist auch kostenlos und
für Mac und für Linux
für Windows verfügbar Linux
für Also werde ich dir zeigen, wie man Thonny
installiert und dann mit ihm
arbeitet Wenn
Thonny aus irgendeinem Grund nicht für Sie funktioniert,
Sie Thonny nicht mögen, werde
ich Ihnen eine Alternative anbieten, und
zwar Visual Studio Code,
das zwar Visual Studio Code, weitaus
leistungsfähiger als Thonny ist, aber auch ein bisschen Nur um Ihnen
mitzuteilen, dass wir, um mit Visual Studio Code
arbeiten zu können, wenn Sie diesen Pfad einschlagen
möchten, Python installieren
müssen zuerst Python installieren
müssen, bevor wir
mit Visual Studio Code arbeiten können. Wenn Sie mit Thonny arbeiten, müssen
Sie
Python nicht auf Ihrem Computer installieren Nochmals, mach dir keine Sorgen. Ich werde dich durch
alles führen, okay? Zuallererst werde
ich Ihnen im nächsten Video zeigen, wie Sie Thonny
installieren und damit arbeiten Und dann
wird das nächste
Video danach zeigen, wie Sie Visual Studio Code installieren und damit arbeiten
können. Ich werde natürlich auch zeigen, wie Sie Python
herunterladen und auf Ihrem Computer installieren. Also entschuldige ich mich für
dieses kleine Durcheinander. Auch hier hatte ich keine Ahnung, als ich diesen
Kurs ursprünglich erstellt habe Ich hatte keine Ahnung, dass die vielen
Leute die
Benutzeroberfläche komplett
überarbeiten werden Benutzeroberfläche komplett
überarbeiten Also entschuldige ich mich dafür. Aber ich hoffe, dass ich
Ihnen Alternativen gebe, zwei verschiedene Alternativen
werden das wieder wettmachen Wenn Sie also
Fragen oder Bedenken haben, sich gerne an mich wenden. Ich helfe Ihnen
gerne weiter. Sie können entweder die
Nachrichtenfunktion
auf der Plattform verwenden , auf der
Sie diesen Kurs belegen,
oder Sie können
mich auch unter Alex auf labsyba.com Das ist meine E-Mail.
Sie können mich kontaktieren und
um
Hilfe oder Fragen bitten, Ihre Bedenken
mitteilen,
alles, was Sie wissen
möchten oder bei dem Sie Hilfe
benötigen, aber wir helfen Ihnen
gerne weiter. Vielen Dank für Ihre
Aufmerksamkeit in dieser Angelegenheit. Lassen Sie mich Ihnen jetzt zeigen, wie
Sie die Thonny-Anwendung herunterladen,
installieren und damit
arbeiten
4. Wie man Thonny verwendet: Lassen Sie mich Ihnen zeigen, wie Sie Thonny
installieren und verwenden. Es ist wahrscheinlich die
einfachste Benutzeroberfläche
und perfekt, besonders wenn Sie neu in der
Welt von Python sind. Sie müssen also nur zu thorny.org
gehen, oder? Und dann können
Sie hier
die Version für jedes offene
System herunterladen , an dem Sie gerade arbeiten Wir haben für Windows,
wir haben für Mac, Linux. Stellen Sie also sicher, dass
Sie die
richtige Version installieren oder herunterladen. Ich habe
meine bereits heruntergeladen , also lass mich hierher
kommen und ich werde die
Anwendung öffnen, um sie auszuführen, okay? Und ich sage nur für mich
installieren
und dann auf Weiter klicken. Ich akzeptiere die Vereinbarung, klicke auf Weiter, klicke auf Weiter. Wir können ein Desktop-Symbol erstellen, auf Weiter
klicken, Installieren. Dann hast du es da.
Und so installieren Sie Thonny einfach auf Ihrem Computer Lassen Sie mich Ihnen nun genau zeigen,
wie Sie mit
dieser Anwendung Es ist sehr, sehr, sehr einfach. Warten wir, bis es installiert ist.
Okay, es ist installiert. Ich werde auf Fertig stellen klicken. Und jetzt werde ich
weitermachen und das Programm ausführen. Und richtig, ich
bin also auf meinem Desktop. Das ist die Abkürzung. Also mache ich
weiter und lasse Thonny laufen. Und genau hier können
Sie natürlich die Sprache,
die Grundeinstellungen usw. ändern die Grundeinstellungen usw. Ich lasse das einfach so wie sie
sind. Klicke auf Lass uns gehen. Und da hast du es. Also das hier ist im Grunde
die Schnittstelle für Thonny. Auch hier ist es sehr,
sehr, sehr einfach. Sie mich Ihnen nun als
sehr, Lassen Sie mich Ihnen nun als
sehr, sehr schnelles Beispiel
zeigen, wie das funktionieren würde. Ich mache weiter, okay, und tippe Print in Klammern und dann ein sehr,
sehr einfaches Programm,
Hello World. Okay. Und jetzt
führe ich diesen speziellen
Code aus, indem ich
hier auf die Schaltfläche Ausführen klicke, oder du kannst
F 5 auf deiner Tastatur drücken . Ich
werde da reinklicken. Und dann hier unten können
Sie sehen,
dass dies die Ausgabe meines Codes ist. Sie können also natürlich das Aussehen der
Benutzeroberfläche
ändern. Sie können das Shell-Fenster
etwas höher ziehen , wenn Sie möchten. Und Sie können
sich hier auch die Tools ansehen. Okay, du kannst zu den Optionen gehen. Und wenn du möchtest, könntest
du zu Thema und Schrift gehen und
das Thema ändern, oder? Ich persönlich bevorzuge also immer das dunkle Thema. Aber das ist natürlich
völlig subjektiv. Wenn Sie das helle Thema bevorzugen, können
Sie dabei bleiben. Aber ich werde
mich für das dunkle Thema entscheiden. Und natürlich können Sie
auch die Schriftgröße und
die Schriftfamilie Ihres Textes ändern . Wenn Sie möchten, können Sie dies
hier tun, und das war's. Wenn ich also
diese bestimmte Datei speichern möchte ,
muss ich nur hier auf die
Schaltfläche Speichern
klicken. Und dann
müsste ich
nur noch den
Namen dieser Datei eingeben und ich nenne das
eine Beispiel, okay? Und das ist alles.
Es wird es also automatisch als Python-Datei speichern. Und lass mich
das auf meinem Desktop speichern. Und ich werde
jetzt weitermachen, klicken Sie auf Speichern. Und da ist das Beispiel bei
PY, jetzt die Python-Datei. Und natürlich könnte ich
auch eine neue Datei erstellen, indem ich
einfach auf den
Button Writer klicke, auf dem New steht. Und dann, genau
da, habe ich wieder ein neues Fenster für neuen Code, und das ist so ziemlich alles. Es ist also eine sehr, sehr einfache Schnittstelle zum
Ausführen von Python-Code. Eine Frage, die Sie hier haben
könnten,
lautet : Ist es möglich,
das Shell-Fenster auf
der rechten Seite
des Hauptfensters zu platzieren das Shell-Fenster auf
der rechten Seite ? Leider ist das zum Zeitpunkt
der Aufnahme dieses Videos nicht möglich. Ich würde sagen, das ist
wahrscheinlich der einzige Nachteil. Okay, aber das ist nicht
wirklich eine große Sache. Noch einmal Thonny, es ist extrem einfach. Ich werde den
Großteil des Python-Codes ausführen, und Sie sollten keine Probleme
haben mit dieser
speziellen Anwendung zu
arbeiten. Das ist also so ziemlich, wie
man mit der
Thonny-Anwendung arbeitet Danke fürs Zuschauen.
Wir sehen uns in der nächsten Klasse.
5. Arbeiten mit Visual Studio Code: Zeigen Sie Ihnen, wie Sie
den Visual Studio Code installieren können. Die Sache mit
Visual Studio Code ist, dass
Sie
Python zuerst auf Ihrem Computer installieren müssen, um damit arbeiten Sie
Python zuerst auf Ihrem Computer installieren müssen, um damit zu können. Gehen Sie also als Erstes zu python.org, und Sie können hier
die Version
für Ihren Computer herunterladen die Version
für Ihren Ich verwende Windows, also werde ich mich einfach für Python 3.140 entscheiden Und ich werde jetzt
weitermachen und die Anwendung
einfach speichern Es ist installiert. Also genau hier, ich werde es öffnen
und einfach installieren. Also, sehr, sehr
wichtig, okay? Das erste Fenster hier, bitte kreuzen Sie diese
beiden Kästchen an, okay? Verwenden Sie also Administratorrechte
bei der Installation von Pi Dot X. Und dann vor allem den Pfad
add python.x2 Okay? Sie möchten
diese beiden Kästchen ankreuzen, und jetzt
klicke ich auf Jetzt installieren, dann auf S, und das ist
so ziemlich alles, was Sie tun müssen. Bei der Installation von Python
auf Ihrem Computer. Ich werde einfach
warten, bis das installiert ist. Sollte nicht zu
lange dauern, und da ist es. Okay, also werde
ich auf Schließen klicken. Und jetzt können Sie auf Visual Studio.com zu
Visual Studio-Code wechseln Studio.com zu
Visual Studio-Code Hier finden Sie die verschiedenen Versionen
für Visual Studio Code. Wir haben für Windows, wir haben für Mac. Und natürlich
haben wir auch für Linux. Jetzt habe ich die Visual
Studio Code-Anwendung bereits heruntergeladen, also ist sie genau hier. Also werde ich
jetzt weitermachen und es installieren. Also werde ich die Vereinbarung
akzeptieren. Klicken Sie auf Weiter und
erstellen Sie natürlich ein Desktop-Symbol. Ich werde das
Kästchen ankreuzen, auf Weiter
klicken, auf Installieren klicken.
Und da ist es. Auch hier sollte die Installation nicht zu
lange dauern , normalerweise
nur ein paar Sekunden. Und da ist es, okay, also mache ich
gleich weiter, klicke auf Fertig stellen und es
sollte automatisch genau hier starten. Okay, das könnte also das
allererste sein, was du siehst. Wenn Sie andere Fenster sehen, meiner Meinung nach in den meisten Fällen
daran, dass ich Visual
Studio Code
bereits zuvor installiert habe . Normalerweise sollten Sie, wenn Sie
es zum
allerersten Mal installieren , ein KI-Fenster oder
etwas Ähnliches sehen .
Schließ es einfach. Wenn Sie hier ein anderes
Fenster haben, können
Sie einfach auf
Don oder Exito Window klicken, oder? Das ist einfach das, wonach
wir suchen. Wir suchen hier nach einem
leeren Fenster. Okay? Das ist der
Ausgangspunkt. Das erste, was
Sie tun möchten, ist,
dass Sie hier
zu Ihren Erweiterungen gehen und
die Python-Erweiterungen installieren möchten , die genau hier sein werden, Python. Also werde ich
jetzt weitermachen und auf Installieren klicken. Und da ist es. Also
wird es installiert. Es sollte nicht zu lange dauern, nur ein paar Sekunden,
und da ist es. Es wurde also erfolgreich
installiert. Nochmals, ich werde jetzt
weitermachen und dieses Fenster
schließen, oder? Und wenn ich jetzt einen Python-Code ausführen
möchte, möchte ich
nur hier zu File
gehen. Okay, ich kann auf Neue Datei klicken. Und weil wir gerade die Python-Erweiterung
installiert haben, haben
wir jetzt den
Python-Dateilink genau hier. Also werde ich da reinklicken und mir das jetzt ansehen, okay? Ich werde den
sehr einfachen Codedruck eintippen. Hallo Welt. Okay? Jetzt mache ich gleich weiter und klicke auf diese
Schaltfläche, um die Datei auszuführen. Da wir
diese Datei jedoch zum ersten
Mal ausführen , haben wir sie noch nicht
gespeichert. Wir müssen es
zuerst speichern, okay? Wir müssen ihm einen Namen geben. Also nenne ich das
einfach Test, okay? Testen Sie, klicken Sie auf Speichern. Und jetzt können Sie sehen,
dass es der Testpunkt PY ist. Okay, also hier unten, richtig? Das ist das Terminal und du bekommst vielleicht eine Art
Fehlermeldung, die dir sagt,
oh, wir können diese Datei nicht öffnen, weißt
du, was auch immer. Das ist in Ordnung. Gehen Sie einfach wieder zurück und
klicken Sie auf die Python-Datei ausführen. Und jetzt können Sie sehen, dass
es tatsächlich funktioniert. Es läuft. Hier
kannst du Hello World sehen. Lassen Sie mich sogar eine weitere Zeile
hinzufügen, nur um es zu beweisen. Also werde ich Hallo drucken
und sagen, ich mag VS-Code. In Ordnung, lassen Sie uns weitermachen und das Programm erneut
ausführen. Und jetzt können Sie hier
sehen, dass Hello World steht, ich mag VS-Code Hier oben haben Sie also
Ihr Hauptfenster, in dem Sie
Ihren Code schreiben werden , Ihre Editor-Oberfläche,
und
hier unten befindet sich Ihr Terminal. Wir können jedoch das
Aussehen der Oberfläche ändern. Eine Sache, die ich normalerweise gerne
mache, okay,
wäre, hier rüber zu gehen, damit wir die
primäre Seitenleiste umschalten können Ich werde es ausschalten, die primäre Seitenleiste
entfernen, die primäre Seitenleiste
entfernen, sodass wir jetzt die
Benutzeroberfläche haben, die das gesamte
Fenster einnimmt Aber genau
hier unten im Terminal klicke
ich mit der rechten Maustaste und
sage „Gehe zu“,
und dann verschiebe ich es in
die sekundäre Seitenleiste Das ist nur meine
persönliche Präferenz. Ich möchte
das Terminal rechts neben meinem
Hauptfenster haben , okay? Wenn
Sie es jedoch vorziehen, es
unter Ihrem Hauptfenster zu haben, ist
das natürlich völlig in Ordnung. Das ist völlig subjektiv. Aber so gefällt es mir. Also da hast du's.
So können Sie Ihren Code mit VS Studio ausführen. Auch hier haben Sie Optionen
, wenn Sie möchten. Sie können hier zu
Datei gehen und eine neue Datei erstellen. Sie können jede
Python-Datei öffnen, die Sie gespeichert haben. Sie können
hier zu den Einstellungen gelangen. Sie können hier zu den Themen wechseln und dann natürlich das Farbthema
ändern. Du kannst Kimb Dark wählen oder, du weißt schon, das Aussehen ändern Es liegt ganz bei dir. Aber so können
Sie mit dem VS in
der Visual
Studio Code-Anwendung arbeiten . Es ist etwas
komplizierter als Thonny, aber es ist natürlich
leistungsfähiger Es liegt also ganz bei
Ihnen, welche
dieser beiden Anwendungen
Sie bevorzugen.
Sie können wählen, mit
welcher Sie arbeiten möchten Also danke fürs Zuschauen und wir sehen uns
in der nächsten Klasse
6. Hallo Welt: Okay, jetzt, wo wir Thonny eingerichtet
haben, oder vielleicht arbeiten Sie mit Visual Studio Code.
Es spielt keine Rolle Es ist Zeit für uns,
unser allererstes Programm zu schreiben. Und dieses Programm wird
ein sehr einfaches Programm sein , die
Worte Hallo Welt ausdrucken
wird. Ordnung? Also sieh dir
das an, okay? Ich sage Druck, Leerzeichen und dann Klammern in
doppelten Anführungszeichen. Hallo Welt. Okay. Und dann
klicke ich auf die Schaltfläche Ausführen. Und da ist es Hello World. Sehr, allererstes
Programm mit Python. Jetzt möchte ich das für dich aufschlüsseln
. Siehst du,
in Python oder in jeder anderen
Programmiersprache wirst
du immer eingebaute Funktionen
haben , die etwas für dich tun In diesem Fall ist print eine eingebaute Funktion, die bereits in Python codiert wurde Wenn Sie also die Funktion
print verwenden, weiß Python, dass, oh, okay, Sie etwas
ausgeben wollen, oder? Das ist es also, was Print macht. Und jetzt ist die Sache so, wann immer Sie Text ausdrucken möchten, müssen
Sie ihn immer
in doppelten Anführungszeichen haben. Nun, tatsächlich gibt es bestimmte Zeiten, in denen Sie möglicherweise nicht unbedingt doppelte
Anführungszeichen benötigen. Darauf kommen wir noch zurück Mach dir keine Sorgen. In den meisten Fällen sollten
Sie
den Text jedoch in doppelte
Anführungszeichen setzen, um auf Nummer sicher zu gehen. Wenn ich nun die Anführungszeichen
entfernen
und das Programm ausführen würde, sehen Sie, dass wir am
Ende ein Problem haben. Es ist ein Syntaxfehler,
weil
Python im Moment nicht versteht,
was vor sich geht. Wo sind die doppelten
Anführungszeichen? Außerdem muss
Ihr Text in Klammern stehen. Wenn ich also hier die doppelten
Anführungszeichen
ohne die Klammern hinzufügen würde, versuchen wir, das Programm erneut auszuführen
und
zu sehen, was passiert. Und dann
können Sie wieder sehen, dass
es immer noch heißt, dass die Klammer
fehlt Wenn es also darum geht,
bestimmte Funktionen auszuführen, gibt es bestimmte Regeln,
die Sie befolgen müssen also Text
ausdrucken, möchten
Sie ihn in
Klammern und in
doppelten Anführungszeichen haben Klammern und in
doppelten Anführungszeichen Also werde ich das Programm noch einmal ausführen , und da ist es Hello World funktioniert. Ich werde
jetzt weitermachen und
den Assistenten schließen . Und da ist es. Okay. Lass uns weitermachen. Lass uns das ein
bisschen interessanter machen. Was wäre, wenn ich Hello World, sagen
wir, fünfmal
ausdrucken wollte , richtig? Jetzt könnte ich natürlich
einfach einfach kopieren, okay? Neuer Zeilentext,
einfügen , einfügen, fünfmal einfügen, okay? Nun, wenn ich auf dem
Programm wäre, bitteschön. Hallo Welt, hallo Welt, hallo Welt, hallo
Welt, hallo Welt. Aber sieh dir das an. Lassen Sie mich stattdessen
versuchen, zweimal auszudrucken. Und anstatt
sie in verschiedenen Zeilen zu haben, lassen Sie mich sie in genau
derselben Zeile platzieren. Also drucken wir Hello World, drucken Hello World, starten und jetzt haben wir ein Problem. Das Problem, das wir hier haben ,
ist: Hey, was ist los? Python
versteht nicht, wenn Sie mehrere Funktionen
in derselben Zeile
haben. Und das ist irgendwie universell für alle
Programmiersprachen, okay? Wann immer Sie
mehrere Funktionen aufrufen, möchten
Sie sie
in separaten Zeilen haben. Dies ist die ideale
Art, Code zu schreiben. Denn wenn ich
darüber nachdenke, okay, wenn du startest oder wenn das Programm es dir
erlaubt,
erlaubt dir die Sprache ,
mehrere Funktionen
in exakt denselben
Zeilen auszuführen und all das. Ihr Code könnte am
Ende sehr,
sehr schwer zu lesen sein, insbesondere für andere Entwickler. Wenn Sie es
also in separaten Zeilen haben, wird
es sauberer und ansehnlicher Und das Beste ist, dass Ihre
Programmiersprache, in diesem Fall
Python, verstehen wird, was sie versuchen zu tun. Okay, es gibt noch eine andere Sache, die
du beachten musst. Okay, ich werde es ein
bisschen kompliziert machen . Ich werde
hier etwas erstellen, das
als Variable bekannt ist , okay? In diesem Fall rufe ich
meinen variablen Text auf. Entspricht. Und jetzt, in
diesem Fall, Hallo Welt Text ist also eine
Variable. Eine Variable. Du kannst dir eine Variable
im Grunde als etwas vorstellen , das eine bestimmte
Art von Wert
speichert , okay? Es muss nicht immer
Text sein, es können auch Zahlen sein.
Es könnte alles Mögliche sein. In diesem Fall ist es im
Moment ein Text. Es ist ein Text
, der Hallo Welt sagt. Der Variablentext hat also
den Wert Hello World. Also, wenn ich hier reinkommen
und sagen würde, in Klammern
drucken, Text Was glaubst du,
wird passieren? Nun, es wird Hello World
heißen, weil wir
der Variablen Text
den Wert Hello World zugewiesen haben. Aber beachten Sie, wir hatten ihn nicht
in doppelten Anführungszeichen. Das liegt daran, dass wir
Python sagen, dass, Hey, Python, wir möchten, dass du den
Wert des Variablentexts ausdruckst. Wenn ich hierher käme und stattdessen Text mit doppelten
Anführungszeichen
versehen würde, was
würde Ihrer Meinung nach gedruckt werden? Nun, es wird Text
ausdrucken. Okay? Wenn Sie also die
Werte Ihrer Variablen ausdrucken
möchten, müssen
Sie
die Variable nicht in doppelte
Anführungszeichen setzen Also werde ich weitermachen. Entfernen Sie jetzt
die Anführungszeichen, führen Sie das Programm erneut aus und
lassen Sie es Hello World laufen. Wir
werden uns also natürlich viel eingehender mit diesen Funktionen und Variablen und ähnlichen
Dingen Aber ich wollte
Ihnen nur einen sehr kleinen Ausschnitt
davon geben , was Sie erwartet, und Ihnen
natürlich ermöglichen,
Ihr allererstes
Programm mit Python zu schreiben Ihr allererstes
Programm mit Python Im Laufe des Kurses werden
Sie also etwas mehr
über die Regeln der
Python-Programmierung lernen , wann Sie
Ihren Text in doppelte
Anführungszeichen setzen sollten ,
wann Sie Anführungszeichen verwenden
sollten und so weiter Wir werden
viel, viel tiefer gehen. Aber das war's für das Schreiben
unseres allerersten Programms. Danke fürs Zuschauen.
Wir sehen uns in der nächsten Klasse.
7. Datentypen – Einführung: Willkommen offiziell zum
allerersten Hauptabschnitt des eigentlichen
Python-Kurses. Und hier werden
wir
über Variablen und Datentypen sprechen . Hören Sie, ich garantiere Ihnen, dass unabhängig davon welche Programmiersprache
Sie lernen möchten, dies normalerweise
der allererste Abschnitt sein wird , denn im Mittelpunkt jedes Programms, egal wie einfach
oder fortgeschritten
es ist, wird es sich
um einige Daten drehen, seien es Zeichenketten
oder ganze Zahlen, Sie werden Daten in jedem
Programm haben In diesem Abschnitt werden
wir also über die verschiedenen
Arten von Daten
sprechen, die Wir werden auch über die
Mobbing-Operationen sprechen. Sagen wir zum Beispiel,
Sie wollen sagen, dass etwas nicht wahr oder falsch ist,
solche Sachen Und dann natürlich die
arithmetischen Operatoren, okay? Wie addiert,
subtrahiert, multipliziert, vide in Python, grundlegende Mathematik, all
das werden
wir in diesem Abschnitt lernen Dann, am
Ende des Abschnitts,
gibt es natürlich eine Programmierübung , die Sie versuchen sollen Gebt es allen. Mach dir keine Sorgen. Wenn Sie es nicht lösen können, werde
ich Ihnen auch
die Lösung anbieten. Herzlichen Glückwunsch.
Wir sind dabei, unsere Reise in die Welt
von Python zu beginnen. Lass uns beginnen.
8. Arbeiten mit Saiten: Nun, willkommen zurück.
Lassen Sie uns nun etwas mehr Zeit damit verbringen, über Saiten zu
sprechen. Bisher haben wir mit
der Hello World-Zeichenfolge gearbeitet, und ich habe gesagt, dass
Sie beim Umbrechen Ihres Textes normalerweise
doppelte Anführungszeichen verwenden möchten. Das ist jedoch nicht immer der Fall. Standardmäßig wird
Ihr Text mit doppelten
Anführungszeichen umschlossen . Sie können jedoch
tatsächlich wegkommen,
indem Sie einfache Anführungszeichen verwenden. Lassen Sie mich
jetzt einfach hierher gehen und das bearbeiten. Ich verwende einfache
Anführungszeichen. Ich drücke auf Ausführen und Sie können sehen,
dass es einwandfrei funktioniert. Sie müssen also nicht immer doppelte Anführungszeichen
verwenden. Die natürliche Frage, die
Sie sich hier stellen könnten, ist Okay, wann verwenden wir Single? Wann verwenden wir das Doppelte? Spielt es wirklich eine Rolle?
In den meisten Fällen hängt es wirklich von
Ihren persönlichen Vorlieben ab, ob Sie ein Benutzer mit
einfachen Anführungszeichen
oder mit doppelten Anführungszeichen sind . Standardmäßig neigen die meisten
Programmierer dazu, doppelte Anführungszeichen
zu Und es gibt Fälle, in denen
Sie sogar beide in
derselben Zeichenfolge
verwenden könnten beide in
derselben Zeichenfolge
verwenden Was
wäre zum Beispiel, wenn ich etwas
sagen wollte , wie er
gesagt hat, Hallo, richtig? Lassen Sie mich jetzt einfach
rübergehen und sagen, dass er Kremer gesagt hat Und ich werde Hallo sagen. Wie könnten wir das erfolgreich
ausdrucken? Denn wenn wir jetzt auf
Ausführen klicken würden
, würden wir
eine Fehlermeldung erhalten, okay? Wir müssen diese Texte,
diese Buchstaben in
Anführungszeichen setzen Aber wie gehen wir dabei vor? Nun, wir könnten das machen. Ich könnte jetzt hier drüben gehen und ein einzelnes Anführungszeichen
hinzufügen. Oh, tut mir leid, es muss drinnen sein. Also zuerst die einfachen
Anführungszeichen, okay? Und jetzt zu den eigentlichen
Worten, mit denen er Hallo gesagt hat Ich werde hier die
doppelten Anführungszeichen
verwenden , um das
genaue Wort Hallo selbst einzuschließen. Und wann auch immer, das ist in
Programmiersprachen ziemlich üblich, okay? Wann immer Sie ein
öffnendes Anführungszeichen haben, möchten
Sie auch ein schließendes
Anführungszeichen haben. Also werde ich genau dort
das einfache
Anführungszeichen hinzufügen . Und wenn ich jetzt auf Ausführen klicke, können
Sie sofort sehen,
dass es tatsächlich funktioniert. Wir könnten genau das Gegenteil tun. Ich könnte mit einem
doppelten Anführungszeichen beginnen, okay? Und dann komme ich jetzt
hierher, Hallo in die
einfachen Anführungszeichen
und dann in die schließenden
doppelten Anführungszeichen, renne, und du kannst sehen, dass es einwandfrei
funktioniert. Was aber, wenn ich
sehr lange Saiten haben wollte, oder? Also ich habe meinen Ipsum
generto hier drin. Also lass mich einfach diesen ersten
Absatz hier drüben holen, okay? Verstanden, komm her. Jetzt könnte ich tatsächlich alles
, so groß wie es ist, in die maximale Anzahl von
Anführungszeichen setzen, auf Ausführen klicken und
es wird einwandfrei funktionieren. Aber was wäre,
wenn ich tatsächlich
etwas Platz schaffen wollte
, also zum Beispiel hier etwas Platz haben wollte. Ich komme jetzt hierher
und füge etwas Platz hinzu, oder? Jetzt ist alles
irgendwie unorganisiert. Ich klicke auf Ausführen und jetzt erhalten wir eine Pfeilmeldung Es funktioniert nicht
mehr, weil Python den Abstand zwischen
den Textzeilen
nicht verstehen kann. Hier kommen also die dreifachen
Anführungszeichen ins Spiel. Also sieh dir das an, okay. Ich
füge eins, zwei, drei hinzu. Okay. Ups, das tut mir leid
. Das sind drei Okay. Und natürlich komme
ich jetzt
hierher und füge die letzten drei
Anführungszeichen hinzu. Und wenn ich jetzt auf Ausführen klicke und los geht's, kannst du
sehen, dass es tatsächlich funktioniert. Es gibt also bestimmte Fälle
, in denen Sie vielleicht
dreifache Anführungszeichen verwenden möchten , wenn Sie einen ganz
bestimmten Abstand haben. Es
wird normalerweise auch für
Dokumentation, das Schreiben
von Codezeilen und dergleichen verwendet. Dort würden Sie das dreifache Anführungszeichen
verwenden. Jetzt könnten wir auch
Zeichenketten kombinieren. In Ordnung. Also als Beispiel, lass es
mich dir schnell zeigen, lass mich
hier eine neue Variable erstellen und X sagen, okay? Ist gleich, und dann in
doppelten Anführungszeichen sage
ich Hallo. Okay? Und dann könnte ich eine
zweite Variable erstellen, Y entspricht der Welt. Okay. Und jetzt, wenn ich beide
kombinieren wollte, könnte
ich sagen, in Klammern drucken,
ganz einfach, X plus Y. Wenn ich
jetzt auf
Ausführen klicke, hast du es Hallo Welt. Aber wenn wir das Leerzeichen
zwischen Hallo und Welt hinzufügen
wollen, kann
ich
nur das Leerzeichen
bei Hello hier hinzufügen. Also habe ich das Leerzeichen
nach dem O hinzugefügt, klicke auf Ausführen. Du hast Hello World,
oder ich könnte das
Gegenteil tun und einfach ein
Leerzeichen am Anfang von W hinzufügen, auf Ausführen
klicken und los geht's, du hast genau das gleiche Ergebnis. Lassen Sie uns das jetzt ein
bisschen
ausgefeilter machen . Dieses Programm ist nur ein
bisschen ausgefeilter. Ich werde Ihnen eine
neue Funktion namens Eingabe vorstellen . Bisher haben wir mit Druck
gearbeitet. Lassen Sie mich nun
Ihren Beitrag vorstellen. Eingabe ist also im Grunde
eine Funktion, die den Benutzer
auffordert,
etwas anzugeben, okay? Also werde ich Eingabe sagen. Und dann werde
ich in Klammern sagen, bitte
etwas sagen. Okay. Also, wenn ich renne,
tut mir das leid. Wenn ich den Befehl ausführe, kannst
du
jetzt sagen bitte
etwas,
und wenn ich jetzt sage, Hallo, mein Name ist Alex und ich drücke Enter, passiert
nichts, okay? Weil unser Programm den Benutzer
lediglich
auffordert ,
etwas zu sagen, und das war's. Es hat nichts mit dem zu
tun was der Benutzer tatsächlich gesagt hat. Um das ein
bisschen weiter zu machen, werde
ich wieder hier reingehen. Okay. Lassen Sie uns das entfernen, lassen Sie uns eine neue Variable
erstellen. Ich sage Benutzerantwort. Das wird der
Name meiner Variablen sein. Und übrigens, lassen Sie mich ganz schnell etwas
sagen. Es ist eine gute Etikette, eine gute
Programmieretikette. Wann immer Sie
Namen für Ihre Variablen oder
Funktionen erstellen und zwei Wörter
miteinander kombinieren, ich
in diesem Fall gerade Benutzer Das zweite Wort, der erste Buchstabe,
sollte normalerweise in Großbuchstaben geschrieben werden. Deshalb ist das R für Antwort hier groß geschrieben.
Ich meine nur, okay? Also behalte das einfach im Hinterkopf. Also verwende eine Antwort gleich, okay? Und ich werde Input sagen. Und jetzt werde
ich in Klammern sagen, bitte
etwas sagen. Okay? Aber ich werde hier
runterkommen. Ich werde jetzt die
Druckfunktion in Klammern verwenden, ich werde
Benutzerantwort sagen. Das ist es. Ziemlich einfach.
Ich mache jetzt gleich
weiter und
führe den Befehl aus. Es heißt, sag bitte etwas, also werde ich sagen,
mein Name ist Alex. Drücken Sie die Eingabetaste und los geht's. Jetzt heißt es,
ich heiße Alex. Ihnen wurde also erfolgreich eine neue Funktion vorgestellt,
bei der es sich
um Eingaben handelt, bei denen
der Benutzer aufgefordert wird , etwas einzugeben. Wir haben darüber gesprochen, wie man
das Maximum an einfachen Anführungszeichen, das
Maximum an doppelten Anführungszeichen
sowie die dreifachen Anführungszeichen verwendet. Ich habe Ihnen auch gezeigt, wie wir
Zeichenketten
tatsächlich kombinieren können , indem wir
mehrere Variablen erstellen und sie einfach mit dem Plus-Operator
kombinieren. Allmählich, allmählich werden
wir also immer besser darin,
mit Python und Strings umzugehen. Also danke, dass du dir
das Video angesehen hast, und natürlich sehe
ich dich in
der nächsten Klasse.
9. Andere Arten von Variablen: Schauen wir uns nun eine
andere Form des Datentyps an. Bisher haben wir
mit Zeichenketten gearbeitet, oder? Aber jetzt werfen wir einen
Blick auf Fließkommas und Ganzzahlen, auch einfach
als Zahlen bekannt. In Ordnung. Also lassen Sie uns weitermachen und dieses Programm
entfernen und lassen Sie mich zunächst eine Variable
erstellen, die
X gleich vier Okay? Und dann ist
Y, sagen wir, 6,0 Der offensichtliche Unterschied
zwischen diesen beiden besteht nun darin, dass X
kein Dezimaltrennzeichen hat Warum hat Y die
6,0? Alles klar? Lassen Sie mich das sogar
etwas vernünftiger machen. Lass es uns 6.3 machen, nur
als Beispiel, oder? In diesem Fall
wäre y also ein Fließkomma, wäre y also ein Fließkomma weil es
einen Dezimalpunkt hat, während vier die Ganzzahl ist. Also, wenn ich
jetzt weitermachen und
X plus Y drucken würde und mein Programm starte. Sie können sehen, dass wir
die Nummer 10,3 bekommen werden. Ziemlich einfach, richtig. Wir könnten jedoch
bestimmte Dinge tun ,
wie zum Beispiel, wenn Sie 10,3
als Gleitzahl konvertieren möchten, wenn Sie
sie in eine Ganzzahl umwandeln möchten, könnten
wir einfach eine neue Funktion
namens Integer-Funktion
verwenden namens Integer-Funktion Also, was ich hier
machen werde ist innerhalb dieser ersten Klammer, ich werde eine weitere
Klammer öffnen und INT hinzufügen Ordnung, also INT tut mir leid.
Das tut mir leid WENN NICHT. Okay, INT hier ist also eine Funktion, die für Integer
steht, oder? Und da wir die Integer-Funktion
geöffnet haben
, müssen
wir sie natürlich auch schließen. Lassen Sie mich also die
schließende Klammer hinzufügen. Und wenn ich jetzt mein Programm ausführen würde, können
Sie sehen, dass es
aufgrund der
Integer-Funktion INT 10.3 in 10
umgewandelt hat aufgrund der
Integer-Funktion INT Dies war das erste
Mal, dass wir
eine Funktion innerhalb einer
anderen Funktion hinzugefügt haben eine Funktion innerhalb einer
anderen Funktion Zuerst haben wir die
Druckfunktion und dann innerhalb
der Druckfunktion haben
wir die Integer-Funktion. Das ist also eine
Sache, die Sie
beachten sollten , wenn es
um Python-Programmierung geht. Sie können eine Funktion innerhalb einer anderen
Funktion haben, und tatsächlich können
Sie drei,
vier Funktionen anstelle einer anderen
haben, solange die
Hierarchie korrekt ist. In diesem Fall kann ich im
Moment nicht zulassen, dass die Integer-Funktion
zuerst eingegeben und dann gedruckt wird.
In der Tat, weißt du was? Lass es uns versuchen, okay? Warum nicht? Ich werde
jetzt weitermachen. Drucken, okay? Und dann INT, okay,
was wird passieren? Was wird passieren?
Ich werde auf Ausführen klicken. Und da hast du's. Also, obwohl es ziemlich gut war, hat
es nicht wirklich funktioniert. Ich meine, wir haben X plus Y bekommen. Wir haben die richtige
Antwort bekommen, nämlich 10,3 Aber leider wurden die Ergebnisse nicht in eine tatsächliche
Ganzzahl umgewandelt Also ignorierte Python im Grunde
den allerersten Teil, nämlich
die Integer-Funktion und sagte dann einfach:
Okay, drucke X plus Y. Und dann sagte
er uns natürlich, dass, Hey, es gibt irgendein
Problem mit der Syntax Seien Sie also vorsichtig,
wenn Sie
versuchen , Funktionen innerhalb
einer anderen Funktion hinzuzufügen Es muss eine Hierarchie geben
und sie muss korrekt sein Also lassen Sie uns den Lauf
noch einmal rückgängig machen und los geht's. Also, wenn ich die Ergebnisse
in eine Gleitzahl
umwandeln wollte , könnte
ich das auch tun. Also zum Beispiel, richtig, wenn ich das Y hier auf sagen
wir fünf ändere, richtig? Aber statt neun, was hier die
naheliegende Antwort wäre, wollte
ich, dass es 9,0 ist. Ich werde die
Integer-Funktion hier in Float ändern. Das ist also das Gegenteil, oder? Also sieh dir das an. Ich werde auf
Ausführen klicken und los geht's. Es ist jetzt 9,0. Wissen Sie, es besteht eine gute
Chance, dass Sie die Integer- oder
Float-Funktion in Ihren Programmen nicht
verwenden müssen . Es hängt alles von der Art
der Programme ab, die Sie erstellen werden. Dennoch ist
es wichtig, diese Konzepte zu verstehen
, die Sie hinzufügen können. Sie können einen
Datentyp in einen anderen konvertieren, und Sie können auch
eine Funktion innerhalb einer anderen haben . Also danke fürs
Zuschauen. Wir sehen uns in der nächsten Klasse.
10. Boolesche Operatoren aktualisiert: Ein weiterer Datentyp, den Sie kennen
sollten die Bian-Operationen oder
die booleschen In der Regel werden
es zwei davon sein. Sie haben entweder wahr oder falsch, und das hängt weitgehend
vom Ergebnis bestimmter
Operationen ab. Als Beispiel hier habe ich die Variable
X gleich fünf, die Variable Y gleich zehn Jetzt habe ich
hier meine
allererste Druckfunktion, die besagt, dass X gleich Y ist. Die zweite ist X ist kleiner als Y. Bei Bollans gibt
es also
entweder wahr oder falsch Nun, was
denkst du wäre die Antwort für den allerersten Druck Nun, die Antwort wäre
offensichtlich falsch weil fünf
nicht gleich zehn ist, während die zweite wahr
sein sollte,
weil X tatsächlich kleiner als Y ist . Wenn ich
also jetzt weitermache
und dieses Programm starte, können Sie sehen, dass wir falsch und wahr
haben Das sind alles, was wir als
die Bollan-Werte
oder die Bollan-Operatoren bezeichnen , und wir verwenden sie normalerweise immer dann,
wenn wir versuchen, Schleifen oder
bedingte
Anweisungen zu erstellen Mach dir keine Sorgen. Wir werden im nächsten Abschnitt
darüber sprechen. Aber normalerweise
möchten wir vielleicht ein Programm schreiben, das überprüft
, ob etwas passiert
ist,
und dann, wenn es
passiert ist, das heißt, wenn es wahr ist, dann etwas unternimmt. Oder wir können auch sagen, wenn
das nicht passiert ist, also wenn es falsch ist, dann tu etwas anderes. Wir
werden also etwas später
Bullan-Operatoren und
Werte verwenden , aber die Sache booleschen Werten und Operationen
ist, dass sie mit
Vergleichsoperatoren wie
„gleich
ist gleich“ funktionieren Vergleichsoperatoren wie und so weiter Aber wir haben auch das, was wir die logischen Operatoren
nennen. Logische Operatoren
wären Dinge wie N oder nicht. als Beispiel Lassen Sie mich Ihnen als Beispiel hier ein anderes
Programm geben. Lassen Sie mich zunächst
sagen, dass A wahr ist. Okay? Und dann ist B gleich falsch Bitte beachten Sie übrigens, dass das Wahre und das Falsche
hier keine Zeichenketten sind Und es sind keine Zeichenketten weil Sie sehen können,
dass
es mit wahr beginnt, es beginnt mit einem großen
T. Und mit falsch
fängt es mit dem großen F Python
weiß
also automatisch,
dass Sie es hier
mit Goldbarren zu tun haben Wenn ich hier also
eine Druckfunktion schreiben wollte , die so etwas wie, sagen
wir, A und B sagt , lass mich eine weitere schreiben, print Sagen wir A oder B, und beim letzten Ausdruck sage
ich, sagen
wir nicht A. Was glaubst du,
werden die Antworten auf die drei sein Wenn
Sie es mit
logischen Operatoren zu tun haben und zwei oder mehr Werte
vergleichen, müssen in der Regel logischen Operatoren zu tun haben und zwei oder mehr Werte
vergleichen, alle
wahr sein , wenn Sie die Anweisung und
verwenden Wenn einer von ihnen falsch ist, dann wird die Antwort falsch sein, okay? Das Gegenteil ist mit. Wenn du also wahr oder
falsch sagst, wird es wahr sein. Es ist wahr und falsch, die Antwort wird falsch sein. Und dann wird bei
der letzten Frage hier natürlich
nicht A falsch sein, weil nicht A bedeutet, dass das Gegenteil von wahr, das Gegenteil von wahr, falsch ist. Wenn ich das
Programm jetzt starte, werden
Sie
wieder sehen, dass A und B, wahr und falsch,
immer falsch sein werden, während wahr oder falsch wahr sein wird während A nicht falsch sein wird. Also noch einmal,
Bollin-Operatoren und Werte, sie funktionieren auch mit logischen
Operatoren
wie Ihrem oder nicht Und natürlich sind Ihre
Vergleichsoperatoren wie Ihre Gleichheit mit nicht
gleich kleiner als,
größer als und so weiter Deshalb werden wir im weiteren Verlauf des
Kurses mit booleschen
Operatoren arbeiten .
Danke fürs Zuschauen Wir sehen uns in der nächsten Klasse.
11. Arithmetische Operatoren aktualisiert: Lassen Sie uns über einige
weitere Operatoren sprechen und mit den
arithmetischen Operationen
beginnen Und das ist einfach, weißt du, die Mathematik oder
grundlegende Mathematik , die
wir als Kinder gelernt haben, Du weißt schon, eins mal eins, zwei, mal zwei, drei, plus eins, zehn, minus sieben,
sowas, oder? Also, was ich hier gemacht habe, ist ich der
Variablen A den
Wert zehn und der Variablen B den Wert
von drei zugewiesen habe. Und ich habe hier mehrere
Rechenoperationen aufgeschrieben Rechenoperationen Wir haben A plus B, A minus B, A mal B, A geteilt
durch B, A, Modul B, was einfach
den Rest zurückgibt , wenn
wir A durch B teilen, und dann wird das
letzte hier ein exponentielles B
sein,
was den Wert
von A um ein exponentielles B
sein, die Potenz von B erhöht. Also, was werden die Ergebnisse
hier sein? Lassen Sie mich das Programm ausführen,
und natürlich ist
zehn plus drei 13, zehn minus drei ist sieben, zehn mal drei ist 30, 10/3 ist 3,33 33, und dann zehn Modell Verlust
drei wird eins sein. Und natürlich wird zehn
mal zehn mal zehn gleich 8.000 sein
, oder? Okay, ich gehe davon aus, dass Sie offensichtlich die Antworten
auf all diese Operationen kannten auf all diese Operationen Aber lass uns noch weiter gehen. Ich werde das entfernen, okay? Und ich habe hier noch ein paar
Operationen. Und der erste hier ist das, was wir einen Zuweisungsoperator nennen. Du kannst es genau dort sehen, da steht, plus
ist gleich, oder? Lassen Sie mich diese neuen
Zeilen hinzufügen und los geht's. Okay, wir haben also Plus-Gleiches. Das bedeutet einfach, dass wir sagen werden, dass X
gleich X plus Es ist im Grunde dasselbe. X plus gleich fünf ist also genau dasselbe, was besagt, dass
X gleich X plus Dies ist nur eine kurze
Form, dies zu schreiben. Also lass mich einfach
weitermachen und das entfernen. Also, was denkst du wäre die
Antwort hier? Die Antwort
hier wird natürlich 15 sein, weil zehn plus fünf gleich 15 Jetzt kannst du das
Gegenteil tun, okay? Du kannst Minus
und dann gleich sagen. Die Antwort hier
wäre natürlich fünf, denn zehn minus fünf ergibt fünf Und es gibt natürlich
noch andere, wie die Multiplikation a, die uns eine 50 ergibt Und dann
haben wir auch noch die Division, die uns
zwei, zwei Punkte geben wird. Das sind also die sogenannten
Zuweisungsoperatoren. Nun möchte ich Ihre
Aufmerksamkeit auf eine weitere Sache lenken, und das nennen
wir Operator-Priorität Lassen Sie mich zunächst den Code
entfernen und ihn nach
oben ziehen und in einer neuen Zeile drucken Lassen Sie mich diesen Befehl kopieren und hierher kommen
und dann drucken. In Ordnung, also sieh dir das an. Okay, wir haben zwei verschiedene
Ausdrücke, okay? Der erste hier sagt,
zwei plus drei mal vier. Nun, die zweite
hier ist, dass wir
eine Klammer zwei plus drei
und dann mal vier haben . Was werden Ihrer Meinung nach die Ergebnisse der beiden
Ausdrücke sein? Auch dies könnte Sie
an die Mathematik erinnern , die Sie
in Ihrer Kindergarten- oder
Grundschulzeit gemacht haben . Aber ich finde
diese Sache immer ziemlich faszinierend, weil
wir hier zwei
verschiedene Ergebnisse erzielen werden. Sie können also das
Video pausieren und versuchen zu erraten, was die Ergebnisse
beider Ausdrücke wären. Wenn Sie Ihre Ergebnisse haben, lassen Sie uns jetzt
weitermachen und loslegen. Und der erste
hier wird 14 sein während der zweite 20 sein wird, warum? Denn beim ersten
Ausdruck hier haben
wir zwei Operatoren. Wir haben den
arithmetischen Plusoperator und dann haben wir
die Python führt
zuerst die
Multiplikation vor der Addition Also drei mal vier
ergibt
12, 12 plus zwei
, ergibt 14. Aber hier im zweiten Ausdruck wird
die Addition tatsächlich zuerst gemacht
, wird
die Addition tatsächlich zuerst gemacht weil
sie in Klammern stehen. Das ist der Grund. Sofern
ich mich nicht irre, ist
es in der Regel so, dass die Klammern in den
Präzedenzfällen ganz oben stehen Wenn Sie die Klammer nicht haben,
wird nach Potenzierung gesucht. Wenn es keine
Potenzierung gibt, wird es multipliziert
, es wird multipliziert
, Ich werde zu Modulos,
Addition und schließlich Subtraktion übergehen Addition und schließlich Subtraktion übergehen Und
wenn Sie dann in einem sehr
komplexen Ausdruck Vergleichsoperatoren haben, kommen
diese als nächstes und
schließlich logische Operatoren kommen
diese als nächstes und
schließlich logische Aber
weiter müssen Sie nicht gehen. Hier
haben wir einfach zwei Hauptoperatoren.
Wir haben drei. Wir haben die Klammer, die natürlich
Vorrang vor der Multiplikation Vorrang Also zwei plus drei ist fünf,
fünf multipliziert mit vier ergibt 20. Also noch einmal,
das nennen wir des Operators Um ehrlich zu sein, werden wir in diesem Kurs nicht
wirklich
damit arbeiten , aber dennoch
sollten
Sie sich dessen bewusst sein Danke fürs Zuschauen. Wir
sehen uns in der nächsten Klasse.
12. Arbeiten mit der Einführung der Saitenabschnitte: Willkommen zum nächsten Abschnitt in dem wir uns jetzt
speziell auf den Datentyp
Strings konzentrieren speziell auf den Datentyp
Strings Ich weiß, dass wir bereits zuvor
über Zeichenketten gesprochen haben. Wir müssen uns jedoch noch eingehender mit diesem
speziellen Thema befassen und warum? Nun, das liegt daran, dass es sich bei dem Datentyp,
mit
dem Sie arbeiten
werden, in den
allermeisten Datentyp,
mit
dem Sie arbeiten
werden Fällen um Zeichenketten handeln wird Ja, Sie werden mit
ganzen Zahlen und anderen Datentypen arbeiten, aber Zeichenfolgen machen in der Regel etwa 80 bis 90%
der Datentypen aus, mit denen Sie arbeiten In diesem Abschnitt
werden wir uns also viel eingehender damit befassen. Ich werde dir zeigen, wie
du Zeichenketten manipulieren kannst. Nehmen wir zum Beispiel an, Sie
haben zwei Teile einer Zeichenfolge und möchten bestimmte
Buchstaben aus der Zeichenfolge extrahieren. Sie möchten Buchstaben
aus dieser anderen Zeichenfolge extrahieren, sie
zusammenfügen, solche
Dinge. Du wirst lernen
, wie man solche Dinge macht. Du wirst lernen,
wie du
ganze Zeichenketten in Groß- oder
Kleinbuchstaben umwandeln kannst , wie du sie aufteilen kannst und so viele andere Dinge
tun kannst. Ich glaube also, dass Ihnen dieser Abschnitt gefallen wird
. Und genau wie
beim ersten Abschnitt wird
es am Ende dieses Abschnitts auch eine
Programmierübung geben. Versuchen Sie es also bitte mit
der Codierungsübung. Hoffentlich können Sie
dies erfolgreich tun. Aber wenn Sie nicht können,
werde ich Ihnen auch
die Lösung zur Verfügung stellen ,
damit Sie
Ihren Code mit meinem Code vergleichen können . Also, ohne
noch mehr Zeit zu verschwenden, fangen wir an.
13. Grundlegende Saitenmanipulation: Ich bin bereits mit
den verschiedenen Möglichkeiten
vertraut Ihre
Zeichenkettenvariablen auszudrucken. Was ich hier auf meinem
Bildschirm
habe, ist, dass ich den variablen Benutzernamen erstellt und ihm den Wert
Cyber als Zeichenfolge zugewiesen habe, und dann habe ich einfach Benutzername drucken
gesagt. führte natürlich dazu, dass Cyber sehr, sehr einfach,
sehr einfach
ausgedruckt wurde. Und jetzt
habe ich ab Zeile vier dem variablen Benutzernamen genau den gleichen Wert
cyber zugewiesen . Beachten Sie jedoch, dass
ich in den
Zeilen fünf und sechs zwei verschiedene Möglichkeiten
demonstriere, ich in den
Zeilen fünf und sechs zwei verschiedene Möglichkeiten
demonstriere die Variable auszudrucken. Ich hätte sagen können: Willkommen der Welt der
Programmierung und dann Komma und dann der
Name der Variablen
, der natürlich Benutzername ist,
cyber, und die Ausgabe ist willkommen in der Welt
der Programmierung, Cyber Und dann verwende
ich in Zeile sechs anstelle
des Kommas das Pluszeichen, verwende
ich in Zeile sechs anstelle
des Kommas das Pluszeichen, und das nennen wir im
Grunde Verkettung, wann immer Sie das Pluszeichen
verwenden, und dann haben Sie
genau dieselbe Ausgabe. Beachten Sie jedoch, dass es einen geringfügigen Unterschied
im Abstand
gibt Mit dem Kommasymbol neigen
Sie dazu, etwas mehr Abstand
zwischen Ihrer Zeichenfolge und
dem tatsächlichen Namen
Ihrer Variablen zu haben zwischen Ihrer Zeichenfolge und dem tatsächlichen Namen
Ihrer Variablen Trotzdem funktionieren beide
Methoden ziemlich gut. Es ist alles eine Frage der Wahl. Lassen Sie mich Ihnen jedoch
einige andere grundlegende Möglichkeiten zur
Manipulation Ihrer Saite zeigen einige andere grundlegende Möglichkeiten zur
Manipulation Ihrer Saite Nehmen wir zum Beispiel an, ich wollte
zehn Mal Cyber drucken, oder? Anstatt mit dem Namen Cyber,
dem Namen Cyber, Namen Cyber zehnmal zu schreiben, könnte
ich
hier einfach
das Asteric-Symbol hinzufügen und
dann einfach mal zehn sagen Und dann
muss ich jetzt nur
noch den Benutzernamen
ausdrucken Wenn ich das Programm jetzt starte, können
Sie sehen, dass wir zehn Mal
Cyber-Cyber
Cyber Cyber Cyber haben . Und wenn ich ein Leerzeichen
zwischen meinen Wörtern haben möchte, kann
ich einfach ein Leerzeichen zwischen
dem Buchstaben R und
dem abschließenden Code hinzufügen . Und wenn ich das Programm noch einmal starte, dann sagst du, wir haben
Cyber-Cyber. Das nennen wir also
Wiederholung, oder? Eine weitere Funktion, die ich Ihnen in
Bezug auf Zeichenketten mitteilen
wollte , ist
die Länge einer Zeichenfolge Wir können bestimmen, wie
lang eine Zeichenfolge ist. Mit anderen Worten,
wir können im Grunde die Anzahl
der Zeichen in einer Zeichenfolge bestimmen. , Wenn ich also zum Beispiel herausfinden möchte wie viele Charaktere es
in Cyber gibt
, muss ich
nur hierher kommen. Nach der Druckfunktion kann
ich eine weitere
Funktion namens
Längenfunktion einführen , die
natürlich LN ist , und dann muss
ich meinen
Schlusspunkt hinzufügen und ihn dort unterbrechen. Und wenn ich das Programm jetzt starte, können Sie erraten, wie hoch der
Wert sein wird? Der Wert wird fünf
sein, weil Cyber aus fünf
Zeichen und fünf Buchstaben besteht. Jetzt
fragen Sie sich vielleicht: Okay, das ist alles gut, aber
wie ist das relevant? Wie wenden wir das
konkret in der Welt der Cybersicherheit an? Ich bin mir ziemlich sicher, dass Sie schon einmal auf Websites
gesehen
haben , auf denen Sie
aufgefordert werden, sich anzumelden. Sie fangen an, Ihr Passwort einzugeben, aber dann sehen Sie nicht
die tatsächlichen Zeichen. Stattdessen sehen Sie möglicherweise
das Strichsymbol oder am häufigsten das
Asteric-Symbol an ihrer Stelle Wir können das Wissen, das
wir bisher gewonnen haben, nutzen , um tatsächlich
ein ähnliches Szenario zu erstellen Also sieh dir das an, okay? Ich werde
jetzt
eine neue Variable erstellen und sie Passwort nennen. Und jetzt fügen wir
das eigentliche Passwort hinzu. Ich werde Swordfish sagen, was nicht gerade das beste
Passwort ist, aber egal Wir werden uns für Swordfish entscheiden
. Jetzt möchte ich Sordfsh
ausdrucken,
also kann ich einfach sagen, gib ein Passwort aus, richtig? Wenn ich das Programm starte, wird
es sagen, dass es Sordfish ist, aber wir wollen
jeden Buchstaben in
Sordfish durch das Sternchen ersetzen Sordfish Im Grunde sollten wir also neun Asteric-Symbole anstelle
der eigentlichen Buchstaben
haben anstelle
der eigentlichen Buchstaben Also, was machen wir? Ich kann jetzt
eine weitere Variable erstellen und sie das maskierte
Unterstrichkennwort nennen. Und was
wird das jetzt bedeuten? Ich werde meine Codes hinzufügen und
jetzt das Asteric-Symbol hinzufügen. Okay? Das Sternchen, und jetzt multiplizieren Sie es erneut mit der Länge
der Zeichen unserer Passwortzeichenfolge Und da ist es. Also jetzt, wenn ich das Programm starte und das nicht funktioniert hat. Oh, vergib mir. Für
das Druckkennwort müssen
wir hier Zeile
drei ändern, um
das Passwort zu maskieren , weil wir das Passwort
nicht mehr ausdrucken. Ups. Das war ein
bisschen peinlich Okay, wir werden jetzt das
maskierte Passwort ausdrucken, und wenn ich das
Programm starte, hast du's Okay, jetzt haben wir
neun astatische Symbole weil SetFish selbst
aus neun Buchstaben besteht Und nur um dir zu beweisen,
dass das tatsächlich funktioniert, wenn ich drei weitere
Zeichen, Ziffern,
in diesem Fall
123, hinzufüge und es erneut ausführe, kannst du
jetzt sehen, dass die Anzahl der astatischen Symbole um drei
gestiegen ist Statt neun sind es jetzt 12. So könnten Sie also etwas
sehr Ähnliches in Ihrem
realen Programm
nachbauen sehr Ähnliches in Ihrem
realen Programm Wenn Sie ein
maskiertes Passwortsystem erstellen
möchten, können Sie diese
Art von Konzepten verwenden Also danke, dass du dir das
Video angesehen hast. Wir sehen uns in
der nächsten Klasse.
14. Schnurindizierung und -schneiden: Nun, willkommen zurück.
Lassen Sie uns nun über
einige sehr wichtige Konzepte sprechen einige sehr wichtige Konzepte wenn es um den
Umgang mit Saiten geht. Wir haben das
Konzept der Indexierung. jetzt keine Sorgen, wir
werden später noch viel mehr über
Indizierung sprechen später noch viel mehr über
Indizierung Aber lassen Sie mich Ihnen jetzt eine kurze Einführung geben, richtig Sagen wir zum Beispiel hier drüben, ich habe meinen Text
, der Cybersicherheit entspricht. Was wäre nun, wenn wir aus dem einen oder anderen Grund
ausdrücklich den allerersten Buchstaben
des Wortes Cybersicherheit
herausnehmen wollten einen oder anderen Grund
ausdrücklich den ? Der erste Buchstabe hier
wäre C, richtig? Also könnte ich etwas machen
wie zuerst sagen und dann Unterstrich, der dem Text
entspricht, und jetzt werde ich meine
Klammern verwenden Und jetzt muss ich
die Indexposition des
Buchstabens angeben , auf den ich abzielen möchte In der Cybersicherheit ist
C jetzt der erste Buchstabe. Also, was glaubst du, wird meine
Indexnummer hier sein? Nein, es ist nicht eins, es wird Null sein Bitte denken Sie daran, dass bei der Programmierung im
Allgemeinen, nicht nur bei Python, sondern bei der allgemeinen Programmierung,
Ihre Indizierung bei Null beginnt und nicht bei Eins Wenn ich jetzt also
den Inhalt meiner Variablen mit dem
Namen first character ausdrucken möchte , lautet
die Antwort hier
C. Ebenso, wenn ich
diese Zahl in eine ändere, ist es
jetzt Y. Also das hier ist Indizierung,
und wir
werden in diesem Kurs
damit arbeiten Kurs
damit Nun, das zweite Konzept hier
wird das
Konzept der Sünde sein. Durch die Glasur können wir
einen Teil der Saite nehmen. Nun, Cybersicherheit ist
eine ziemlich lange Angelegenheit. Was wäre, wenn wir nur die ersten fünf Charaktere ins Visier nehmen
wollten, ersten fünf Charaktere denen es sich um Cyberattacken handelt? Wie würden wir das machen? Nun, hier kann ich meine Indexposition
für das allererste Zeichen
hinzufügen , das Null sein wird. Und wo
möchte ich dann aufhören? Fünf. Genau das hier nennen
wir Slicing. Die allererste Zahl hier gibt
an , wo wir mit
dem Schneiden beginnen wollen In diesem Fall habe
ich gerade Null hinzugefügt, weil ich mit
dem allerersten Buchstaben beginnen wollte Und wie viele
Charaktere wollen wir dann? Wir wollen die fünf Charaktere. Also, wenn ich das Programm starte, wird
es Chi Burr sein Also, was wäre, wenn wir nur Secure T
extrahieren wollten, richtig? Wir wollen es nicht als Cyber kennzeichnen. Wir wollen es nur als Sicherheitsmaßnahme kennzeichnen. Eine Sache, die ich
hier tun könnte
, ist, einfach
die Indexzahl von S zu nehmen, die Null,
Eins, Zwei, Drei, Vier, Fünf sein wird . Okay? Es könnten fünf sein. Und
jetzt füge ich meinen Dickdarm hinzu. Ich könnte angeben, wie viele Buchstaben der
Schnitt enthalten soll Wenn ich hier jedoch
keinen Wert angebe, Python
automatisch standardmäßig das Ende der Zeichenfolge. Wenn ich das Programm jetzt starte, heißt
es Sicherheit. Hast du gesehen, wie das funktioniert hat? Ich habe angedeutet, okay,
ich möchte bei S beginnen und die Indexzahl von S wird hier fünf sein. Und weil ich nicht angegeben habe, wo
das Slicing aufhören soll, geht
Python einfach
bis zum Ende Deshalb haben wir Sicherheit. Ebenso könnte ich
fast das Gegenteil tun. Ich könnte den Anfang leer lassen und jetzt könnte ich hierher gehen. Und wenn ich, sagen wir, fünf als Beispiel angeben würde, welchen
Wert wird das Ihrer Meinung nach haben? Wenn Sie
Ihre Startposition nicht angeben, wird
Python automatisch gestartet. Die Standardposition
wird ganz am Anfang sein. Also, was glaubst du, wird die
Antwort hier sein? Die Antwort hier
wird Cyber sein? Denn obwohl wir den Anfang nicht
angegeben haben, Python standardmäßig den
Anfang, nämlich C. Und dann sind fünf Zeichen
C, Y, BR und das ist Psi Bur. Das ist jedoch noch nicht alles. Wir könnten auch das
Konzept der negativen Indizes verwenden. Also schau dir
das zum Beispiel an, okay? Ich werde hier
rüber gehen, oder? Und wenn ich die Sicherheit ins
Visier nehmen wollte, könnte ich am Ende beginnen,
und ich weiß, dass Sicherheit aus acht Zeichen besteht
, also sage ich minus acht. Und jetzt füge ich meinen Doppelpunkt und die Standardeinstellung
ganz am Ende hinzu. Und jetzt, wenn ich das
Programm starte, los gehts. Es ist sicher, weil Python am Ende
beginnt, das ist Y, und dann acht Buchstaben nach links geht . Es hört bei S auf, weil S
der achte Buchstabe ist . Es ist
das achte Zeichen. Wenn man am Ende
anfängt
, haben wir deshalb
Sicherheit als Antwort. Sie fragen sich vielleicht:
Okay, wie sich das Cybersicherheit anwenden
lässt? Haben Sie sich jemals gefragt,
wie Antimalware und Antivirenprogramme Malware
scannen und erkennen können In der Regel hat die
Dateierweiterung den Punkt EXE. Also, zum Beispiel, richtig? Wenn zum Beispiel ein
Dateiname CMD IOP
entspricht , weißt du,
etwas Seltsames, oder Und dann Punkt EXE. Dies wäre ein Beispiel für
den typischen
Malware-Dateinamen, den Sie haben werden. Wie können wir also ein Programm schreiben
, das scannt und dann erkennt, sobald es
die Punkt-EXE-Erweiterung erkennt Es weiß, dass es sich dabei, okay,
um Malware handeln könnte. Wir haben noch nicht über
die If-Aussage gesprochen. Wir werden im nächsten Abschnitt
darüber sprechen, aber jetzt einfach davon aus
, dass okay, ob der Dateiname okay ist. Und jetzt, wenn ich in Klammern etwas hinzufügen würde, ob ich den
Punkt EXE vom Ende her als Ziel angeben wollte, weil wir nie wissen, wie lange ob ich den
Punkt EXE vom Ende her als Ziel angeben wollte,
weil wir nie wissen, wie lange
der Dateiname vor dem Punkt EX stehen wird. Es ist immer besser, vom Ende aus
anzuvisieren. Ich weiß das minus vier,
vom Ende an, wenn es gleich ist, zu welchem Punkt EXE? Wenn ich weiß, dass die letzten
vier Zeichen im Dateinamen
dem Punkt EXE
entsprechen, dann weiß ich, dass es sich
höchstwahrscheinlich
um eine Milware handelt sich
höchstwahrscheinlich
um eine Milware Jetzt kann ich einfach
Prints sagen und dann in Klammern sagen, dass ML Ware,
Sie wissen schon, so etwas gefunden Sie wissen schon, so etwas So kann das Konzept des Slicing also in der Welt
der Cybersicherheit angewendet werden nun, bevor ich dieses Video
zusammenfasse, mich nun, bevor ich dieses Video
zusammenfasse, mit Ihnen über
eine weitere Funktion sprechen Das ist nützlich, wenn es darum geht
, mit Zeichenketten zu arbeiten. Und das wird
die Split-Funktion sein. Es ist eine Funktion, die
eine Zeichenfolge auf der Grundlage eines angegebenen Trennzeichens in
eine Liste von weichen Zeichenketten Wovon spreche ich? Nehmen wir zum Beispiel an, ich kehre zu meinem Text
zurück und das entspricht Cybersicherheit Jetzt kannst du sagen, dass es
zwei Wörter sind, oder? Es ist nicht mehr nur ein
einziges Wort Cybersicherheit. Jetzt habe ich zwei
Wörter: Cybersicherheit. Wenn ich das also aufteilen wollte, könnte ich Worte sagen. Also gut? Entspricht Text und jetzt Punktteilung. Okay? Ich füge
die Split-Funktion an den Variablentext an, weil ich die Cybersicherheit aufteilen
möchte Also, wenn ich die Wörter einfach
ausdrucken würde, was glaubst du,
wird das Ergebnis sein? Es wird Cyber sein
und dann Sicherheit. Und falls Sie
sich fragen: Okay, wie werden wir
das in der Cybersicherheit anwenden? Jerman Vix Video Web wird
damit beginnen, sich mit
Cybersicherheitsanwendungen wie Slicing, Splitting und vielem mehr zu befassen
15. Gängige Saitenmethoden: Willkommen zurück. Lassen Sie uns also
weiter über die verschiedenen Arten
von Methoden oder Funktionen sprechen, die wir normalerweise auf Zeichenketten
anwenden, und über
eine sehr verbreitete. Tatsächlich wären zwei sehr gebräuchliche Funktionen
eher
die Funktionen zur Konvertierung von Text in
Groß- oder Kleinbuchstaben In meinem Beispiel hier
habe ich also meinen variablen Text, der Cybersicherheit
entspricht Wenn ich
alles in Großbuchstaben umwandeln wollte, würde
ich einfach Text und
nicht Großbuchstaben sagen , neue
Klammern öffnen, und da ist es Und wenn ich
alles in Kleinbuchstaben umwandeln möchte, mache
ich genau das Gegenteil Das wird der Drucktextpunkt LWA sein. Punkt ova, öffne neue
Klammern und da ist es. Wenn ich das
Programm jetzt starte, können
Sie sehen, dass wir Cybersicherheit
in Großbuchstaben
und dann Cybersicherheit
in Kleinbuchstaben haben und dann Cybersicherheit
in Kleinbuchstaben Das sind also zwei
neue Funktionen, die Sie kennen
sollten:
Punkt Opa Punkt LA Es gibt aber auch die Funktion
zum Trimmen von Leerraum. Sagen wir zum Beispiel, ich habe
meine Passwortvariable hier drin. Ich habe Platz und mein eigentliches
Passwort ist Swordfish, und dann lass mich noch
etwas mehr Platz hinzufügen Wenn ich den
ganzen unnötigen
Leerraum hier rausschneiden wollte , würde ich nur Prints,
Klammern und dann
Passwort und jetzt Strip sagen Klammern und dann
Passwort und jetzt Strip Noch einmal, die Strip-Funktion, wir können damit auch
alle unnötigen Leerzeichen entfernen, das Programm
starten
und los geht's. Schwertfisch ohne
den leeren Raum. Wir können aber auch
Zeichen in unseren Zeichenketten ersetzen. Sagen wir zum Beispiel, lassen Sie
mich Ihnen hier ein
Beispiel geben. Nehmen wir an, meine
Nachricht entspricht, und sagen wir, okay,
verwende ein Passwort. Nehmen wir an, das aktuelle
Passwort lautet Passwort eins, zwei, drei. Nur als Beispiel,
oder? Aber dann wollten
wir
etwas drucken, das besagt,
okay, benutze ein Passwort
und dann redigiert Okay? Das eigentliche Passwort selbst wollen wir nicht anzeigen. Es ähnelt dem, was wir
in der vorherigen Lektion getan haben als
wir das Sternchen verwendet haben
, um die Zeichen zu ersetzen Es ist verwandt, aber
etwas anders. Also lass mich zeigen, wovon ich
spreche, okay? Also werde ich sofort
herkommen. Und ich werde sagen, lassen Sie uns eine neue Variable
erstellen. Nehmen wir an, eine
sichere Unterstrichnachricht ,
okay,
entspricht jetzt Nachricht, Punkt und jetzt einer neuen
Funktion namens replace Okay? Ich möchte das tatsächliche Passwort
durch etwas anderes ersetzen. Also werde
ich in meine Klammern das
eigentliche Passwort setzen, das ich ersetzen
möchte nämlich Passwort eins, zwei,
drei, Komma, und jetzt die tatsächlichen Buchstaben
oder Zeichen oder die Zeichenfolge, ich es ersetzen möchte In diesem Fall öffne ich
jetzt meine Klammern, öffne ich
jetzt meine Klammern, und in Großbuchstaben kann
ich „redigiert“ sagen.
Nur als Beispiel, o Jetzt muss ich nur noch die Nachricht mit
sicherem
Unterstrich
in Klammern drucken sicherem
Unterstrich
in Klammern Und wenn ich jetzt ein Programm starte,
bitteschön , benutze einen
Passwort-Reduktionskopf. Sie können also die
Ersetzungsfunktion verwenden, um einfach einen bestimmten Teil
Ihrer Zeichenfolge durch etwas anderes zu
ersetzen , und so werden Sie es tun Lassen Sie mich
Ihnen abschließend noch eine Sache zeigen,
und zwar das Finden von Teilstrings. Nehmen wir zum Beispiel an, wir haben
eine Variable namens email, und sie entspricht,
sagen wir, admin at labsyb.com Ich bin mir ziemlich sicher, dass
Sie das schon
so oft erlebt haben müssen, Sie das schon
so oft erlebt haben müssen Sie vielleicht versuchen, ein neues Konto
auf einer Website zu erstellen, und sie werden Sie nach
einer E-Mail-Adresse fragen Wenn Sie zum Beispiel etwas
Falsches eingegeben haben, kann
das System erkennen, dass,
Hey, das ist keine
gültige E-Mail-Adresse,
und das liegt daran, dass es überprüfen
könnte, ob das AT-Symbol in Ihrer Eingabe
enthalten war Wenn also das Anzeigensymbol nicht
da ist, dann weiß es natürlich:
Okay, was auch immer diese Person eingegeben hat kann keine E-Mail-Adresse sein Lassen Sie mich Ihnen zeigen, wie wir ein sehr einfaches
Programm schreiben
können, um zu überprüfen, ob das AT-Symbol in der Zeichenfolge enthalten
ist Von hier aus habe ich also die
gleiche E-Mail-Adresse wie admin at labsar.com. Lass uns nachsehen, ob
das Werbesymbol drin ist , okay?
Ich sage ich. Okay? Wenn ich weiß , dass wir
noch nicht über diese
spezielle Wenn-Aussage
gesprochen haben, machen Sie sich keine Sorgen, wir werden sie
im
nächsten Abschnitt ausführlicher behandeln . Beachten Sie jedoch vorerst, dass es sich um
eine Aussage handelt , mit
der Python überprüft, ob
etwas wahr ist. Also werde ich sagen, ob und
jetzt E-Mail und dann Punkt, gut. Dies ist die Funktion, mit der
wir überprüfen können, ob etwas in unserer Zeichenfolge
vorhanden ist. Das ist also die Find-Funktion. Und jetzt müssen wir
in Klammern und jetzt
Codes, dem At-Symbol, angeben wonach genau wir suchen ,
wonach genau wir suchen. Also versuchen wir zu überprüfen,
ob das At-Symbol existiert und wie wir überprüfen können
, ob es tatsächlich existiert. Es steht in einer Zeichenfolge, indem gesagt wird, dass es nicht gleich minus eins ist. Und dann fügen wir unseren Doppelpunkt hinzu. Also das ist nicht gleich minus
eins ist eine Art zu sagen, okay, etwas existiert Okay? Also genau hier sagen
wir, ob
du in der E-Mail das Werbesymbol gefunden hast und es nicht gleich minus eins ist. Das bestätigt also, dass das Anzeigensymbol
tatsächlich in unserer Zeichenfolge enthalten
ist. Jetzt können wir also etwas tun. Wir können „Drucken“ sagen,
und jetzt können
wir in Klammern „gültiges E-Mail-Format“ sagen. Also, wenn ich jetzt mein
Programm starte, los gehts. Gültiges E-Mail-Format, da das Anzeigensymbol tatsächlich gefunden wurde. Wenn ich das Werbesymbol entferne und das Programm jetzt erneut ausführe, können
Sie sehen, dass nichts ausgedruckt
wird weil das Anzeigensymbol nicht mehr vorhanden
ist. Es ist keine gültige
E-Mail für Matt. Ich gehe zurück. Ich füge das
Werbesymbol wieder hinzu, ich starte und jetzt können Sie
sehen, dass es wieder funktioniert. Um Ihnen eine kurze
Zusammenfassung zu geben, möchten
wir zunächst nach dem Anzeigensymbol
in einer E-Mail-Adresse
suchen, die uns zur
Verfügung gestellt wurde Wir werden also
sagen, ob und dann suchen
wir speziell nach dem
Hinzufügen-Symbol Wenn also das Anzeigensymbol vorhanden
ist und wir prüfen, ob
es vorhanden ist, wobei
das Unentschieden gleich minus Eins ist. Wenn
also das Hinzufügen-Symbol tatsächlich vorhanden
ist, drucken Sie
einfach ein gültiges E-Mail-Format Beachten Sie also
die Suchfunktion. Das war's also für das Video,
danke fürs Zuschauen. Wir sehen uns in der nächsten Klasse.
16. Mehr Saitenmanipulation: Nun, kommen Sie zurück, also lassen Sie
mich Sie durch ein paar weitere Operationen führen,
indem ich die
Split-Funktion
sowie einige
gute alte Indizierungen verwende sowie einige
gute alte Indizierungen Ich habe also zwei Notizen auf meinem
Bildschirm. Ich habe eine E-Mail-Adresse
und dann auch eine AURL. nun
die E-Mail-Adresse ansehen, was wäre, wenn wir
die Domain speziell extrahieren wollten Also wollten wir
labsyba.com extrahieren und einfach die Admin-Anzeige loswerden . Wie werden
wir das machen? Nun, lassen Sie uns zunächst
B admin auf labsyba.com eine variable E-Mail
zuweisen . Okay. Also, was ich
jetzt tun werde, ist, eine weitere Variable zu erstellen, die jetzt das enthält, wonach
wir suchen. Also werde ich
das eine Domain nennen. Und jetzt passiert hier
die Magie, okay? Wir wollen unsere Zeichenfolge aufteilen, wir wollen admin
von labsyb.com trennen Was ist also das At-Symbol zwischen admin und labsyb.com? Also sage ich
E-Mail und jetzt Split
und jetzt in Klammern, von wo aus
werden wir uns Wir werden uns
vom AT-Symbol trennen, okay? Und jetzt, wo wir nach dem zweiten Element
suchen, wenn du Admin auf
labsab.com von der Anzeige trennst, wird
ein Teil admin sein, der andere Teil wird labsab.com
sein Also wollen wir mit
dem zweiten Element weitermachen, und das wird eins sein Eins wird für labsbdt com stehen. Und jetzt müssen wir nur noch
eine Domain drucken. Und wenn ich ein Programm starte, dann ist es labsbadt com Wenn ich stattdessen Eins
auf Null ändere, dies jetzt
das erste Element dar, das Admin sein wird Wenn ich also jetzt ein Programm
erneut starte, können Sie sehen, dass es zu admin geändert wurde. Wenn Sie also
versuchen, eine Zeichenfolge
mithilfe der
Split-Funktion in zwei Teile aufzuteilen, möchten
Sie zunächst angeben, okay, wo Sie
mit der Aufteilung beginnen möchten. In diesem Fall gehen
wir jetzt vom Anzeigensymbol aus. Also ganz unten in der Mitte,
links, wird der
Indexwert Null sein. Auf der rechten Seite wird
der Indexwert von eins stehen. Und da wir speziell nach
der Domain suchen, ändern
wir Null auf Eins. Wir rennen wieder und
los geht's, wir haben labcyba.com. Was ist nun mit dem zweiten
Beispiel hier, der URL? Wonach genau
suchen wir hier? Nehmen wir an, wir wollten
die eigentliche Datei selbst extrahieren. Wir interessieren uns also nicht für das Ganze gctpslabs.com, FurslashPat, Wir suchen nur nach dem Dateinamen. Wie können wir
eine Datei daraus extrahieren? Also, was ich
ganz einfach tun werde, ist zu sagen, URL ist gleich, und lass
mich das einfach holen Lass mich das einfach kopieren. Und ich werde es einfügen.
Und da hast du's. Okay, also wieder werde ich eine neue Variable
erstellen, die jetzt den Wert
dessen enthält, wonach wir suchen. Nennen wir das, der
Unterstrichname der Datei
entspricht jetzt der URL, oder? Und jetzt Punktteilung
und jetzt schau dir das Ich schaue mir die URL an, okay? Diese vollständige URL. Was denkst du? Welches
Symbol könnten wir Ihrer Meinung nach
verwenden, um die Zeichenfolge
in mehrere Teile aufzuteilen? Ja, es sollte
offensichtlich sein, dass es
der Schrägstrich sein wird , oder Weil du genau
dort sehen kannst, dass es überall ist. Also werden wir unsere Saite
teilen. Wir werden unsere URL
mit dem Schrägstrich ausgeben. Und wie können wir jetzt auf die
Datei abzielen? Erinnerst du dich an eine
negative Indizierung? Nun, wir beginnen am
Ende unserer Saite. Also in diesem Fall,
wonach suchen wir jetzt, wir suchen nach dem
allerersten Element vom Ende, und was wird nun negativ
sein? Negativ eins. Also
wird es mit der Datei beginnen. Es wird von
rechts nach links beginnen, oder? Jetzt müssen wir nur noch
den Namen der Datei mit einem Unterstrich
ausdrucken Und sie sollten den Trick machen. Lassen Sie uns weitermachen und das Programm
ausführen. Und da hast du es. Wir
haben den Dateinamen. Durch die Verwendung
der Split-Funktion
und auch einer negativen Indizierung konnten
wir also und auch einer negativen Indizierung gezielt auf den Dateinamen
abzielen Lassen Sie mich Ihnen noch
ein Beispiel geben. Und hier werden wir einige Zeichenketten
extrahieren. Ohne die
Split-Funktion verwenden
wir einfach den Indexwert. Lassen Sie mich die
E-Mail-Adresse erneut angeben und ich sage
admin at labsba.com Okay, was wäre, wenn wir
sowohl den Benutzernamen
als auch die Domain extrahieren
wollten sowohl den Benutzernamen
als auch die Domain Also wollen wir den
Benutzernamen, der admin ist,
und dann die Domain, die
labsyb.com ist, extrahieren und dann die Domain, die
labsyb.com ist, Wie glauben Sie, können wir das machen? Nun, zuallererst kann ich
sagen, dass mein Benutzername gleich
E-Mail sein
wird , und jetzt erinnere dich daran, wie die Indizes funktionieren, wenn du
deinen Anfang und dann das Ende hast deinen Anfang und dann das Ende Wir wollen also ganz
am Anfang unserer Zeichenfolge Also werden wir Doppelpunkt sagen. Wir
lassen die linke Seite leer, weil wir von vorne beginnen
werden. Und jetzt lass uns sehen. A wird Index
Nummer Null sein, oder? Also ist A Null, D ist eins, M ist zwei, I ist drei, N ist vier und
das Addiersymbol ist natürlich fünf. Also sage ich jetzt
hier drüben, fünf, okay? Und dann kann ich sagen, dass Domain
gleich E-Mail ist und jetzt wollen
wir mit dem sechsten Index beginnen, L sein wird, Doppelpunkt und
das dann leer lassen, weil wir bis zum Ende
der Zeichenfolge
gehen , und jetzt sollte
das funktionieren Also müssen wir
nur „Drucken“ sagen. Also,
sagen wir mal, benutzen wir einen Namen. Okay, und dann, benutze einen Namen
und drucke dann
Klammern, Doppelpunkt, Domain. Okay. Com-Domäne.
Und da hast du's. Lassen Sie uns das Programm ausführen
und da ist es. Der Benutzername ist Admin. Die Domain
ist lobsaba.com. Ja. Aber warte mal eine Minute. Bevor du den Champagner aufgibst, lass uns noch einen Test machen, okay? Ich ändere Admin
hier auf Ich weiß nicht. Sagen wir zum Beispiel Alex. Führen Sie das Programm niemals aus. Uh oh, ta ta, da ta, da, da, da, da, da. Wir haben ein Problem. Sie können jetzt sehen, dass das
Programm nicht richtig funktioniert hat. Es funktioniert nicht mehr richtig. Anstatt den Namen
Alex zu verwenden, haben wir Alex bei. Und statt labsyb.com
haben wir absyba.com. Was ist hier los. Sehen Sie, wenn wir versuchen, unsere Zeichenketten zu
extrahieren indem es sehr spezifisch mit den Indexwerten
umgeht, auf
die
wir abzielen wollen , wird sich das Programm sehr
stark auf die tatsächliche
E-Mail-Adresse verlassen , die die richtige Anzahl
von Zeichen sowohl
vor als auch nach dem At-Symbol
hat . Es
hängt also stark davon ab, aber wir wollen nicht, dass das Programm
flexibel genug ist, um immer in der Lage
zu sein , sowohl
den Benutzernamen als auch die Domain genau zu extrahieren unabhängig davon, wie kurz oder lang die tatsächliche E-Mail-Adresse ist. Was können wir also tun? Nun, denken Sie daran,
dass das Werbesymbol Ort
ist, an dem sich die gesamte Aktion abspielt. Links neben dem
Hinzufügen-Symbol befindet sich unser Nutzername,
rechts davon die Domain. So können wir gezielt auf den Indexwert
des At-Symbols abzielen. Und wie machen wir das? Für den Benutzernamen, die E-Mail,
gerade jetzt. Auch hier lassen
wir
den ersten Teil
der Spalte leer, weil wir von
vorne
beginnen, oder? Und jetzt, um
auf das eigentliche AT-Symbol zu zielen, es ist der Indexwert. Ich werde
wieder E-Mail sagen und jetzt Punktindex und jetzt in Klammern das
AT-Symbol codieren. Jetzt sage ich also, dass der Benutzername immer am
Anfang
der Zeichenfolge beginnt und dann endet,
sobald Sie
den Indexwert
des AT-Symbols erreicht haben . Ebenso können wir mit der Domain etwas ganz Ähnliches machen. Wir können Domain sagen. Okay, fangen wir
hier
von vorne an , E-Mail-Punktindex. Und jetzt, worauf zielen
wir noch einmal ab? Wir zielen auf das Anzeigensymbol ab. Wir möchten jedoch speziell auf das
allererste Zeichen abzielen, den allerersten Index
nach dem Hinzufügen-Symbol . Also, was glauben Sie, werden
wir tun? Wir, die guten Leute, sagen
wir mal
plus eins. Plus eins. Jetzt sage ich also, okay, fange mit dem Indexwert von At an, füge dann
aber eins hinzu. Also wird es zu
AD gehen und dann eins hinzufügen. Okay, jetzt, labs.com. Also, wenn ich das Programm starte, los
geht's. Es
funktioniert axlabs.com Wenn ich Alex wieder zu Admin ändere und das Programm starte,
kannst du sehen, dass es tatsächlich funktioniert Lass uns etwas
ganz anderes versuchen, okay? Sagen wir Jack Daniels auf superyahoo.com,
etwas Seltsames, oder? Lassen Sie uns das Programm ausführen
und los geht's. Jack Daniels und dann
Domainsoperyahoo.com. So können
Sie Ihre Zeichenketten erfolgreich
und effizient extrahieren, ohne
die Split-Funktion zu verwenden. Verwenden Sie einfach die Indexwerte,
und wir kennzeichnen sie speziell
mit dem Indexwert und wir kennzeichnen sie speziell des
Hinzufügen-Symbols, denn denken Sie auch
hier daran, dass die gesamte Aktion im Hinzufügen-Symbol stattfindet Links neben dem
Anzeigensymbol befindet sich ein Nutzername , rechts davon die Domain. Ich hoffe, dir hat das Video gefallen. Danke fürs Zuschauen.
Wir sehen uns in der nächsten Klasse.
17. Steuerfluss und Loop-Abschnitt-Intro: Offiziell zum dritten Abschnitt, und jetzt geht das Telefon erst richtig los. Jetzt fangen wir
an,
einen tieferen oder
größeren Schritt in die Welt der Python-Programmierung zu machen,
weil wir hier über
Kontrollfluss und Schleifen sprechen
werden. Bisher haben
wir in den beiden
vorherigen Abschnitten über
Zeichenketten und Ganzzahlen gesprochen, und die Programme waren größtenteils
hübsch, einfach, oder? Sie können entweder
eine Eingabe vornehmen oder wir stellen uns
einige Zeichenketten und ganze Zahlen zur Verfügung, und dann sagen wir: Okay,
ich mache das und das und
dann einfach drucken, oder? Aber jetzt mit
Kontrollfluss und Schleifen, was wäre, wenn wir sagen wollten:
Okay, wenn etwas das ist, dann lassen Sie uns das tun Aber wenn etwas
nicht dieses Ding ist, lassen Sie uns etwas anderes tun. Das sind Kontrollfluss und Regelkreise. Und was wäre, wenn
wir zum Beispiel eine Liste hätten? Okay? Es könnte
eine Liste mit Namen sein, eine Liste von Büchern, eine Liste
von Passwörtern, richtig? Und dann wollten wir jedes Passwort in
dieser Liste
durchgehen und
etwas tun, oder? Vielleicht wollten wir jedes
Passwort nehmen und es verschlüsseln, oder vielleicht wollen wir
jedes Passwort nehmen und
dann überprüfen, ob das Passwort
wirklich stark oder
schwach ist , abhängig von
verschiedenen Bedingungen werden
wir in
diesem Abschnitt behandeln Dies wird einer
der wichtigsten Abschnitte
in diesem speziellen Kurs sein ,
und ich
freue mich sehr, Ihnen etwas
über Kontrollfluss und
Kontrollschleifen beizubringen . Lass uns beginnen.
18. Einführung in Algorithmen: Ich werde eine Pause
von Raplt einlegen und
ein wenig über Algorithmen sprechen ,
denn ob Sie es glauben oder nicht,
wir werden tatsächlich anfangen, mit
etwas fortgeschritteneren Konzepten
der Python-Programmierung
zu arbeiten etwas fortgeschritteneren Konzepten
der Python-Programmierung Und es ist sehr, sehr
wichtig,
dass Sie verstehen, was Algorithmen
sind, denn sie sind unverzichtbar, nicht nur für Python, sondern für
jede Art von
Programmiersprache. Nun, wenn ich Ihnen eine Standarddefinition
geben
würde , was ein Algorithmus ist,
dann ist das im Grunde
wie eine Reihe von Anweisungen, die
befolgt werden müssen , um zu einem bestimmten Ergebnis zu gelangen
, okay? In diesem Fall können
Sie jetzt diesen Text sehen. Ich habe dort einiges geschrieben. Die allererste Aussage besagt, wenn der Computer schnell
läuft, Fertig stellen. Also, was meine ich hier? Ich sage
einfach, schauen Sie, wenn unser Computer
sehr,
sehr gut arbeitet, läuft er
sehr, sehr schnell. Es besteht keine Notwendigkeit, nach irgendetwas zu
suchen. Es ist in Ordnung, oder?
Deshalb habe ich fertig gesagt. Aber in der
dritten Zeile habe ich gesagt, sonst könntest du auch so
etwas wie Hintern sagen, oder? Aber in der Programmiersprache verwenden
wir nicht aber, wir benutzen se. In Ordnung? Also das
bedeutet im Grunde, dass, wenn die vorherige Aussage nicht korrekt
ist, also wenn der Computer
nicht schnell läuft, okay, was müssen
wir dann tun? Wir müssen zuerst
überprüfen, ob es einen Virus gibt. Danach müssen wir möglicherweise unnötige Programme
deinstallieren und dann
müssen wir vielleicht irgendwann die Rampe erhöhen. Wenn wir also
diese drei Schritte befolgen, läuft
ein Computer
garantiert schneller. Das ist ein Algorithmus, oder? Und zwei Schlüsselwörter
hier sind IF und S. Wir
werden in
diesem Kurs ziemlich viel damit arbeiten . Und wenn Sie
jemals mit
einer anderen
Programmiersprache arbeiten , werden
Sie immer
auf IL-Anweisungen stoßen. Dies sind grundlegende
Bausteine jedes Programms. Ich hoffe, Sie verstehen, was wir hier
getan haben. Ziemlich
einfach. Ich werde das nur
ein bisschen
fortgeschrittener machen , okay? Nur ein bisschen, oder? Lass mich den zweiten Tab öffnen. Stellen Sie sich vor, Sie
ziehen sich dem Wetter entsprechend an. Okay? Also die
allererste Aussage, wir haben
ein Szenario festgelegt, richtig? Also
überprüft unser Programm,
je nach Wetterlage,
was wir anziehen sollten. Wir haben also das
allererste Ergebnis. Wenn das Wetter sonnig ist, okay, wir können unsere Sonnenbrille
tragen. Beachten Sie jedoch die dritte Zeile, sie ist anders, wenn sie
nicht mehr einfach anders ist. Warum? Nun, weil das Wetter verschiedene Formen annehmen
kann. Es könnte sonnig sein,
es könnte regnen, es könnte schneien,
es könnte bewölkt sein Es gibt viel mehr
Optionen, oder? Im allerersten Dokument hier gibt es nur zwei Bedingungen. Die erste Bedingung ist: Okay,
läuft der Computer schnell oder
läuft er nicht schnell? Das ist es. Nichts wie, Oh, läuft der Computer
mit 25% Kapazität? Läuft er mit einer Kapazität von 50%? Wir haben keine anderen
Bedingungen. Es sind nur zwei. Entweder läuft der Computer
schnell oder er ist weder A noch B. Deshalb würde ich hier perfekt
arbeiten In diesem Beispiel haben
wir jedoch mehr als
zwei Optionen, da wir es
auch hier
mit dem Wetter zu tun Wenn es also sonnig ist, können
wir eine Sonnenbrille tragen. Sonst, wenn es regnet. Okay, wir können einen Regenschirm nehmen. Und wenn es dann schneit, können
wir einen
dicken Mantel anziehen, oder? Aber jetzt sieh dir die
allerletzte Zeile an. Es sagt einfach etwas anderes. Sonst nicht. Denn im Grunde
schließen wir das Programm hier ab. Wir sagen, okay, wir haben
überprüft, ob es sonnig ist, wir haben überprüft, ob es regnet,
wir haben überprüft, ob es schneit Wenn es also keiner dieser drei ist, wird es
nur ein normaler Tag sein Also sonst, zieh dich einfach normal an. Okay? Also, die allererste hier ist wieder einfach ELs, weil
es zwei Bedingungen gibt. Die zweite hier, wir
haben die Anweisung s if weil es mehr
als zwei Bedingungen gibt. Tatsächlich gibt es vier verschiedene Ergebnisse, die auf dem Wetter
basieren. Deshalb können wir nicht mehr
einfach mit den I Ls arbeiten. Wir müssen
die S-if-Anweisung einführen. Hoffentlich
verstehen Sie, warum wir die Is-Anweisung
verwendet haben und
warum wir hier else if verwendet haben. Wenn Sie das nicht tun, werden Sie es vielleicht
hoffentlich viel besser
verstehen, sobald wir
mit der Erstellung der richtigen Programme unter Verwendung der Algorithmen beginnen , sobald wir
mit der Erstellung der richtigen Programme unter Verwendung der Algorithmen . Aber das war eine
Einführung in die Welt der Algorithmen sowie in die
Is else if Aussagen. Danke fürs Zuschauen.
Wir sehen uns in der nächsten Klasse.
19. If Else-Statements: Im vorherigen Video haben wir also kurz
die Konzepte von
Algorithmen sowie
die Is-If-Anweisungen besprochen . Jetzt werden wir es in
die Tat umsetzen. Wir werden tatsächlich ein Programm
schreiben, vom Benutzer eine Nummer
1-9 anfordert Nun, wenn die Zahl
größer als vier ist, werden
wir
sagen, warum so viel Sonst. Das heißt, wenn
es vier oder weniger sind, werden
wir sagen,
warum so wenig. Nun, die allerletzte Zeile, habe ich aus
einem bestimmten Grund unscharf gemacht , denn sobald wir dieses erste Programm geschrieben
haben, werden wir
eine zusätzliche Bedingung hinzufügen Ich möchte Ihnen noch nicht zeigen
, was diese zusätzliche Bedingung
ist Konzentrieren wir uns also darauf,
dieses Programm zu schreiben, oder? Also lass mich das einfach wegschleppen. Also gut. Und lass mich
das einfach entfernen Okay. Also der erste Teil
des Programms ist, dass wir eine
Zahl zwischen 129 anfordern wollen. Also, was können wir hier tun? Nun, zunächst können
wir eine Variable
namens N erstellen . In Ordnung,
für die Zahl. Und wir werden bestehen. Denken Sie daran, wir haben mit
der Eingabefunktion gearbeitet. Okay? Also werde ich Eingabe
sagen, weil das die Funktion ist, mit der ich Eingaben vom Benutzer
anfordern würde. Also werde ich Eingabe sagen
und ich werde sagen, gib
eine Zahl zwischen 129 ein. Okay? Lassen Sie uns zunächst sicherstellen, dass das funktioniert. Okay, gib eine Zahl 1—9 ein, lass mich einfach ein Leerzeichen
1—9 erstellen Lauf nochmal. Okay. In Ordnung. Also funktioniert die erste Zeile. Jetzt wollen wir überprüfen, ob die Zahl zwischen oder weniger als vier
liegt, richtig? Also werde ich
sagen, ob alles in Ordnung ist. Und dann die Ganzzahl, weil wir jede
Zahl, die wir angegeben haben, konvertieren wollen, wir wollen
sie in eine Ganzzahl weil der Benutzer sehr unartig
sein könnte Sie könnten
beschließen, beispielsweise
1.1, 4.5, 7.6 oder so
etwas bereitzustellen 1.1, 4.5, 7.6 oder so
etwas Also wollen wir
alles als Ganzzahl behalten. Also werde ich
unsere Variable jetzt in
die Integer-Funktion einbinden , oder? Also werde ich sagen, ich gebe eine Ganzzahl N, jetzt Leerzeichen und dann das
Symbol für mehr als vier, okay. Und jetzt pass
gut auf. Ich füge den
Doppelpunkt hinzu, okay? Du musst das immer hinzufügen, wenn du mit deinen
ELs-Statements arbeitest, okay? Also werde ich das sagen. Und jetzt hat
Python diese Zeile standardmäßig für mich geschrieben
, aber ich werde so oft sagen,
warum. Okay? Jetzt trete ein, und jetzt
werde ich etwas anderes sagen, wenn auch, okay. Und jetzt werde ich se sagen. Und dann neue Zeile einziehen, drucken. Und dann werde ich
sagen, so wenig. Okay. Also werde ich jetzt
weitermachen. Ach übrigens, stellen Sie
sicher, dass Sie in Ihrem S auch den
Doppelpunkt haben, okay? Lass uns gleich weitermachen und
das Programm starten und mal sehen. Geben Sie also Nummer 1-9 ein, ich sage sechs Drücken Sie die Eingabetaste. Sie können genau
dort sehen, dass es tatsächlich funktioniert. Warum so viel. Lassen Sie uns
das Programm erneut ausführen. Ich sage gleich drei, drei und
dann sage ich, warum so wenig. Es funktioniert also tatsächlich
, wie Sie sehen können. Also, ich werde das noch einmal
durchgehen, okay? Also zuerst die Hälfte N, die Variable,
die die Eingabe des Benutzers
akzeptiert ,
und die Eingabe in Frage, gib eine Zahl zwischen 129 ein. Okay? Also, jetzt werden
wir eine Bedingung erstellen , die überprüft, ob
der Wert dieser Zahl ist. Also haben wir uns entschieden,
die Eingabe in eine Ganzzahl umzuwandeln. Deshalb haben wir den INT. Eine Frage, die Sie
hier haben könnten, ist, warte eine Minute, Alex. Früher, als
wir eine Funktion
innerhalb einer anderen Funktion hatten , mussten
wir die
Klammern verwenden, richtig? Das ist, das ist nicht
gerade eine Funktion, okay? Es ist eher ein Algorithmus, eher eine Art Schleife, nur um den
Wert von etwas zu
überprüfen. Es ist selbst keine eigentliche
Funktion. Deshalb haben wir
die Ganzzahl nicht in Klammern gesetzt, okay? Also wird es
prüfen, ob die Ganzzahl, wenn sie größer als vier ist, nun ja, druckt, warum so viel? Das heißt,
wenn die Zahl
vier oder weniger als vier ist , wird
gedruckt, warum so wenig. Man kann sagen, dass es richtig funktioniert. Und das Einzige, worauf du achten
musst der
Doppelpunkt nach der Vier und auch nach
dem S. Und dann ist es auch sehr gute Praxis, dass ich das nicht getan habe,
wenn du mit
IL-Angaben oder S gehst , wenn du
einen guten Einzug hast, ich das nicht getan habe, okay? Ich hatte meine
gedruckten Kontoauszüge nicht direkt unter den
E- und L-Anweisungen Das ist überhaupt nicht gut. Das ist eine sehr, sehr schlechte
Programmiersyntax. Du willst also immer die
richtige Einrückung haben , okay? Nimm das, wann immer
du mit
den EL-Statements arbeitest . Okay. Jetzt werde ich unser Programm
zurückbringen .
Und sieh dir das an. Ich habe eine zusätzliche
Bedingung hinzugefügt
, die besagt , dass es sich bei der Zahl eine bestimmte Zahl handelt,
nämlich fünf. Nun, wir wollen Bingo sagen. Okay? Also, wie genau werden
wir das machen? Okay? Lass mich das wegschleppen. Okay. Jetzt sieh dir das an. Ich werde
hierher kommen , wo es heißt,
drucken warum so viel, und ich werde die
Eingabetaste drücken , weil wir das S I
zwischen der ersten If-Anweisung
und der abschließenden
S-Anweisung hinzufügen wollen zwischen der ersten If-Anweisung
und der , okay? Jetzt sage ich L, das ist die
Kurzform von S ob. Anstatt SF zu sagen, verwenden
wir LF in Python. Okay? Also L, wenn die ganze Zahl N gleich
ist oder,
tut mir leid, die Ganzzahl N. Wenn sie gleich fünf ist, ist
das Gleiche doppelt gleich Sinus, nicht nur eins, okay? Sonst, wenn die vom Benutzer
angegebene Ganzzahl fünf ist und ich jetzt den doppelten
Doppelpunkt
hinzufüge und dann sage ich, Entschuldigung, ich sage Drucken. Und dann in Klammern, Bingo. Okay? Also werde
ich es jetzt versuchen. Wir sind auf dem Programm. Und jetzt schauen wir mal,
ob das tatsächlich funktioniert. Zuallererst werde ich drei
eintippen, okay? Okay, es funktioniert also immer noch. Warum so wenig? Okay.
Versuchen wir es mit acht. Warum so viel. Okay. Und wenn ich jetzt fünf sage und
Enter drücke, raten Sie mal, was? Es heißt nicht Bingo, es sagt immer noch so
sehr warum. Du willst wissen warum? Weil das Python-Programm Zeile für Zeile
ausgeführt wird. Schauen Sie sich jetzt die
Hierarchie hier an. Die allererste Bedingung
, nach der Python
sucht , ist zu sehen, ob die Zahl größer als vier
ist. Und weil fünf
größer als vier ist, heißt
es sofort:
Okay, warum so viel? Es geht nicht einmal
weiter nach unten, um zu überprüfen, ob die Zahl gleich
fünf ist , denn die allererste Aussage
besagt im Grunde:
Hey, wenn die Zahl
größer als vier ist, dann drucke aus, warum so viel. Um dir das zu beweisen, werde ich
hier Folgendes tun, okay? Ich werde sagen, dass wir hier tatsächlich
die Hierarchie ändern sollten. Also werden wir
zunächst prüfen, ob die Ganzzahl tatsächlich gleich fünf
ist. Okay, lass das das
allererste sein, es prüft. Und jetzt werden
wir hier überprüfen, ob die
Ganzzahl größer als vier ist. Also habe ich im Grunde nur die Hierarchie
geändert. Also das allererste, was ich jetzt
überprüfen
werde ist,
ob die Ganzzahl
tatsächlich gleich fünf ist, dann heißt es Bingo, wenn sie nicht gleich fünf und
größer als vier ist, werden
wir y sagen. Und wenn es dann
nicht gleich fünf ist und wenn es nicht
größer als vier ist, dann drucke y so klein. Okay? Lass uns das Programm ausführen. Also werde ich jetzt gleich
herkommen, laufen lassen, lass mich zuerst fünf
hinzufügen und sehen, Enter, und los geht's. Bingo. Ich habe tatsächlich gearbeitet. Lassen Sie uns das Programm erneut
ausführen. Was ist, wenn ich zwei eingegeben habe? Treten Sie ein, warum so wenig? Eins, noch einmal,
lass uns mit sieben gehen. Eintreten, warum so viel? Sie können sofort sehen, dass es funktioniert. Die Hierarchie Ihrer
Befehle ist also extrem
wichtig, wenn
Sie
mit Python oder
Pgamming im Allgemeinen arbeiten mit Python oder
Pgamming im Wenn Sie
nach Bedingungen suchen, immer daran, dass Python eine
Bedingung erhalten hat,
die erfüllt ist Die Ergebnisse werden sofort
ausgedruckt. den verbleibenden Zeilen Ihres Programms wird es nicht weiter
gehen In den verbleibenden Zeilen Ihres Programms wird es nicht weiter
gehen. Also die Hierarchie
Ihrer Bedingungen, der Bedingungen, die geprüft werden, Ihrer Befehle ist
so, so wichtig. Und dann natürlich auch
das Wenige, was Sie wissen, zu
wissen, wo die Doppelpunkte hinzugefügt
werden müssen, solche Dinge Daran werden Sie sich
irgendwann gewöhnen. Am Anfang mag es etwas überwältigend
sein, aber wenn Sie anfangen, mehr Programme zu
schreiben, werden
Sie sich irgendwann
daran gewöhnen Das war's also für die Arbeit mit
den E L L If-Anweisungen. Danke fürs Zuschauen.
Wir sehen uns in der nächsten Klasse.
20. Einfache Passwortprüfung: Ordnung, lassen Sie uns
unseren allerersten
Code zum Thema
Cybersicherheit schreiben Code zum Thema
Cybersicherheit Dieser überprüft, ob ein benutzerseitiges Passwort
tatsächlich gültig ist oder nicht Sie können gerne versuchen, den Code selbst zu
schreiben. Wenn nicht, lassen Sie mich Ihnen zeigen,
wie Sie das machen werden. Als erstes
müssen wir
angeben, wie das Passwort lautet. Ich rufe die Variable auf, die hier
im Punkte-Passwort gespeichert ist. Lassen Sie uns einen Wert
für das Passwort angeben. Ich werde mich für
etwas sehr, sehr Generisches entscheiden. Sagen wir, Passwort
eins, zwei, drei. Das wird
das eigentliche Passwort sein. Ich bin mir übrigens nicht sicher,
ob ich das schon einmal erwähnt habe , aber
wenn Sie in Python einen Kommentar
oder einen Hinweis in Ihren Code einfügen möchten, können
Sie dies tun, indem Sie
das Hashtag-Symbol verwenden und
dann Ihren Kommentar eingeben Vielleicht habe ich das schon einmal erwähnt
. Wenn nicht, nun ja, da hast du's. Okay, das Startpasswort hier wird
Passwort eins, zwei, drei sein. Jetzt müssen wir den
Benutzer bitten, das Passwort einzugeben. Und sobald sie das
Passwort eingegeben
haben, können wir eine
EL-Anweisung ausführen, die überprüft ob das
eingegebene Passwort tatsächlich
korrekt ist oder nicht.
Wenn es korrekt ist, können wir
sagen, dass der Zugriff gewährt wurde Wenn nicht, sagen wir Zugriff verweigert. Das erste, was ich jetzt
tun werde, ist die Benutzereingabe einzuholen. Lassen Sie mich einfach meinen
Kommentar hinzufügen und als
ersten Schritt Benutzereingaben
abrufen sagen . Was wir jetzt tun werden, ist,
dass wir die Benutzereingabe aufrufen können. Wir können es das
eingegebene Passwort nennen. Dies wird die Variable sein
, die die Eingabe speichert. Genau hier
gefällt mir der Vorschlag, den
Python uns gegeben hat. Es heißt einfach, dass
das eingegebene Passwort gleichbedeutend mit Imputes ist, und dann werden wir
den Benutzer bitten ,
sein Passwort einzugeben Als Nächstes
müssen wir jetzt prüfen,
ob die Passwörter tatsächlich übereinstimmen oder nicht Wir möchten sicherstellen, dass
alles, was sie hier eingeben ,
mit dem von uns gespeicherten Passwort
übereinstimmt. Übrigens, es ist erstaunlich ich nicht weiß, ob Sie genau
dasselbe
auf Ihrem eigenen Bildschirm sehen , aber Python
schreibt buchstäblich nur den gesamten Code für mich. Ich verspreche dir, das ist das allererste Mal, dass ich diesen Code
tatsächlich auf Replet schreibe Ich verspreche dir, dass ich diesen Code noch nie
geschrieben habe. Es ist erstaunlich, wie
intelligent es ist, es ist so intelligent. Es weiß genau,
was ich eingeben möchte, und
genau das möchte ich tun. Ich möchte sagen, ob das beendete Passwort dem gespeicherten Passwort
entspricht.
Was werden wir tun? Wir werden drucken. Dann in Klammern, Zeichenkettenzugriff gewährt, tut mir leid. S, was werden wir drucken? Wir werden
Brackets und Mäntel drucken. Zugriff verweigert. Und da ist es. Lassen Sie mich den zusätzlichen
Mantel gleich dort ausziehen. Da hast du's. Das ist
unser Code genau dort. Sehr einfach, sehr
unkompliziert. Lass es uns versuchen. Ich werde rennen und jetzt werde ich
nach dem Passwort fragen. Versuchen wir es mit James 123. Hat das funktioniert? Nein,
Zugriff verweigert. Nun, es hat nicht
funktioniert. Lass uns rennen. Das Programm noch einmal. Versuchen wir es mit einem Passwort. Passwort, eins, zwei,
drei, drücken Sie die Eingabetaste und dann geht es los, der Zugriff
wurde gewährt, unser Code
funktioniert tatsächlich einwandfrei. Natürlich ist das nur ein
sehr einfacher Codeblock. Es ist nicht das gesamte
Programm selbst, aber dies ist der allererste
Schritt zur Erstellung
eines umfassenderen
Passwort-Checkers Danke, dass du dir das
Video angesehen hast. Wir sehen uns in
der nächsten Klasse.
21. Einführung in Loops: Lassen Sie uns nun über Loops sprechen, die mit Sicherheit einer
der wichtigsten Aspekte
jeder Art von Programm oder
Programmiersprache sind der wichtigsten Aspekte . Aber was genau sind sie? Nun, sie werden
normalerweise verwendet, um
einen Codeblock mehrmals zu wiederholen einen Codeblock mehrmals bis eine bestimmte
Bedingung erfüllt ist oder für eine festgelegte Anzahl
von Iterationen Mit anderen Worten, eine
Schleife läuft, bis alle Elemente in einer Sequenz oder
Liste verarbeitet wurden, oder die Schleife läuft
weiter, solange eine Bedingung
weiterhin zutrifft oder erfüllt ist Im Grunde ist es also eine Schleife. Ich werde so weitermachen und weiter und weiter und weiter, bis
irgendwann etwas passiert. Jetzt sind sie sehr
wichtig, weil sie uns helfen,
sich wiederholende Aufgaben zu automatisieren Anstatt also dieselbe Aufgabe
immer wieder
wiederholen zu müssen , können
wir einfach
eine Schleife schreiben, die diese Aufgabe
automatisch für uns
ausführt, und natürlich verwenden
wir Schleifen, um
effiziente Programme zu erstellen, die sich an
dynamische Bedingungen anpassen Und wenn es um Schleifen geht, gibt es zwei Haupttypen. Der erste wird
der Vier-Loop-Modus sein. Schau dir das an, okay? Wir
haben eine Liste von 129, okay? Zahlen. Und wir können ein sehr einfaches
Programm
schreiben, das sagt:
Hey, drucke jede Zahl aus. Also einfach eins, zwei,
drei, vier, fünf, sechs,
sieben, acht, neun drucken . Aber anstatt jede einzelne Zeile
für jede einzelne Zahl
schreiben zu müssen ,
eine, Sie wissen schon,
eine, zweite Zeile
drucken, zwei, dritte
Zeile drucken, drei drucken zu müssen, können
wir einfach eine Schleife
schreiben, die
alle Zahlen in dieser Liste durchläuft und dann diese
Zahlen ausdrucken, bis natürlich die letzte Zahl gedruckt
wurde , nämlich neun. Dies wird eher
die Definition oder ein Beispiel für eine Viererschleife sein. Die zweite ist die W-Schleife. Nehmen wir zum Beispiel an, die Uhrzeit liegt zwischen 12:01 Uhr und 16:59 Uhr. Solange die Tageszeit
also zwischen
diesem Bereich liegt, sagen wir, guten Tag diesem Bereich liegt, sagen wir, guten Beachten Sie den Unterschied
zwischen den beiden Strukturen. Okay? Die
erste hier, die Fol-Schleife,
hat schon eine vordefinierte
Liste oder Sequenz Und solange wir Elemente in
dieser bestimmten Liste haben ,
dann tu etwas Die Wil-Schleife ist ein
bisschen anders, weil
sie sagt: Okay, solange diese Bedingung
weiterhin erfüllt oder diese Bedingung
weiterhin wahr ist, was ist die
Bedingung hier? Solange die Zeit
zwischen 12:00 Uhr, 13:00 Uhr und 16:59
Uhr liegt , guten Tag. In Ordnung. Beim Schließen müssen Loops
einen Endpunkt haben ,
sonst laufen sie ewig Im Grunde genommen kann eine Schleife das
gesamte Programm zum Erliegen bringen. Schauen wir uns das
Beispiel hier an. Was wäre, wenn die Zahlen in dieser Liste Nummer eins bis
unendlich wären, oder? Das bedeutet,
dass das Programm die Zahlen immer
und immer wieder
ausdrucken wird, und es wird niemals aufhören. Dadurch wird das Programm leicht
zum Absturz gebracht. Und was ist, wenn in diesem
Beispiel
gerade kein bestimmter
Zeitraum angegeben ist Was ist, wenn das Programm einfach
überprüft, ob es tagsüber
oder zu einem beliebigen Zeitpunkt in der
Nacht ist, sagen Sie guten Tag. Nun, es wird
immer einfach „Guten Tag“, „Guten Tag“, „
Guten Tag“, „
Guten Tag“, „Guten
Tag“ ausdrucken . Und irgendwann wird es auch das Programm
zum Absturz bringen. Deshalb ist es sehr, sehr wichtig, dass immer, wenn
wir mit Schleifen arbeiten, es immer eine
bestimmte Art von Bedingung geben muss , die irgendwann
erfüllt sein muss, damit diese Schleife endet. Andernfalls
stürzt das Programm ab. Danke, dass du dir das
Video angesehen hast.
Wir sehen uns in
der nächsten Klasse.
22. für- und währendend-Schleifen: Gehen Sie jetzt zurück zu unserem Treuhänder-Plot. Und ich werde
Ihnen zwei Beispiele geben. Eine für die Vierschleife und
eine für die Wil-Schleife. Um also
unsere Vier-Schleife zu
erstellen, erstellen
wir zunächst die Liste. In diesem Fall werde
ich jetzt
den Namen der Liste
als Namen angeben , okay? Gleich, und dann werde
ich meine Klammern hier drin haben. Und lassen Sie uns ein paar Namen hinzufügen. Also habe ich Alex. Ich habe Nancy. Und ich habe James. Und sagen wir, zu guter
Letzt habe ich Violetta Ehrlich gesagt habe ich mir gerade diesen Namen
ausgedacht. Violetta. Okay. Also wir haben hier eine Liste mit
vier verschiedenen Namen, richtig? Alex, Nancy, James
und dann Violeta. Eine Sache, die ich
jetzt tun kann, ist, dass wir
eine Variable erstellen können , die
jedes Element in der Liste repräsentiert In etwa so, wie wir Variablen Werte
zugewiesen haben , weißt
du, X ist gleich
vier, Y ist gleich sieben Ich kann jetzt reinkommen
und dann einfach vier sagen. Okay? Und jetzt sage ich vier X. In Namen. Okay? Was ist das hier, lass mich einfach den
Doppelpunkt genau dort hinzufügen. Was wir
mit dieser Aussage
hier gemacht haben , ist, dass wir sagen: Okay, wir werden X verwenden, um jeden
Namen in dieser Liste
darzustellen. X wird also gleich Alex
sein , das ist die
erste Schleife, die ausgeführt wird. Die zweite Schleife X
entspricht jetzt Nancy, sie wird ausgeführt. Die dritte Schleife wird nun
so sein, dass X gleich James ist. Und dann, endlich,
die allerletzte Schleife wird sein, dass X gleich Violet ist Das ist im Grunde das, was
das hier drin macht. Also sagen wir für X in Namen. Und jetzt müssen wir dem Programm
sagen, okay, was sollen wir tun? Nun, wir sollten den Namen X
ausdrucken .
Okay. Ich werde
rennen und da hast du es. Alex, Nancy James und Violetta. Aber was wäre, wenn ich
dieses Programm nur ein
bisschen aufpeppen wollte dieses Programm nur ein
bisschen aufpeppen und
sagen wir so etwas wie, du weißt schon, Guten Morgen, und dann den Namen
dieser Person Wir werden also guten
Morgen und Alex haben. Guten Morgen, Nancy.
Guten Morgen James. Und natürlich guten
Morgen Violetta. Wie werden wir das machen? Nun, innerhalb der
Druckfunktion werde
ich eine Zeichenfolge hinzufügen
, die zunächst „Guten Morgen“ sagt. Mir geht es gut. Und dann haben
wir das Komma ,
das übrigens nur ein Teil
des eigentlichen Ausdrucks selbst
ist des eigentlichen Ausdrucks selbst Es ist nicht Teil
des eigentlichen Programms,
wenn du weißt, was ich meine Es ist Teil der Zeichenfolge. Im Grunde das, was ich
versuche zu sagen. Wir können das auch ohne
das Koma machen , weißt du was? Lass mich das Komma entfernen,
nur damit ich dich nicht verwirre. Also werde ich
guten Morgen sagen, okay? Und dann füge ich
ein Leerzeichen hinzu , weil wir wollen, dass es ein Leerzeichen
zwischen der eigentlichen Zeichenfolge Guten Morgen“ und dann
dem Namen der Person ist. Deshalb habe ich das
Leerzeichen genau dort hinzugefügt, okay? Und dann, genau hier, füge
ich das
Pluszeichen und dann X hinzu. Also füge ich im Grunde
den Namen
der Person „Guten Morgen“ hinzu Lassen Sie uns das Programm ausführen
und los geht's. Guten Morgen, Alex.
Guten Morgen, Ansy Guten Morgen, James.
Guten Morgen Violetta Nun, wenn ich dieses Leerzeichen entferne , weil ich möchte, dass du das sehr gut
verstehst Wenn ich dieses Leerzeichen jetzt entferne und das Programm erneut starte, können
Sie sofort sehen, dass
alles zusammengebrochen ist, okay? Es gibt kein Leerzeichen zwischen Morgen und dem Namen der Person Deshalb habe ich wieder einmal das Leerzeichen genau hier
zwischen dem G und dem schließenden
Anführungszeichen
hinzugefügt , okay? Also, ich meine, noch einmal. Und da hast du's.
Dies ist ein Beispiel für eine sehr einfache Vierschleife. Zunächst haben wir
eine Liste mit Namen erstellt. Wir haben diese gesamte Liste
hier den
Variablennamen zugewiesen . Und dann müssen wir jetzt
eine weitere Variable erstellen ,
die jedes Element,
jeden Namen in dieser Liste repräsentiert . Also setzen wir vier X in der Liste namens Namen und jetzt die Funktion
print Guten Morgen, plus den Namen der
Person in dieser Liste. Dies ist ein Beispiel
für Ihre vier Loop. Was ich jetzt tun werde
, ist, einen wilden Loop
zu erstellen. Nun, um das zu tun,
lass uns hierher kommen. Und ja, wir können
mehrere Programme
und Funktionen in
genau derselben Datei ausführen , oder? Also, was ich jetzt
tun werde, ist etwas zu erstellen, das als Zähler
bezeichnet wird. Okay, Zähler ist also gleich Null. Also, was genau mache ich
hier? Was ist dieser Zähler? Denken Sie daran, dass
Wil-Schleifen so lange
weiterlaufen, wie eine Bedingung erfüllt ist. Das ist der Unterschied zwischen einer Fallschleife und einer While-Schleife. Mit dem Fall Loop haben wir
eine Liste von Gegenständen, oder? Die Schleife
durchläuft also einfach alle
Elemente in dieser Liste. Aber in einer Zeitschleife muss
es irgendeine Bedingung
geben, die erfüllt
wird. Und dann werden wir Python
sagen, hey, solange diese
spezielle Bedingung weiterhin erfüllt ist,
führen wir die Schleife aus. Die Bedingung hier im
Moment ist also, dass unser Zähler
zwar kleiner
als sagen wir drei ist, aber sehen
Sie jetzt, dass wir Hey,
solange unser Zähler, solange die Zahl
hier weniger als drei ist, machen wir
weiter. Und Sie können sehen, dass
Python
uns bereits einen Hinweis darauf gibt, wohin wir als Nächstes gehen sollen. Nun, ich
sage print, und dann füge ich genau dort einen
Text hinzu, die Zeichenfolge. Hallo. Okay? Und da hast du's. Also, was wir hier sagen,
ist, bei Null anzufangen, okay? Fangen Sie bei Null an
und überprüfen Sie dann ,
ob Null weniger als drei ist. Wenn es weniger als drei sind, drucken
Sie Hello. Wir sind jedoch noch
nicht fertig. Warum? Nun, weil wir Python nicht ausdrücklich
angewiesen
haben, dem Zähler eine neue
Zahl hinzuzufügen. Also statt Null
wird es jetzt Eins. Überprüfe, ob eins weniger als drei
ist und drucke dann Hallo aus. Das haben wir Python
noch nicht gesagt , weil eine Schleife in beide Richtungen gehen
kann. Wir können entweder weiter
hinzufügen oder eins,
zwei, drei zu Null, oder wir könnten in die
entgegengesetzte Richtung gehen, und dann, anstatt dass
Null zu eins geht, könnte
es Null sein, das auf minus eins,
minus zwei, minus
drei, minus vier
geht . Und in einem solchen Szenario werden
diese Zahlen immer kleiner als drei
sein, und die Bedingung wird niemals
erfüllt sein , oder sie wird
immer erfüllt sein
, und dann
wird das Programm abstürzen. Also müssen wir Python
explizit sagen: Hey, sobald du die
allererste Schleife ausgeführt hast bei der Null weniger als drei ist, füge dem Zähler eins hinzu. Also komme ich
jetzt rein und sage Zähler und dann ist
plus gleich eins Das ist unsere Art zu sagen: Okay, Python, der Anfang
der Schleife wird Null sein. Überprüfe, ob Null weniger als drei
ist. Wenn es weniger als
drei sind, drucken Sie Hallo und fügen Sie dann
einen Wert zum Zähler hinzu. Also wird es jetzt eins
bei weniger als drei sein. Python sagt, ja, eins ist
tatsächlich weniger als drei. Es wird Hallo aufschreiben. Es wird wieder eins hinzufügen, also aus eins werden jetzt zwei. Python wird prüfen: Okay,
es sind zwei weniger als drei,
ja, es ist weniger als
drei, gib Hallo aus. Und dann wird
es wieder eins hinzufügen. Also jetzt werden es drei. Und dann
wird Python schließlich sagen, okay, drei ist nicht weniger als drei,
weil drei gleich drei ist, und dann wird es die Schleife beenden Richtig. Lass uns
sofort weitermachen und rennen. Und da hast du es.
Hallo, hallo, hallo. Sie können genau dort sehen
, dass es bei
drei Schleifen aufgehört hat , weil die
allererste Schleife für Null sein wird. Die zweite Schleife wird für eine sein. Die dritte Schleife wird für zwei Personen sein. Wenn ich herkäme und sagen würde, okay, weniger als sieben rennen, können Sie
jetzt sehen, dass wir wieder
40, eins, zwei, drei,
vier, fünf, sechs, hallo haben 40, eins, zwei, drei,
vier, . Das ist also der Unterschied zwischen
dem Four-Loop und dem Wild-Loop Sie können jetzt
mit der Vierer-Schleife sehen, wir haben unsere Liste oder
unseren Weg und dann durchläuft
die Schleife jedes einzelne Element in diesem Array und es
wird etwas bewirken. Aber für die Wile-Schleife müssen
wir zunächst
angeben,
okay, was ist der
Startpunkt Und dann geben wir jetzt
die Bedingung an: Okay, solange das dem entspricht
oder das ist weniger als das, oder
das ist das, tun etwas und fügen dann
entweder eins hinzu oder
entfernen eines oder tun einfach etwas, um
sicherzustellen , dass die Schleife
jetzt tatsächlich zu laufen beginnt Das ist der Unterschied
zwischen der
Vierer-Schleife und der While-Schleife Natürlich werden wir
in diesem Kurs viel mehr
mit
Vier-und-Wile-Schleifen arbeiten diesem Kurs viel mehr
mit
Vier-und-Wile-Schleifen Aber danke fürs
Zuschauen. Ich sehe dich in der nächsten Klasse.
23. Die BREAK-Erklärung: Lassen Sie uns nun über die
Break-Anweisung sprechen ,
weil sie eine
sehr, sehr aussagekräftige Aussage ist ,
und wir werden in diesem Kurs damit
arbeiten. Aber bevor ich das mache, möchte
ich
Ihnen nur eine andere Methode
zeigen tatsächlich
ausdrucken die Namen in diesem
speziellen Beispiel tatsächlich
ausdrucken können. Im Moment sagen wir Guten Morgen und dann Plus und
dann X. X ist natürlich die Variable
, die
jeden Namen in unserer Liste repräsentiert. Eine andere Art, das zu schreiben ,
wäre, so
etwas zu tun. Zuallererst werde
ich das Plus X entfernen .
Okay. Aber jetzt werde ich gleich
zu
Beginn hierher kommen. Ich werde F eingeben, okay. Und jetzt, genau hier, werde
ich
meine lockigen Zahnspangen hinzufügen, nicht die üblichen,
sondern die Und jetzt gebe ich hier
einfach X ein. Okay? Ich kann das Programm ausführen
und Sie können jetzt sehen, dass wir genau die gleichen Ergebnisse haben. Das hier ist
eine andere und auch effizientere
Methode, um die Werte
der Variablen in
einer Liste oder einem Array in
einer Vier- oder Zweieransicht
auszudrucken die Werte
der Variablen in
einer Liste oder einem Array in
einer Vier- oder Zweieransicht
auszudrucken . Richtig? Und wir werden in Zukunft so
laufen. Nun, die Break-Statement, was genau ist die
Break-Erklärung? Es wird verwendet, wenn wir eine Schleife vorzeitig
beenden wollen. In diesem Flop
, den wir gerade
sehen,
wird es zum Beispiel einfach alle Namen
in unserer Liste
durchgehen und dann Guten Morgen und dann den
Namen der Person
ausdrucken, richtig? alle Namen
in unserer Liste
durchgehen und dann Guten Morgen und dann den
Namen der Person
ausdrucken , richtig Aber was wäre, wenn
wir aus dem einen oder anderen
Grund die Schleife
beenden wollen,
sobald James erreicht ist, wir wollen nicht Guten Morgen Violeta
ausdrucken,
weil wir Violeta nicht
mögen Hier könnten wir
die Break-Anweisung verwenden , um die Schleife
vorzeitig zu beenden Um das zu demonstrieren, werde
ich
ein völlig anderes
Programm schreiben , okay? Also lass uns das richtig machen? Ich werde sagen
wir Zahlen eintippen. Ich werde
genau hier eine neue Liste erstellen, Zahlen sind gleich, und ich werde hier
meine Klammern setzen Und lassen Sie uns mit einer
Reihe von Zahlen beginnen. Ich nehme eins, drei. Gehen wir mit sieben, acht, zehn und gehen wir mit 11 und fügen wir
noch eine hinzu, sogar Nummer 14. Okay? Also, wir haben hier eine Liste
von Zahlen, und was wir
jetzt tun wollen, ist,
eine Schleife zu erstellen , die sich
durch alle Zahlen zieht. Sobald jedoch die erste gerade
Zahl erreicht ist, wollen
wir die Schleife beenden,
was bedeutet, dass
wir, sobald die
Zahl acht ist, die Schleife beenden, also sollte sie viermal laufen. Die erste Schleife für 1
Sekunde p für drei, dritte, suche nach sieben, vierte Schleife für acht. Also denk
darüber nach, oder? Wir werden zuerst
die Fallschleife erstellen und dann die
I-Anweisung einführen. Also, ich verkaufe mich,
wird prüfen, okay, ist diese Zahl wirklich
gerade oder ist sie ungerade? Wenn sie gerade ist, dann unterbrich die Schleife, weil wir sonst
die erste gerade Zahl gefunden haben. Wenn es keine gerade Zahl ist,
wenn es eine ungerade Zahl ist, fahren Sie mit der Schleife fort. Also, wie werden wir das machen? Gatap, rein in die
Herbstschleife vier, sagen wir, Num. Okay, Num wird
für die Zahlen stehen. Übrigens, ich bin mir nicht
sicher, ob ich das schon einmal erwähnt habe,
aber ich denke, es ist an der Zeit, dass ich das tue. Siehst du, ich habe nur die Nummer eingegeben
. Sie können
gerade auf meinem Bildschirm sehen, Python bereits in
Zahlen vorschlägt , weil Python
eigentlich ziemlich intelligent ist, oder? also in einer solchen
Situation
mit dem Vorschlag, Wenn Sie also in einer solchen
Situation
mit dem Vorschlag, den Ihnen
das Programm gegeben hat, zufrieden sind , können
Sie einfach die
Tabulatortaste auf Ihrer Tastatur drücken, und Sie erhalten
genau das gleiche Ergebnis, oder? Also habe ich vergeben
, dass ich nicht sprechen kann. Ich habe die Nummer des Tabs aufgezeichnet. Oder die Tipptaste auf meiner Tastatur, und jetzt habe ich
vier Zahlen Ich werde meinen Doppelpunkt hinzufügen. Okay? Jetzt füge ich die If-Aussage hinzu, und
würdest du dir das ansehen? Ich verspreche dir, ich habe dieses Programm noch nie getippt, aber ich denke, Python
ist so intelligent Ich habe schon eine Vorstellung davon
, wonach ich suchen könnte. Ja, ich will, ob Zahl und dann Prozent
zwei gleich Null Also was genau ist das?
Was ist hier los? Was das bedeutet, ist, dass wir überprüfen ob die
herausgezogene Zahl, ob sie durch zwei teilbar ist und der Rest gleich Null ist,
dann wissen wir mit Sicherheit, dass
es sich um eine gerade Zahl handelt Wenn Sie sieben durch zwei teilen, erhalten
Sie 3,5, 3,5 Es wird immer so bleiben, dass der
Rest nur noch die Hälfte übrig ist. Aber wenn Sie
acht durch zwei teilen, lautet
die Antwort direkt vier. Es ist nicht 4.1, es ist nicht 4.2. Es ist nicht 4,5, es sind vier. So können wir also überprüfen, ob die Zahl tatsächlich gerade ist. Wenn die Zahl also
tatsächlich gerade ist, was tun wir dann? Sagen wir drucken. Okay. Und jetzt füge ich die F-String hinzu. Okay, und jetzt hat die
eigentliche Zeichenfolge selbst die erste gerade Zahl
gefunden. Okay, fügen wir mein Komma hinzu. Und jetzt möchte ich
die tatsächliche Zahl anzeigen, geschweifte Klammern, und was
wird das sein? Es wird taub sein. Okay. Fantastisch. Also haben wir hinzugefügt, was das Programm tun
soll, wenn die Zahl tatsächlich eine gerade Zahl ist. Prince sagt: Okay, wir
haben die erste Zahl gefunden und jetzt machen wir Schluss. Wir brauchen den
Loop nicht mehr zum Laufen. Mach es kaputt, es ist vorbei. Wir haben
die erste böse Zahl gefunden. Wir kommen hier raus.
El. Stellen Sie sicher, dass Sie Ihre Tabs haben. Denken Sie daran, dass die Tabellierung
extrem wichtig ist, okay? E und L s müssen
auf derselben Registerkarte sein,
richtig, derselben
Einrückung, richtig? Also einfach ausdrucken, sagen
wir einfach drucken Ich füge meine Klammern hinzu und
dann meine Mäntel und
suche immer noch nach dieser geraden Zahl. Und da ist sie. Okay. Lass uns jetzt weitermachen. Führen Sie das Programm aus
und da ist es. Ich suche immer noch nach
dieser geraden Zahl. Ich suche immer noch nach
dieser geraden Zahl. Ich suche immer noch nach
dieser geraden Zahl. Oh, sieh mal, wir haben die
erste gerade Zahl gefunden, und die Zahl ist acht. Das ist die Verwendung
der Break-Anweisung. Lass es uns in einem wilden L benutzen . Um das zu tun, werde ich den ganzen Weg hierher
kommen. Und lassen Sie uns ein
sehr einfaches Programm erstellen , das den Benutzer
auffordert, etwas als oder
einen bestimmten Buchstaben einzugeben,
und solange der
Buchstabe nicht Q entspricht,
fragt er auffordert, etwas als oder
einen bestimmten Buchstaben einzugeben, und solange der
Buchstabe nicht Q entspricht, den
Benutzer einfach weiter nach einem neuen Buchstaben, okay? Das ist also im Grunde die Bedingung, die erfüllt sein
muss. Während der Benutzer
also ABCDEF eingibt, bitten Sie den Benutzer
immer wieder, einen neuen Buchstaben einzugeben ,
solange es nicht Q bitten Sie den Benutzer
immer wieder Also ich werde sagen, obwohl es wahr ist, was das gerade macht, das ist eine sehr
einfache Funktion oder Schleife in Python, die
automatisch eine Bedingung
erzeugt hat , die immer
wahr ist, sofern nicht etwas
anderes passiert. Denken Sie daran, dass
es bei
den Wild-Loops eine bestimmte
Bedingung geben muss, die
kontinuierlich erfüllt werden muss , damit die Schleife tatsächlich ausgeführt werden kann, und dass sie dann beendet
werden muss, sobald eine ganz bestimmte
Bedingung erfüllt ist. Also gehen wir jetzt
davon aus , dass die Bedingung immer wahr
ist, und jetzt werde ich Benutzereingaben eingeben. Dies wird
die Variable sein, die den Buchstaben
darstellt, den der
Benutzer tatsächlich eingeben wird. Ich sage also,
Benutzereingabe ist gleich, und jetzt merkt sich die Eingabe
die Funktionseingabe, die den
Benutzer nun auffordert, etwas einzugeben Also werde ich sagen, gib einen Buchstaben ein und
dann in Klammern sage
ich: Oh, gib Q ein. Okay. gib einen Buchstaben ein und
dann in Klammern sage
ich: Oh, gib Q ein. Okay.
Geben Sie Q ein, um das Programm zu
beenden Okay? Also geben wir den
Benutzern hier die Wahl, okay? Sie können entweder einfach
einen Buchstaben eingeben oder, wenn Sie das Programm beenden
möchten, einfach Q eingeben, okay? Also werde ich die Eingabetaste drücken. Geben
wir nun die Bedingung , dass wir
überprüfen müssen , ob die
Eingabe tatsächlich Q war oder nicht. Also werde ich gleich
reinkommen die If-Anweisung
hinzufügen Also werden wir überprüfen, ob
die Benutzereingabe Q entspricht. Was sollen wir Nun, ich werde
Drucken sagen. In Klammern. Und ich werde sagen, dass Sie sich
entschieden haben, das Programm zu beenden. Wählen Sie, das Programm zu beenden. Drücken Sie die Eingabetaste und schon ist es da. Und jetzt, da sie sich für oh
entschieden haben, lassen Sie mich hier die
abschließenden Zitate hinzufügen. Da sie sich entschieden haben, das Programm
zu beenden, werden
wir
jetzt den Kreislauf durchbrechen. Andernfalls werde
ich
jetzt hier reinkommen und dann „Drucken“ sagen. Und jetzt F-Codes, getippt. Und jetzt denken Sie daran, dass
ich in
den geschweiften Klammern Benutzer bei den
Punkteeingaben sagen werde Und da ist es. Ordnung? Geh
sofort weiter. Führen Sie das Programm aus. Okay, jetzt heißt es Geben Sie einen Buchstaben ein, ich
werde Y sagen.
Drücken Sie die Eingabetaste. Okay? Jetzt
heißt es: Okay, Sie haben Y eingegeben. Geben Sie einen anderen Buchstaben ein,
ich sage A. Noch
einmal läuft es,
bis ich jetzt Q eintippe, und jetzt hat es das Programm
beendet Und genau hier
kombinieren wir die Our Wil Anweisung,
die Wile Loop eher mit
der Lassen Sie mich das noch einmal
durchgehen. Ich weiß, dass Sie vielleicht eine
Frage haben, warum haben wir
das S nicht eingegeben, weil wir die
I-Anweisung haben. Also wo ist das S? Nun, wir könnten tatsächlich
das S hinzufügen . Es wird
genau hier sein, und ich sage einfach se. Und dann das Tab-Byte hier
print, du hast das getippt. Also kann ich jetzt weitermachen. Führen Sie genau dasselbe
Programm erneut aus. Okay? Ich komme
gerade her und tippe G. Es funktioniert gut, tippen, es funktioniert gut, Q
eingeben , Enter eingeben, und jetzt funktioniert
es genauso. Eine Sache, die Sie hier verstehen
müssen
, ist , dass der Grund, warum die
else-Anweisung hier
fakultativ ist, darin besteht, dass
wir mit
der Wild-True-Schleife,
der Bedingung, arbeiten . Es wird also
automatisch davon ausgegangen , dass die Bedingung immer wahr sein
wird. Und jetzt verwenden wir hier die
Break-Anweisung, um
bewusst zu steuern, wann
die Schleife tatsächlich enden würde. Die Ls-Anweisung ist hier also wirklich nicht erforderlich
. Die Schleife wird immer laufen weil wir Wild true
gesagt haben, und wir werden erst mit
der Break-Anweisung aufhören , wenn der Benutzer den Buchstaben Q eingegeben
hat. Also wirklich, die Ls-Anweisung
hier ist nicht notwendig Sie können es immer noch eingeben. Das Programm wird immer noch einwandfrei
funktionieren. Aber wann immer Sie
mit dem wilden True und dann mit den
Break-Anweisungen weitermachen, brauchen
Sie die
Ls-Bedingung nicht mehr hinzuzufügen. Also haben wir
in diesem speziellen Video ziemlich viel gemacht. Hoffentlich konntest
du mir folgen und du
verstehst jetzt hoffentlich , wie die
Break-Anweisung verwendet wird. Vielen Dank, dass Sie
sich das Video angesehen haben. Wir sehen uns in
der nächsten Klasse.
24. Probiere mit Aussagen: Nun, komm zurück. In
der vorherigen Lektion haben wir erfolgreich
dieses spezielle Programm erstellt , das vom Benutzer eingegebene
positive Zahlen akzeptiert . Es untersucht Zahlen in einer Liste, und zwar solange bis der Benutzer das Wort fertig
eingibt. Und am Ende wird
es
ausdrucken, ob es eine gerade Zahl gab, es wird die
erste gerade Zahl ausdrucken und irgendwann
auch
alle Zahlen in der Liste ausdrucken. Eine Sache, die wir jedoch entdeckt haben,
war, dass wir, als wir das Programm starteten
und,
sagen , anstelle einer tatsächlichen Ganzzahl
wie acht oder neun, sagen
wir, 8,6 hinzufügten, oder? Als wir die Eingabetaste drückten, hatten
wir am Ende diesen speziellen
Pfeilnachrichtenwert Pfeil. Wenn wir das Programm nun
erneut ausführen und statt 8.5 sage
ich, wissen Sie, IOF, ich tippe
stattdessen Buchstaben ein und drücke die Eingabetaste Sie können
noch einmal sehen, dass wir auch genau den gleichen Fehler
haben Und das liegt daran, dass unser
Programm
so konzipiert wurde , dass es voraussichtlich nur
positive Zahlen erhält. Wenn wir das Programm noch
einmal ausführen und ich, sagen
wir, minus sechs eingegeben habe, was eine negative Zahl ist,
und ich die Eingabetaste gedrückt habe, können
Sie sehen, dass es in gewisser Weise tatsächlich
funktioniert Es akzeptiert die negative Sechs, weil es
eine tatsächliche Zahl ist Es ist einfach zufällig negativ. Aber das verfehlt immer noch
den Zweck, weil wir wollen, dass der Benutzer
nur positive
Zahlen eingibt Es hätte also nicht einmal diese negativen
sechs akzeptieren sollen. Wir haben also einige Probleme mit unserem speziellen Programm, und wir müssen jetzt
etwas einführen,
das als Try und dann
als Accept-Block bekannt ist. Der Tri-Block in Python
ist also im Grunde Teil eines sogenannten Ausnahmebehandlungsmechanismus, es uns im Grunde ermöglichen würde, Fehler, die während der
Ausführung unseres Codes auftreten
könnten,
abzufangen und zu behandeln . Wenn also
innerhalb des Tri-Blocks ein Fehler auftritt, stürzt
das Programm nicht ab. Stattdessen wird der Fehler
abgefangen und der Code
im zugehörigen Except-Block
wird dann ausgeführt. Denken Sie daran, dass
es nicht nur darum geht Benutzer bei der
Eingabe
ihrer Eingaben einen Fehler machen. Es ist auch möglich, dass ein
Hacker bewusst versucht, Werte
einzufügen ,
die das Programm nicht
akzeptiert , um das Programm
tatsächlich zum Absturz diesem Grund müssen wir immer sicherstellen,
dass unsere Programme, wann immer sie
Eingaben vom Benutzer akzeptieren, erstellen und gestalten so erstellen und gestalten,
dass
sie in der Lage sind, unsere falschen
Eingaben vom Benutzer zu verarbeiten Wie können wir nun
bestimmte Fehler erkennen? Also, ich werde
herkommen. Wir brechen ab, okay? also Wir beginnen also hier,
weil wir hier überprüfen
werden, ob
der Benutzer entweder das fertige
Wort oder eine tatsächliche Zahl
hinzugefügt hat . Also nach der Pause, richtig? Nach der Pause, weil
die Pause nachschauen wird, okay, ist es fertig? Wenn es nicht fertig ist, wird
es jetzt ausgeführt. Hier
werden wir jetzt
die Wörter oder besser gesagt
das Wort Versuch eingeben , weil wir
wollen, dass das Programm hier einen Pfeil
fängt, falls es einen gibt. Also jetzt heißt es Versuch und dann Doppelpunkt. Und jetzt das hier, wir können es einfach abtippen. Okay, lassen Sie mich
es einfach hier präsentieren. Wir sagen
hier also , dass, wenn der
Benutzer fertig eingibt, das Programm
einfach kaputt macht. Es tut mir leid, unterbreche den Kreislauf. Wenn es sich jedoch um
eine tatsächliche Zahl handelt, lassen Sie uns überprüfen
, ob diese Zahl positiv ist. Im Moment haben wir also die
Kreditvariable NUM wir haben die
Benutzereingabe zu NUM hinzugefügt. Lassen Sie uns nun überprüfen,
ob sie positiv ist. Der einfachste Weg, dies zu überprüfen,
wäre, einfach zu sagen ob die Zahl kleiner als Null ist. Dies ist der einfachste
Weg, dies zu überprüfen. Wenn die Zahl
tatsächlich kleiner als Null ist, sagen
wir Drucken Bitte geben Sie eine positive Zahl ein. Jetzt ist es so, weil danach kommt. Nun, ob es sich
tatsächlich um eine positive Zahl handelt, fügen
wir
sie jetzt einfach Wir werden der Num-Variablen zwei Zahlen anhängen,
und das war's hier
. und das war's hier Okay? Und schließlich,
weil wir es versucht haben, schließen
wir es mit der Accept-Anweisung ab. Im Grunde sagen
wir hier
also : Hey, wenn
der vom Benutzer angegebene Wert tatsächlich
kleiner als Null war, dann drucken Sie, geben
Sie bitte eine positive Zahl ein. Aber was ist, wenn der Benutzer
keine Zahl eingegeben hat? Was wäre, wenn sie im Grunde Buchstaben
oder Zeichenketten eingeben würden, oder? An dieser Stelle kommt jetzt die
Ausnahme ins Spiel. Also sagen wir
außer Wertfehler, okay? Wenn es also einen
tatsächlichen Fehler
im Wert selbst gibt , weil
es sich nicht um eine Zahl handelt, sagen wir
jetzt, drucken Sie, geben
Sie bitte eine gültige Zahl ein. Und das ist es genau dort. Lassen Sie uns also versuchen, zu sehen
, ob das funktioniert. Also werde ich
jetzt weitermachen und das Programm ausführen. Okay? Also, was ich jetzt
tun werde, ist ,
auf minus sechs zu gehen und Enter zu drücken. Sie können hier sehen, dass es heißt: Bitte geben Sie eine positive Zahl ein. Aber was ist, wenn ich zum Beispiel eine Zeichenfolge
wie diese eingegeben habe, jetzt heißt es, bitte
gib eine gültige Zahl ein Siehst du, wie das funktioniert, oder? Lassen Sie mich Ihnen das
alles noch einmal erklären. Im Grunde genommen genau
hier, wo wir die Eingabe
des Benutzers
akzeptieren. Wir
möchten überprüfen, ob
es sich tatsächlich um eine positive Zahl handelt. Der beste Weg ist, wenn diese
Zahl kleiner als Null ist, dann wissen wir, dass sie negativ ist, und
wir können sie ausdrucken. Bitte gib eine positive Zahl ein. Wenn sie andererseits größer als Null
ist, wissen
wir, dass es sich um eine positive Zahl handelt. Wir können
jetzt weitermachen und das Taubheitszeichen an
die Zahlenliste anhängen die Zahlenliste anhängen Und jetzt
müssen wir sagen: Okay,
aber was ist, wenn es bei der Art der Eingabe, die der Benutzer
eingegeben hat
, tatsächlich einen Fehler
gab Art der Eingabe, die der Benutzer
eingegeben hat
, Vielleicht war es keine
positive Zahl. A, vielleicht war es nicht einmal
eine negative Zahl. Vielleicht war es wie Buchstaben oder Wörter oder etwas ganz
anderes. Wir können dann sagen: Bitte
gib eine gültige Zahl ein. Hier
kommt die Ausnahme ins Spiel. Das war's also mit den Try
and Except-Aussagen. Danke, dass du dir das
Video angesehen hast. Wir sehen uns in
der nächsten Klasse.
25. Erklärung fortsetzen: Bevor wir den Abschnitt
über Schleifen und Flusskontrolle zusammenfassen, möchte
ich mir noch eine weitere Aussage
ansehen, und das wird
die Continue-Aussage sein. Bisher haben wir
mit der Break-Anweisung gearbeitet, und diese wird
natürlich verwendet, um
die Schleife zu beenden , sobald eine bestimmte
Bedingung erfüllt ist. Aber was wäre, wenn
wir aus dem einen oder anderen
Grund einfach
eine bestimmte Iteration
oder einen Teil einer Schleife überspringen wollten eine bestimmte Iteration
oder einen Teil einer Schleife Wir wollen die Schleife nicht
genau beenden. Wir wollen nur
einen bestimmten Schritt überspringen. Hier
kommt Continue ins Spiel. Lassen Sie mich ein Beispiel geben. Lassen Sie
mich diesen Code einfach entfernen. Lassen Sie uns für eine Zahl ohne
Bereich 16 sagen. Jetzt fragst du dich wahrscheinlich,
was genau ein Bereich ist. Range ist hier einfach eine eingebaute
Funktion in Python, die Zahlen
zwischen einem bestimmten Bereich generiert In diesem Fall sagen
wir im Moment die Zahlen 1—6. Bitte denken Sie jedoch daran, dass, wenn Sie
mit der Bereichsfunktion arbeiten, die erste Zahl hier, die Eins ist, inklusiv ist, während die
letzte Zahl hier,
die sechs ist, nicht
inklusiv ist, um exklusiv zu sein Wenn ich einfach sagen würde, okay, einfach drucken und dann in Klammern, einfach die Zahl
ausdrucken. Sie werden sofort sehen, dass
wir eins,
zwei, drei, vier, fünf bekommen werden. Bitte behalte das im Hinterkopf. Jetzt druckt die Funktion
standardmäßig eins,
zwei, drei, vier, fünf. Aber was wäre, wenn wir in diesem Fall drei
überspringen wollten? Wir wollen, wenn wir
eins, zwei, vier
und dann fünf drucken wollen, wie werden
wir das machen? An dieser Stelle wird die kontinuierliche Aussage ins Spiel kommen. Aber zuerst muss
ich
die If-Anweisung erstellen, um zu überprüfen, ob die Zahl gleich
drei ist, oder? Also jetzt sage ich, wenn es
gleich drei ist, mach einfach weiter. Ich muss
die Aussage hier nicht hinzufügen denn wenn Sie mit
der kontinuierlichen Anweisung arbeiten , wird
sie verstanden. Python wird einfach sagen, wenn ich bei drei bin,
werde ich es auslassen. Ich überspringe drei und mache dann einfach mit
dem Rest der Schleife weiter. Wenn ich das Programm
ausführen würde, können Sie
jetzt sehen, dass es eins, zwei, vier und dann fünf ist. So würde die
Continue-Anweisung im Grunde funktionieren. Lassen Sie mich Ihnen ein weiteres
sehr kurzes Beispiel geben. Was wäre, wenn ich
den Bereich hier von
eins auf sagen wir 11 erweitern würde. Aber jetzt wollten wir nach
geraden Zahlen
suchen und dann einfach diese geraden Zahlen
behalten, wir wollen nur die ungeraden Zahlen
ausdrucken. Nochmals, wie
werden wir das machen? Lassen Sie uns zunächst überprüfen,
ob es durch
zwei teilbar ist, also werde ich
Prozent sagen und dann zwei genau hier
entspricht dem, was
Null in meiner Spalte entspricht . Jetzt sage ich einfach,
einfach
weiter und dann Nun, wenn Sie Sterni programmieren, können Sie sehen, dass es einfach eins,
drei, fünf, sieben und neun So funktioniert die
Continue-Anweisung tatsächlich. Lassen Sie mich nur eine
Minute damit verbringen,
etwas weiter über
die Bereichsfunktion zu sprechen . Es gibt noch eine Sache.
Dessen solltest du dir bewusst sein. Die Sache mit der
Bereichsfunktion ist, dass sie tatsächlich
drei Werte akzeptieren
kann. Lassen Sie mich als Beispiel
einfach meinen Hashtag hinzufügen. Bei Range können
Sie beispielsweise so etwas wie eins,
zehn und dann zwei haben . Die Bereichsfunktion kann
drei verschiedene
Parameter akzeptieren , oder? Falls du dich also fragst,
was genau werden diese sein? Nun, die allererste Zahl hier steht für
den Startwert, der eins ist, die zweite hier steht für
den Stoppwert
, der zehn sein wird, während der dritte Wert
jetzt zwei darstellt, die Schritte
, die übersprungen werden müssen Lassen Sie mich
Ihnen standardmäßig nur zeigen, wie das jetzt funktioniert. Wenn ich jetzt
herkommen und dann eins, zehn oder zwei
sagen würde. Lassen Sie mich nur als Beispiel das
Element „Weiter“ hier
entfernen Okay. Wenn ich jetzt
weitermache und diese Zahlen
ausdrucke, wirst
du sehen, dass es jetzt eins, drei, fünf, sieben und neun y ist? Weil wir alle zwei
überspringen. Der Schritt wird zwei sein,
also geht es zu eins,
es wird zu drei übersprungen, es
wird
zu fünf übersprungen und so weiter Wenn ich diesen
Wert jetzt auf drei ändern würde, können Sie sich vorstellen, wie die
Werte aussehen werden? Jetzt werden es 14, sieben sein. Also, wenn ich das Programm starte, hast du 147. Vielleicht arbeiten Sie
in Zukunft mit
der Bereichsfunktion oder auch nicht , aber ich fand es einfach wichtig, dass Sie
zumindest verstehen , dass die Bereichsfunktion bis zu drei
verschiedene Parameter
akzeptieren kann . Der erste Wert
hier ist der Start, zweite die Stoppnummer und dann der letzte
Wert hier die Schrittnummer. Denken Sie
daran , dass der Stoppwert immer exklusiv
ist. Es wird nicht in
den tatsächlichen Ergebnissen dieser
bestimmten Bereichsfunktion enthalten sein . Letzte Bemerkung,
letzte Bemerkung: Möglicherweise stoßen
Sie auch auf
eine bestimmte Aussage, Möglicherweise stoßen
Sie auch auf die
als Pass-Statement bezeichnet wird. Es geht einfach so.
Anstatt fortzufahren, wirst du
zum Beispiel Pass sehen. Pass macht eigentlich nichts. Ehrlich gesagt wird es wirklich
für die Weitergabe von Kommentaren verwendet. Vielleicht möchte
der Entwickler des Programms noch nichts ausführen,
möchte aber wie ein Knoten leben. Dafür wird die
Pass-Anweisung meistens verwendet. Wir werden überhaupt nicht damit
arbeiten. Also könnte
ich hier zum Beispiel etwas sagen
wie, Okay, Pass und dann kann ich meinen
Hashtag hinzufügen und ich kann sagen, dass ich die Funktion später hinzufügen
werde. Nur als Beispiel.
Lassen Sie mich einfach weitermachen und das Programm ausführen,
und Sie können jetzt sehen, das Programm trotzdem funktioniert, es wird nicht
funktionieren, es macht überhaupt nichts. Das ist so ziemlich alles. Danke, dass du dir das
Video angesehen hast. Wir sehen uns in
der nächsten Klasse.
26. Herausforderung im Programmieren: Ok, Neuling, jetzt ist es an der
Zeit,
dass wir versuchen, alles, was wir
bisher gelernt haben,
zusammenzufügen , um ein Programm zu schreiben Und das Programm, das wir wollen, ist das, das den Benutzer
auffordert immer wieder eine positive Zahl
einzugeben Wenn er das Programm beenden
möchte, kann
er einfach die Wörter oder das Wort fertig eingeben , um
das Programm zu
beenden Im Grunde sagen wir also:
Hey, Benutzer, füge immer wieder
eine positive Zahl hinzu. Füge die Zahl weiter hinzu. Füge die Zahl weiter hinzu. Wann immer Sie bereit sind, das Programm
zu beenden, tippen Sie
einfach fertig ein, oder? Während der Benutzer nun die Zahlen
zwei, drei, vier,
neun, 11, was auch immer es ist, eingibt, möchten
wir diese
Zahlen zu einer Liste hinzufügen. Wir möchten in der Lage sein, den Überblick über
alle Zahlen
zu behalten , die uns der Benutzer
immer wieder zur Verfügung stellt. Also werden wir
diese Zahlen zu einer Liste hinzufügen. Wir möchten aber auch, dass das
Programm
die eVO-Nummern überprüft , die der
Benutzer hinzugefügt hat, und die allererste
EVO-Nummer, die
angegeben wurde,
verfolgt , sodass wir sie
ausdrucken und dem Benutzer mitteilen können, dass ,
Hey, das war die erste
gerade Zahl, die Sie hinzugefügt haben,
und dann können wir angeben,
was diese Nummer war. Andernfalls, wenn der Benutzer nur ungerade Zahlen
hinzugefügt
hat, können wir
einfach sagen: Okay, in Ihrer Liste wurden
keine geraden Zahlen
gefunden. Sobald der Benutzer
mehrere Zahlen hinzugefügt hat und sich dann endgültig entscheidet, das Programm zu
beenden, möchten
wir, dass das Programm
alle Zahlen ausdruckt , die vom Benutzer hinzugefügt
wurden. Und wenn der Benutzer noch nicht einmal eine einzige Zahl
hinzugefügt hat, sagen
Sie einfach „Nein“ -Zahlen.
Krieg ist nicht schwer. Okay. Lassen Sie uns
das Schritt für Schritt angehen. Zuallererst
wollen wir eine Liste, oder? Nennen wir die
Liste Nummern, okay? Also werden wir
alle vom Benutzer
eingegebenen Zahlen hinzufügen . Wir werden sie zu
dieser Liste namens Zahlen hinzufügen. Also
werden wir natürlich
die Eingabefunktion verwenden, um , du weißt schon, den Benutzer
aufzufordern, Zahlen hinzuzufügen, oder? Okay. Und in diesem
Szenario
müssen wir
eine Wildschleife erstellen, weil wir wollen, dass der Benutzer immer wieder eine Zahl
hinzufügt oder
eine Zahl eingibt,
bis er das Programm beendet. Wir können also sagen, Sie wissen schon, obwohl es wahr ist, und dann fügt der Benutzer
immer wieder eine Zahl hinzu. Und dann wollen wir überprüfen,
ob die vom Benutzer
angegebene Zahl tatsächlich eine gerade Zahl war. Okay? Also brauchen wir so etwas wie ein El-Statement, das
prüft, ob die Zahl,
ob sie
durch zwei undurchführbar ist, weißt du, wenn das gleich Null ist, weißt du,
dann druckt, eine gerade Zahl, weißt
du, solche Sachen Weißt du, sonst sag
einfach nein, es wurden gerade Zahlen gefunden.
Aber was sonst? Denken Sie daran, dass wir
auch weiterhin
die Nummern hinzufügen möchten , die der Benutzer angegeben hat. Wir möchten sie
der Liste mit dem Namen Nummern hinzufügen. Also
müssen wir die Benutzereingabe an
die
Zahlenliste anhängen , oder? Und wir werden hier
eine neue Funktion
namens Append verwenden hier
eine neue Funktion
namens Append Ordnung, mach dir keine Sorgen. Ich
zeige dir, wie das funktioniert Worüber müssen wir noch
den Überblick behalten? Das ist
im Moment so ziemlich alles, oder? Also erstellen
wir zunächst unsere Liste mit dem
Namen Zahlen, und dort
müssen wir
den Benutzer auffordern , die Zahlen hinzuzufügen und zu
überprüfen, ob die
Zahlen gerade sind. Sobald die allererste gerade
Zahl gefunden wurde, lassen Sie das Programm sie
verfolgen und am Ende ausdrucken
, was diese gerade Zahl war. Und dann haben die
meisten Benutzer natürlich auch
am Ende des Programms
beschlossen, es zu beenden. Drucken Sie
einfach alle
Zahlen aus, die der Benutzer hinzugefügt hat . Also lass uns das machen, oder? Wir werden das
wegziehen und lassen Sie uns beginnen. Lassen Sie uns also
als Erstes
unsere leere Liste erstellen , die alle vom Benutzer
angegebenen Zahlen
enthält. Also sind Zahlen gleich
und dann leer, okay? Also der erste Schritt, den
wir machen werden. Lassen Sie uns nun den
Benutzer auffordern, die Nummer hinzuzufügen. Also sage
ich „while“ und jetzt „true Doppelpunkt), jetzt
wollen wir den Benutzer
auffordern, einige Zahlen einzugeben. Wir müssen jedoch
Benutzereingaben einer Variablen zuweisen. Sagen wir also Benutzer bei
Unterstrich-Eingabe. Okay, das steht für alles,
was der Benutzer hinzufügt. Benutzereingabe hier
entspricht den eingegebenen Klammern Lassen Sie uns
den Benutzer nun auffordern ,
eine positive Zahl einzugeben Okay? Oder in Klammern könnten
sie auch einfach
type done to finish eingeben. Okay? So weit, so gut,
wir haben Nummern vergeben. Wir haben unsere leere
Liste genau dort. Dadurch werden die vom Benutzer
angegebenen Zahlen gesammelt, und jetzt haben wir
eine Schleife erstellt , in
der der Benutzer aufgefordert wird, weiterhin eine positive Zahl
hinzuzufügen oder
fertig einzugeben , wenn er den Vorgang beenden möchte. Was wir
jetzt tun werden, ist, zu überprüfen, ob der Benutzer die Buchstaben tatsächlich
fertig oder fertig
getippt hat Buchstaben tatsächlich
fertig oder fertig
getippt Okay, weil wir nicht
möchten, dass das Produkt
weiterläuft , wenn der Benutzer
beschließt, fertig zu tippen Also werde ich sagen, ob Benutzer On die Punkteeingabe
gleich erledigt hat. Wenn diese
Typen tatsächlich erledigt
sind, was werden wir dann tun? Sie haben es erraten, wir
werden den Kreislauf durchbrechen. In Ordnung, lassen Sie mich hier
etwas Platz hinzufügen. Okay? In Ordnung. Also haben wir überprüft,
ob diese eingetippt wenn sie die Schleife
unterbrochen haben Aber
was soll das Programm tun, wenn sie
tatsächlich eine positive Zahl eingegeben haben? Wir möchten,
dass das Programm diese Zahl zur Zahlenliste hinzufügt dass das Programm diese Zahl zur Zahlenliste Okay? Also, wie
werden wir das machen? Wir brauchen etwas,
das die Zahlen darstellt , die vom Benutzer
bereitgestellt werden. In diesem Fall sollten
Sie es jetzt nicht verdrehen. Die
Benutzereingabevariable hier repräsentiert
einfach
die Eingabe hier.
Geben Sie eine positive Zahl ein
oder geben Sie Fertig ein, um den Vorgang abzuschließen Das ist es, wofür sie hier
steht. Die tatsächlichen Zahlen
selbst
müssen dafür eine neue
Variable erstellen. Also für die Variable hier werde
ich Num sagen. Okay, num wird gleich zwei
sein,
ich weiß nicht, erinnere dich an die
Integer-Funktion die alles, was
der Benutzer eingibt, konvertiert. Es wird also keine Ganzzahl sein
und jetzt wird die Eingabe unterstrichen. Okay? Also, was auch immer der Benutzer in dieser Zeile eingibt, wo wir sagen,
gib eine positive Zahl ein, wenn der Benutzer zum Beispiel
5.2 eingibt, okay? Wandle 5.2 in eine Ganzzahl um, die jetzt fünf sein wird,
und weise dann der Variablen Nummer
NUM fünf zu. Der nächste Schritt besteht nun
darin, diese Nummer
, die der Benutzer hinzugefügt hat,
zur Nummernliste hinzuzufügen , die der Benutzer hinzugefügt hat,
zur . Und
wie machen wir das? Ich tippe Zahlen und überprüfe jetzt den Punkt
anhängen Und jetzt in Klammern NUM. Also genau hier
wird dieses Append die Funktion sein
, die nun damit beginnt die vom
Benutzer hinzugefügten Zahlen zur Zahlenliste hinzuzufügen Lassen Sie uns das noch einmal durchgehen. Zuallererst haben wir also unsere
leere Liste, die Zahlen genannt wird. Lassen Sie uns die Schleife namens
Wil erstellen ,
die den Benutzer auffordert , weiterhin eine positive Zahl
hinzuzufügen. Wenn sie jedoch done eingegeben haben die Benutzereingabe gleich done
ist, unterbrechen Sie die Schleife, ohne dass Sie fortfahren
müssen Wenn der Benutzer jedoch tatsächlich reelle Zahlen
hinzugefügt hat, weisen Sie diese Zahlen einer
Variablen namens Num Num zu
und beginnen Sie nun, zu
und beginnen Sie nun diese Zahlen an die
Zahlenliste
anzuhängen So weit, so gut, was wollen wir
noch tun? Wir wollen überprüfen,
ob eine gerade Zahl hinzugefügt wird. Also, was werden wir tun? Wir werden eine Viererschleife
erstellen. Okay? In dieser Schleife
werden alle Zahlen in
der Zahlenliste durchsucht und dann die
allererste gerade Zahl gefunden. Also schau dir das an. Also, vier
Num N, worin? In Zahlen. Stimmt. Jetzt fügen wir einen Doppelpunkt hinzu. Lassen Sie uns eine I L-Anweisung erstellen. Also, wenn Zahl geteilt durch
zwei gleich Null
ist, was soll das
Programm dann sagen Wir wollen programmieren, dass es „Drucken“ sagt. Und jetzt unsere Klammern. Fügen wir unsere F-Zeichenfolge hinzu,
und dann können wir sagen, haben die
erste gerade Zahl gefunden. Und dann natürlich
geschweifte Klammern und dann NUM. Okay? Andernfalls, wenn die Nummer , die vom Benutzer hinzugefügt wurde,
nicht einmal einfach kaputt ist. Lass es uns einfach kaputt machen, okay? Und jetzt können wir
unsere Aussage hinzufügen, um
etwas zu tun , wir können einen Doppelpunkt
sagen und jetzt sagen
wir
Drucken, wenn Sie sagen der Benutzer
keine geraden Zahlen
eingegeben hat. Und da ist es. Aber auch hier ist
die Identifizierung
sehr, sehr wichtig Denken Sie daran, dass dieses S unter den Vier
liegt, okay? Es ist also nicht eher so. Es ist das
Vier-Sen-Statement hier drin. Also stellen Sie sicher , dass Sie nicht
den Fehler machen , dass die Dintons
sehr, sehr, sehr,
sehr,
sehr wichtig sein werden sehr,
sehr wichtig Also sind es im Grunde vier
und dann Zahl. Wenn Zahl geteilt durch zwei
gleich Null gedruckt ist, haben
wir die allererste Zahl gefunden und dann ausgedruckt,
was die Zahl ist. Andernfalls unterbrechen Sie einfach die Schleife ,
sobald diese Zahl gefunden wurde, sobald die allererste positive
Zahl gefunden wurde Entschuldigung, die erste gerade
Zahl wurde gefunden. Und wenn dann vom Benutzer überhaupt keine gerade Zahl hinzugefügt
wurde, drucken
sie einfach
aus, dass der Benutzer keine geraden Zahlen eingegeben hat. Okay. guter Letzt müssen Sie jetzt alle Zahlen
ausdrucken die der Benutzer am Ende
des Programms hinzugefügt hat. Also werde ich jetzt hierher
kommen, die neue If-Anweisung
hinzufügen
und einfach If-Nummer sagen. Wenn der Benutzer also tatsächlich Zahlen
hinzugefügt hat,
also wenn Zahlen, raten Sie mal
, drucken Sie es einfach aus. Und jetzt
sagen wir F und kodieren jetzt die Zahlen, die Sie eingegeben haben R und dann geschweifte Klammern Jetzt Zahlen. Ansonsten wird das also s
sein. Einfach drucken. Das heißt, wenn der Benutzer
keine Zahlen hinzugefügt hat, können
wir sagen, dass der Benutzer keine Zahlen
eingegeben hat. Oh. Lass es uns versuchen. Ich werde jetzt weitermachen. Führe das Programm aus. Und oh, wir haben hier
ein kleines Problem. Da steht Zeile 23. Okay, Druck F. Was
habe ich hier falsch gemacht? Oh, da sollte kein Leerzeichen
sein. Tut mir leid. Genau dort sollte
kein Leerzeichen sein. Sie sehen, wie ein einziges
Leerzeichen alles ruinieren kann. Es ist ziemlich
ärgerlich, aber ja. Also, wann immer Sie die F-Strings
verwenden, stellen Sie sicher, dass
zwischen dem F und Ihrem Code kein Leerzeichen steht Also lass uns das noch einmal versuchen. Lauf. Okay, also
werde ich einen hinzufügen. In Ordnung, fügen wir drei hinzu. Fügen wir vier hinzu. Okay,
lass uns fünf hinzufügen. Fügen wir acht hinzu. Fügen wir sechs hinzu. Und jetzt gebe
ich fertig, Enter ein und los geht's. Die erste
gerade Zahl war vier, und jetzt haben wir die
anderen Zahlen eingegeben, nämlich eins,
drei, vier, fünf,
acht und sechs Sie können jetzt also sehen, dass
das Programm tatsächlich funktioniert. Lassen Sie mich das
Programm noch einmal durchgehen. Zunächst haben wir
eine Liste mit dem Namen Zahlen erstellt. Diese enthält jede
einzelne positive Zahl die der Benutzer
hinzugefügt hat. Als Nächstes haben wir
die while-Schleife erstellt, die den Benutzer
ständig auffordert ,
weiterhin
eine positive Zahl hinzuzufügen Wenn er dies nicht möchte, kann
er einfach das Wort
fertig eingeben , um das Programm zu beenden. Also mussten wir jetzt überprüfen, ob der Benutzer tatsächlich fertig eingetippt hat Und übrigens, lass
mich das sogar versuchen. Okay, lass uns laufen und lass uns einfach sofort fertig
eintippen und sehen. Okay, da hast du's. Also das
Programm funktioniert sehr, sehr gut. Also schaut es tatsächlich nach, hey, hat dieser Benutzer die Eingabe
abgeschlossen? Oh, das hat es getan. Okay, also wenn wir fertig eingegeben haben, dann unterbrechen Sie einfach die Schleife Wir müssen die Schleife nicht
mehr
ausführen , weil der Benutzer
fertig eingegeben hat Also in diesem Fall, gerade jetzt, in diesem Szenario, in
dem der Benutzer
eingetippt hat , das ganze Zeug ist das ganze Zeug
hier völlig
irrelevant, okay? Das Python-Programm wird
direkt von
der Break-Anweisung
bis hier unten weitergehen direkt von
der Break-Anweisung und einfach sagen:
Hey, zuallererst,
den ganzen Weg genau hier. Sagen Sie zunächst:
Hey, der Benutzer hat keine geraden Zahlen eingegeben. Und dann
wurden schließlich keine Zahlen vom Benutzer hinzugefügt. Also all die nominalen Zahlen, ganze Zahlen, werden
das alles überspringen Aber was ist, wenn der Benutzer
tatsächlich eine Zahl eingegeben hat? Was soll
das Programm tun? Nun, wir wollen diese
Nummer zu unserer Zahlenliste hinzufügen. Also müssen wir die
Benutzereingabe einer Variablen zuweisen. In diesem Fall haben wir gerade eine Variable namens Num
erstellt , die die vom Benutzer
eingegebene Eingabe darstellt. Und wir haben auch den INT hinzugefügt. Lassen Sie uns das in der Tat versuchen und sehen. Ich sage 4,5
Enter und oh oh, oh, oh. Okay. Hier gibt es
ein kleines Problem Haben Sie eine
Fehlermeldung? Mach dir keine Sorgen. Ich werde dir im nächsten Video zeigen,
wie wir mit
Fehlern umgehen können . Okay, B, lass mich das noch
einmal ausführen, okay? Und tippe,
sagen wir, fünf ein, okay? Fünf eintippen, acht
eintippen, fertig. Okay, es funktioniert also immer noch gut. Also haben wir sichergestellt
, dass wir
die vom Benutzer
hinzugefügten Zahlen der Variablen NOM zugewiesen haben ,
und dann haben wir NOM mit
dieser speziellen Funktion
an die Zahlenliste angehängt, indem wir die Zahlen Punkt anhängen
und Num
geschrieben haben, okay? Da der Benutzer nun
tatsächlich einige Zahlen hinzugefügt hat, wollten
wir, dass das
Programm prüft,
ob eine dieser Zahlen
tatsächlich gerade ist Auf diese Weise
mussten wir eine Schleife erstellen , die alle
Zahlen in der Zahlenliste durchläuft. Und wenn die Zahl dann ohne Rest durch zwei
teilbar war , sagen
Sie einfach: Okay,
wir haben die
allererste gerade Zahl gefunden ,
drucken Sie diese Zahl Andernfalls, wenn der Benutzer
keine geraden Zahlen hinzugefügt hat, sagen Sie
einfach, dass der Benutzer keine
geraden Zahlen eingegeben Und am Ende des Tages drucken
Sie einfach die Zahlen aus
, die vom Benutzer hinzugefügt wurden. Und wenn der Benutzer
keine Zahl hinzugefügt hat, sagen Sie
einfach, dass der Benutzer keine Zahlen
beendet hat. Genau das haben wir hier gemacht. können
dieses Programm also so
oft durchgehen , wie Sie möchten. Hoffentlich war es
relativ einfach. Und natürlich, wie immer, wenn Sie
Fragen zu etwas haben, was wir hier gemacht haben und die
Sie nicht haben, wissen Sie, Sie sind sich ganz sicher, können Sie sich
jederzeit an mich wenden . Ich beantworte
gerne alle
Fragen, die Sie haben. Deshalb
wird Jomini Vernick Video Web nun damit beginnen, einen
Blick darauf zu werfen , wie wir mit
Fehlern in unserem Programm umgehen können
27. Einführung in den Abschnitt Funktionen: Kommen Sie zum brandneuen
Abschnitt, in dem wir uns die Funktionen ansehen werden, und ich garantiere Ihnen,
dass kein
Programmierkurs vollständig sein wird ohne über
Funktionen zu sprechen, okay? Funktionen sind extrem
wichtig, und ob Sie es glauben oder nicht, wir haben tatsächlich
mit einigen Funktionen gearbeitet, und wir haben sogar schon einige
unserer eigenen Funktionen erstellt. In diesem Kurs. Du weißt es einfach
noch nicht.
In diesem Abschnitt werde ich mich also auf Funktionen konzentrieren.
Ich werde Ihnen zeigen, wie Sie Ihre
eigenen benutzerdefinierten Funktionen erstellen können
und dann, wie Sie etwas verwenden
können das als Parameter
bekannt ist, okay? Womit soll unsere
Funktion funktionieren? Welche Arten von
Datentypen, solche Dinge. Wir werden uns auch Schlüsselwortargumente,
lokale und globale Variablen
und vieles mehr
ansehen . Und genau wie in den
vorherigen Abschnitten wird
es
am Ende des Abschnitts
eine Programmierübung geben. Also versuchen Sie es bitte. Hoffentlich
schaffst du es. Wenn nicht, machen Sie sich keine Sorgen, ich
werde Ihnen die Lösung anbieten. also,
ohne weitere Zeit zu verschwenden, Lassen Sie uns also,
ohne weitere Zeit zu verschwenden,
über Funktionen sprechen
28. Definieren und Aufrufen von Funktionen: Ordnung, also willkommen in
diesem neuen Abschnitt, in dem
wir
uns die Funktionen ansehen werden, oder? Und so weit, so gut, wir haben tatsächlich
mit einer ganzen Reihe von
vorgefertigten Funktionen
in Python gearbeitet . Funktionen wie
Drucken, Eingabe,
Bereich führen also alle
eine bestimmte Art von Operation aus. Was wäre jedoch, wenn wir
unsere eigenen benutzerdefinierten Funktionen erstellen
wollten ?
Wie können wir das machen? Nun, um das zu tun, müssen
wir zuerst den Namen der
Funktion definieren
und dann entscheiden, ob diese Funktion das akzeptiert, was wir Parameter
nennen oder
nicht . Und dann können wir auch sagen: Okay, diese Funktion wird
diese Zahlen addieren oder sie
wird etwas tun. Und dann können
wir uns schließlich dafür entscheiden, einen Wert innerhalb
dieser Funktion
zurückzugeben. Es wird also so
etwas sein. Sie werden DEF haben, das
wird die Funktion sein, die den Namen der Funktion
definiert, und dann können Sie wählen, ob
Parameter innerhalb
dieser Funktion sein sollen , okay? Und dann haben wir
den Funktionskörper. Also, du weißt schon, addiere A plus B, füge das hinzu, mach das, teile das, überprüfe, ob diese Schleife wahr
ist, solche Sachen. Im Grunde genommen, was auch immer
die Funktion tun wird. Und dann können wir uns schließlich
dafür entscheiden, einen Wert zurückzugeben ,
was übrigens optional sein
wird. Wir
müssen nicht immer einen Wert zurückgeben wenn wir
unsere eigene Funktion erstellen. Lassen Sie mich Ihnen ein sehr,
sehr einfaches Beispiel geben. Nehmen wir an, wir
wollten eine Funktion erstellen, die
die Wörter
Hallo Welt ausgibt, richtig? Wir können DF sagen und dann kann ich
meine Funktion Grit nennen Der Name meiner
Funktion wird
also GET sein und dann kann ich meine Klammern am
Doppelpunkt und dann am Ende des Hubs
hinzufügen Beachten Sie übrigens,
dass ich hier
keine Parameter innerhalb
der Klammern hinzugefügt habe . Parameter sind optional, okay? Ich werde jedoch jetzt
reinkommen und dann definieren, was die
Funktion tatsächlich tun soll. Ich werde Drucken sagen. Jetzt werde ich
die Worte Hallo Welt angeben. Und jetzt müsste ich nur noch die Funktion aufrufen. Und wie mache ich das?
Ich werde grüßen Und dann die Pakete
und da ist es. Also, wenn Sie das Programm starten wollen, los geht's, es
heißt einfach Hello World. Also haben wir noch einmal damit
begonnen, unserer Funktion
den Namen Greet zu geben unserer Funktion
den Namen Greet zu Und dann haben wir jetzt gesagt, was
die Funktion tun soll. Die Funktion sollte Hello World ausgeben, wann immer wir diese Funktion
aufrufen oder verwenden. Und dann
rufen wir die Funktion einfach auf, indem wir einfach Grit und
dann in Klammern
sagen, und los geht's Das hier ist also eine
der grundlegendsten Arten von
Funktionen, die wir erstellen können Aber das ist es. Jerman
Vanex Video Ware wird nun damit beginnen, sich Funktionsparameter und
Argumente
anzusehen . Wir sehen uns dann
29. Parameter und Argumente: Nun, willkommen zurück.
Lassen Sie uns nun über Parameter und Argumente sprechen. Sehen Sie, ein Parameter ist
im Grunde eine Eingabe, die wir einer Funktion hinzufügen können ,
um ihr Verhalten anzupassen. In diesem Fall,
im vorherigen Beispiel, hatte der
Name der Funktion, nämlich Grid, überhaupt
keine Parameter. Es ist im Grunde leer. Deshalb, als wir sagten:
Okay, drucken und dann
einfach Hallo Welt, und dann die Funktion aufrufen, hat sie
einfach nur Hallo Welt gesagt. Aber was ist, wenn wir jetzt einen bestimmten
Parameter
hinzufügen wollen ? In diesem Fall werde
ich jetzt sofort hierher kommen und den Namen sagen. Okay? Also der Perimeter
hier heißt Name, und jetzt möchte ich,
dass meine Funktion Hallo
sagt und dann den Namen, der bereitgestellt wird Also werde ich jetzt
herkommen. Lassen Sie uns die F-Zeichenfolge verwenden, und jetzt
füge ich meine geschweiften Klammern hinzu, eher geschweifte
Klammern, und nenne Okay? Also jetzt, sieh dir das an. Wenn ich gerade meine
Funktion aufrufe, kann
ich hinzufügen, was wir das Argument
nennen. Wenn Sie der Funktion einen
Wert übergeben, wird er
zu einem Argument. Bitte beachten Sie den Unterschied zwischen Parametern
und Argumenten. Hier oben, wenn wir die Funktion zum ersten Mal
definieren, werden
wir
den Parameter verwenden. Der Parameter sagt im
Grunde nur: Hey, wir stellen
Ihnen diese Eingabe zur Verfügung, und ich werde
diese Eingabe verwenden, um das
Verhalten des
Funktionsrasters anzupassen . Sobald die Funktion erstellt
wurde, haben
wir jedoch gesagt, was die
Funktion tun soll. In diesem Fall sofort hallo und dann nenne den Umkreis Wenn wir diese Funktion aufrufen, wenn wir einen Wert angeben wollen, sie zu dem, was
wir ein Argument nennen Also in diesem Fall, wenn ich zum Beispiel Alice begrüßen
möchte, sagen wir,
oder? Im Moment ist Alice das Argument, und wenn ich das
Programm ausführen sollte, bitteschön Da steht: Hallo Alice. Was wäre, wenn ich, sagen wir, Bob
grüßen wollte? Richtig? Bob, lass uns weitermachen, das Programm
ausführen und
da ist es. Hallo Bob. Das sind Grenzen
und Argumente. Wir können jedoch auch
mehrere Parameter
in unserer Funktion haben mehrere Parameter
in unserer Bisher haben
wir nur mit einem einzigen
Parameter
gearbeitet , nämlich dem Namen. Was wäre, wenn wir eine Funktion
erstellen wollten , die zwei Zahlen
addiert? Wie werden wir das machen? Nun, wir können damit beginnen, den Funktionsnamen zu
definieren. Also nenne ich
das „Zahlen hinzufügen“. Zahlen hinzufügen wird der
Name der Funktion sein. Und jetzt
werden wir im Inneren
zwei Parameter angeben ,
nämlich A und B, Doppelpunkt, okay? Geben Sie nun A plus B zurück. Wir haben noch nicht über
die Return-Funktion
oder die Return-Anweisung gesprochen . Return gibt
hier einfach den Wert einer
bestimmten Operation
zurück. In diesem Fall werden im
Moment
die Werte von A und B zurückgegeben , wenn
sie zusammengezählt werden. Das ist es, was die Rückgabe bewirkt. Also werde ich jetzt
hier reinkommen und das Ergebnis sagen. Okay? Das Ergebnis entspricht der
Addition von Zahlen. Okay? Und jetzt kann ich drinnen die
beiden Zahlen addieren, die ich addieren
möchte, sagen wir fünf und sechs. Und jetzt
muss ich
nur noch das Ergebnis ausdrucken. Und da ist es. Wenn
ich meine Funktion haben will, dann hast du
es 11. Siehst du, wie das
funktioniert? haben wir eine Funktion erstellt, aber mit der definierten
Funktion Zahlen addieren. Das ist der
Name unserer Funktion. Und dann sagten wir: Okay,
unsere Funktion
erhält zwei Parameter, A und B.
Und jetzt, mit der Rückgabe, definieren
wir im Grunde was die Funktion
tun soll. Sie wird
den Wert von A plus B zurückgeben. Jetzt
müssen wir nur noch
eine Variable erstellen ,
die den Wert unserer Funktion speichert. Jetzt heißt die Variable
hier also Ergebnis, was der Anzeigennummer entspricht. Der Name der
Funktion, die
gerade aufgerufen wird, mit den beiden Werten,
die fünf und sechs sind,
eingegeben, und jetzt haben wir einfach das Ergebnis
ausgedruckt, das 11 entspricht. Genau so funktioniert auch das
Parametrisieren von Argumenten und die
Rückgabefunktion Übrigens, bevor ich das Video
zusammenfasse, ein ganz kurzes Wort
zur Rückmeldung Es wird
hauptsächlich für zwei Zwecke verwendet, okay? Der erste Zweck besteht
normalerweise darin, eine Funktion zu beenden. Sie können es also verwenden, um die Funktionsausführung zu
stoppen. Die zweite Möglichkeit besteht darin,
einen tatsächlichen Wert zurückzugeben. Lassen Sie mich Ihnen das als Beispiel
ganz schnell zeigen. Wenn ich sagen würde, definiere und dann grüße. Okay, lassen Sie mich hier leere
Parameter hinzufügen. Und ich sagte, drucken Sie Hallo aus. Und dann sagte ich zurück in Ordnung, aber nach der Rückkehr in
eine andere Zeile sage ich auch Drucken Und dann, sagen wir,
lassen Sie mich sagen, wie Coats, hallo Jack, Sie können jetzt sogar
sehen, dass in unserem Replet der Text
selbst irgendwie angepasst ist,
was bedeutet, dass Python diese bestimmte Zeile nicht ausführt Wenn ich also ausführen würde, können
Sie jetzt sehen, es absolut
nichts tut,
aber das liegt daran, dass ich die Funktion noch nicht
aufgerufen Also lass mich herkommen und
grüßen und dann Klammern sagen ,
und los geht's Wenn ich die
Funktion jetzt ausführen würde, könnten
Sie sehen, dass alles, was sie sagt, Hallo sein
wird Warum? Weil return genau hier
bedeutet, hey, die Ausführung
der Funktion zu
beenden, sie sollte nicht über
diese bestimmte Zeile hinausgehen Und deshalb haben wir
nur Hallo. Wenn ich jedoch
die Rückmeldung entfernen
und das Programm erneut starte, können
Sie sehen, dass es jetzt
Hallo und dann Hallo Jack sagt. Das ist also eine weitere Verwendung
der Return-Anweisung, aber Sie können sie verwenden, um die Funktionsausführung zu
stoppen,
oder, wie ich Ihnen zuvor gezeigt habe, können
Sie die Return-Anweisung verwenden um einen bestimmten Wert zurückzugeben. Danke, dass du dir das
Video angesehen hast. Wir sehen uns in der nächsten Klasse.
30. Keyword-Argumente: Nun, komm zurück. Ich
möchte, dass wir jetzt über Keyword-Argumente sprechen, richtig? Python-Funktionen ermöglichen es uns
grundsätzlich, Argumente mit
Parameternamen zu übergeben. Parameternamen bezeichnen
wir als Schlüsselwörter. Sie machen einen Code
lesbarer und flexibler, insbesondere wenn wir es
mit vielen Parametern zu tun haben. Bisher haben wir es
mit Parametern wie A,
B, X, Y zu tun gehabt, aber lassen Sie mich
Ihnen etwas anderes zeigen, okay? Ich werde eine neue
Funktion erstellen und
diese Funktion Describe,
Underscore Person nennen , okay? Diese Funktion wird also den Namen, das
Alter und sagen wir die Stadt einer Person
beschreiben , richtig Lassen Sie mich da die
Klammern hinzufügen. Und jetzt können
wir hier das Schlüsselwort-Argument hinzufügen. Also sage ich Name, Alter und dann sagen wir Stadt. Okay. Und jetzt zur
eigentlichen Funktion selbst, oh, tut mir leid, ich habe vergessen
, den Doppelpunkt hinzuzufügen. Und jetzt die eigentliche
Funktion selbst, was wird sie tun? Wir wollten drucken, okay, John ist 30 Jahre alt und lebt in London, nur
als Beispiel, Also sage ich Druck, Klammer und jetzt Okay? Und jetzt Mäntel
und jetzt lockige Zahnspangen Der Namensraum ist
wieder lockige Klammern und werden jetzt als Bracket ist alt. Und ich lasse Python den Rest für
mich
erledigen . Und da ist es. Im Grunde wird die
Funktion sagen: Okay, Alex ist 100 Jahre alt und
lebt in New York City, nur als Beispiel Also sieh dir das an. Ich rufe die Funktion auf damit Sie sofort sehen können, dass
ich Alice anrufe. Vielen Dank, Python,
für diesen Vorschlag. Also werde ich sagen, dass Alice
25 Jahre alt ist und in New York
lebt Wenn ich die Funktion
jetzt starte, können Sie sehen, dass Alice 25 Jahre alt
ist Ziemlich einfach, oder? Schauen Sie sich das jedoch an. Ich kann die
Funktion auch aufrufen, indem die Werte für die Parameter selbst bereitstelle. Schau dir das an, okay? Ich kann sagen, beschreibe die Person. Und jetzt in Klammern, statt zu sagen:
Okay, Alex, 30, London, kann ich stattdessen
sagen, dass Alter 30 Und jetzt Koma. Und dann kann
ich sagen, dass der Name gleich Bob City
ist San Francisco Hast du gesehen, was
ich gerade gemacht habe? Anstatt
die tatsächlichen Werte für die Argumente direkt anzugeben, sagte
ich nur: Hey,
ich werde
die Werte an die
Schlüsselwortargumente übergeben . Das Alter wird also 30 sein. Der Name ist Bob, die Stadt
ist San Francisco. Und bitte
achten Sie natürlich darauf,
dass Bob und San
Francisco Saiten sind. Deshalb haben sie
die doppelten Codes. 30 ist zwar eine Ganzzahl. Es ist keine Zeichenfolge.
Deshalb gibt es keine Codes. Wenn ich die Funktion starte, siehst
du
sofort, dass Bob
30 Jahre alt ist und
in San Francisco lebt Trotz der Tatsache, dass
hier das Alter an erster Stelle stand. Wir haben nicht gesagt, dass Name gleich
Bob ist und dann Alter oder Stadt. Nein. Das liegt daran, dass
Python einfach das verwenden wird, was wir in der eigentlichen
Funktion selbst
beschrieben haben . Es wird keine Rolle spielen, in welcher
Reihenfolge alle Argumente stehen. Python ist das egal. Python kümmert sich nur darum, okay, du hast mir die
Schlüsselwortargumente gegeben, okay. Und jetzt ist das die Reihenfolge. Es wird sich die
Funktion ansehen, die sagt: Okay, druckt zuerst den Namen aus und ist dann 8 Jahre alt und lebt
dann Das sind also, was wir als
Schlüsselwortargumente bezeichnen. Es ist unwahrscheinlich, dass
wir später in diesem
Kurs mit
ihnen arbeiten werden,
aber dennoch sollten Sie sich dessen bewusst
sein wenn Sie mit Python
arbeiten. Also danke, dass du dir das
Video angesehen hast.
Wir sehen uns in
der nächsten Klasse.
31. Lokale und globale Variablen: Nun, willkommen zurück.
Eine letzte Sache, über die ich sprechen möchte
,
bevor wir den Abschnitt mit
den Funktionen zusammenfassen ,
ist das Konzept des
variablen Gültigkeitsbereichs. Sehen Sie, in Python oder
in jeder Programmiersprache haben
wir
sowohl lokale als auch globale Variablen. Variablen haben den
Gültigkeitsbereich, der
bestimmt , wo auf sie zugegriffen werden
kann. Jetzt sind Variablen,
die sich innerhalb
einer Funktion befinden,
lokal für diese Funktion, und Sie können
außerhalb dieser Funktion nicht auf sie zugreifen. Variablen, die außerhalb einer
Funktion definiert
sind , sind zum
Beispiel global, okay? X ist gleich, sagen wir 12, richtig? Das hier
bezeichnen wir als globale Variable. Warum? Weil es von alleine ist. Es ist nicht Teil einer Funktion
oder einer Schleife oder irgendeines anderen, es ist eigenständig. Es ist nur so, dass X gleich 12 ist. Wenn ich jedoch
meine eigene Funktion erstellen und definiere, unterstreichen,
modifizieren, variable, eckige
Klammer, Doppelpunkt
sagen modifizieren, variable, eckige
Klammer, Doppelpunkt und jetzt sage ich, X ist gleich Drei Das X hier
wird das sein, was wir
eine lokale Variable nennen , weil es sich innerhalb der Funktion befindet, die an der Score-Variablen
geändert wurde Die globale
Variable von X ist also 12, die lokale Variable von X
ist drei, weil auch diese drei
hier innerhalb
der modifizierbaren Variablenfunktion Also
schauen wir uns das an, okay? Ich werde meiner Funktion sagen, dass sie den Wert von X
ausdrucken soll , okay? Und jetzt rufe ich
die Funktion Modify Variable auf. Was glaubst du, wird
der Wert von X hier sein? Der Wert von X
wird hier
drei sein, weil wir einfach die
modifizierte Funktionsvariable
aufrufen, die bereits den Wert
von X hat, der gleich drei ist. Wenn ich also meine Funktion ausführe, können
Sie sehen, dass sie
genau da drüben ist. Aber was wäre, wenn ich die globale
Variable X gleich 12
nennen wollte die globale
Variable X gleich 12
nennen Ich möchte diesen Wert ausdrucken. Alles, was ich tun muss, ist einfach
den Standard-Druckbefehl
oder die Druckfunktion 4,
Python, aufzurufen den Standard-Druckbefehl
oder die Druckfunktion 4, und dann
einfach print X zu sagen Wenn ich das Programm
jetzt erneut starte, können
Sie drei und jetzt 12 sehen. Nochmals, weil dieser
Ausdruck genau hier ist, es ist nicht derselbe Druck, der
unter der Funktion „
Variable ändern“ steht. Dieser Ausdruck
hier dient dazu, den Wert von X zu erzeugen oder
auszudrucken. Dabei handelt es
sich um den lokalen Wert, der sich
innerhalb der Funktion, der Variablen
Modify, befindet. Aber dieser Druck X w
hier beachte noch einmal
den Einzug Befindet sich nicht innerhalb dieser
Funktion, sondern außerhalb. Das X hier wird also dasjenige
sein,
das zur globalen Variablen gehört ,
die 12 ist. Das ist der Unterschied zwischen globalen Variablen und
lokalen Variablen. Wenn Sie
diesen bestimmten Wert
von X erhalten möchten , der drei ist, müssen
Sie immer
die Funktion aufrufen , die diesen bestimmten Wert enthält
oder enthält
, der natürlich eine
modifizierte Variable ist. Aber auf die globale Variable können
Sie überall zugreifen, solange sie sich nicht in
der Funktion befindet. Wir können jedoch den Wert
unserer globalen Variablen
innerhalb einer Funktion
ändern . Ja, das können wir tun.
Schau dir das an, okay? Ich gehe zurück zu meiner
Veranstaltung hier drin, oder? Und direkt darunter
werde ich global X sagen Indem wir
nur die
Anweisung global verwenden, können
wir den
globalen Wert von X ändern Jetzt sage ich
also, dass global
X, X gleich drei In diesem Fall
modifizieren wir im
Moment einfach die globale Variable Das ist es, was wir
gerade tun, wir werden einfach die globale Variable von X
modifizieren. Wenn ich
also aufrufe,
wenn ich mein Programm ausführe, können
Sie jetzt sehen,
dass zuallererst die globale Variable von X
modifizieren Wenn ich
also aufrufe, wenn ich mein Programm ausführe, können
Sie jetzt sehen,
dass zuallererst die Funktionsmodifikatorvariable X gleich Drei ergibt Und weil wir
die globale Variable von X jetzt so geändert haben ,
dass sie
jetzt drei statt 12 ist, selbst wenn ich
die Druckfunktion aufrufe selbst wenn ich
die Druckfunktion aufrufe, die sich außerhalb der
modifizierten Variablenfunktion befindet, wird
sie immer noch
drei erzeugen, weil
wir
innerhalb dieser Funktion wiederum die
globale Variable X geändert haben.
Wir haben den Band 12-3 geändert, die
globale Variable X geändert haben. indem wir hier das Schlüsselwort
global verwendet haben. So
können Sie also auch
die globalen Variablen innerhalb
einer lokalen Funktion ändern die globalen Variablen innerhalb
einer lokalen Funktion Vielen Dank, dass Sie
sich das Video angesehen haben. Wir sehen uns in
der nächsten Klasse.
32. Datenstrukturen – Intro: Willkommen im Bereich
Datenstrukturen. Und hier werden
wir uns
auf drei Haupttypen
von Datenstrukturen konzentrieren . Wir werden über
Listen, Wörterbücher und Sets sprechen. Und natürlich
werde ich Ihnen die Unterschiede
zwischen diesen dreien erläutern Ihnen die Unterschiede
zwischen diesen Sie werden also genau
lernen, was eine Liste
von einem Wörterbuch unterscheidet. Du wirst
genau lernen, was ein Set ist. Und wenn Sie erst einmal
gelernt haben, wie Sie
Ihre eigenen Sets,
Wörterbücher und Listen erstellen , werden
wir lernen, wie Sie Loops in sie
integrieren können Nehmen wir zum Beispiel an,
Sie haben eine Liste Passwörtern und möchten, dass jedes
Passwort in einer Schleife durchgeht und etwas getan wird. In diesem
speziellen Abschnitt erfahren
Sie, wie Sie etwas
Ähnliches tun wie Sie etwas
Ähnliches Und natürlich wird
es
eine Vielzahl verschiedener
Programmierübungen geben , also probieren Sie sie bitte aus. Es wird auch
zwei
Herausforderungen beim Programmieren geben , bei denen ich Ihnen
natürlich zeigen werde,
wie Sie sie lösen können. Und natürlich werden
wir, genau
wie bei jedem anderen Abschnitt, am Ende die Hauptübung zum Programmieren haben , die ich Ihnen vorstellen möchte. Stellen Sie also bitte sicher, dass Sie dies tun , ohne weitere
Zeit zu verschwenden. Lassen Sie uns gleich loslegen
33. Listen: In Ordnung, lassen Sie uns damit beginnen
, über Listen zu sprechen. Also, Listen sind für uns
nichts Neues. Wir haben tatsächlich
schon mit einigen Listen gearbeitet. Wir hatten Namenslisten, Autolisten und so weiter. Aber eine Sache mit
Listen ist, dass
sie das sind, was wir als veränderbar bezeichnen Das heißt, dass wir die Elemente oder Elemente, die
Sie in einer Liste
haben, tatsächlich
ändern können, oder? So können wir der Liste etwas hinzufügen. Wir können sie aus der Liste entfernen und
alle Elemente ändern, die bereits in
dieser bestimmten Liste vorhanden sind. Nun, hier drüben
habe ich eine Liste mit
kompromittierten Passwörtern Also das übliche Passwort,
eins, zwei, drei,
vier, fünf, QW, TY und so weiter Jetzt möchte ich
dir ein paar Dinge zeigen , die wir hier machen
können, richtig? Ich kann Drucken sagen, okay? Und jetzt in Klammern kann
ich die Liste als
kompromittierte Passwörter bezeichnen. Und jetzt kann ich
die Indexnummer des
Elements angeben , das ich auflisten möchte. In diesem Fall ist
es momentan Indexnummer Null. Wenn ich mein Programm starte, können
Sie sehen, dass es ein Passwort sein
wird. Als Erstes möchte ich, dass
Sie verstehen
, dass die Elemente in einer Liste alle Indexnummern
haben, die bei Null
beginnen. Wenn ich also
Index Nummer zwei drucken würde, was wäre Ihrer Meinung nach
die Antwort? Ja, es wird QWERTY sein. Okay, das ist das Erste, was
du verstehst. Als nächstes kommt die Tatsache
, dass wir
verschiedene Arten von
Funktionen auf unserer Liste ausführen können . Ich kann zum Beispiel sagen, lassen Sie mich die Liste erneut aufrufen, und jetzt kann ich diese
Funktion namens append hier hinzufügen Genau hier anhängen
ist das, was wir
in technischer Hinsicht als Methode bezeichnen Methoden sind auch Funktionen, aber es sind ganz besondere
Arten von Funktionen Wir werden etwas später über
Methoden sprechen. Aber fürs Erste solltest du
wissen, dass wir sehr spezielle
Funktionen
haben, die wir
Methoden genannt haben, die du direkt
auf Listen anwenden
kannst und sie
werden etwas bewirken. Im Moment würde ein
Pend also dazu führen, dass es unserer Liste jeden neuen Eintrag, den
wir wollen, hinzufügt Als Beispiel kann ich meine Klammern
öffnen. Und nehmen wir an, wir fügen
Schwertfisch hinzu. Okay? Das ist ein weiteres
sehr, sehr beliebtes Passwort, das von
vielen Leuten benutzt wird, okay? Also habe ich Salt
Fish an die Liste angehängt. Wenn ich jetzt zurückgehe und meine
kompromittierten Passwörter ausdrucke, können
Sie sehen, dass Sordfsh der Liste hinzugefügt
wurde Das ist also die
allererste Methode oder Funktion, von der ich möchte,
dass
Sie sie verstehen , die Sie mit Ihrer Liste verwenden können Die nächste
wird die sogenannte
Extend-Funktion sein . Siehst du, ein Stift mit einem Stift, du kannst, du weißt schon,
einzelne Objekte,
Elemente usw. hinzufügen . Mit Extend
können Sie tatsächlich
alle Elemente aus einer anderen Liste hinzufügen . Als Beispiel habe ich meine erste Liste genau
dort, kompromittierte Passwörter. Und nehmen wir an, wir haben
eine weitere Liste mit kompromittierten
Passwörtern erstellt . Okay? Gleich, und jetzt lass mich die
Klammern hier öffnen. Und lassen Sie uns ein paar neue Passwörter
hinzufügen. Lass uns sehen. Wir haben eines der am häufigsten
verwendeten Passwörter. Okay, sagen wir eins, zwei,
drei, A, B, C, wie wäre es damit. Und lassen Sie mich noch eins hinzufügen. Und lassen Sie uns
einen Hund, eine Katze und einen Knochen runterrufen. Weißt du, einfach irgendwas, oder? Okay, wir haben jetzt also zwei
verschiedene Listen, oder? Eine für die
kompromittierten Passwörter und dann noch eine für die neuen
kompromittierten Passwörter. Also sieh dir das an, okay? Ich kann
sofort herkommen und sagen, Passwörter
kompromittieren
und jetzt verlängern. Und jetzt kann
ich in Klammern „Neu“ zu diesem
kompromittierten Passwort sagen Im Grunde füge ich die neuen Passwörter
der alten Und wenn ich jetzt mein Programm starte, können Sie sehen, dass 123
ABC und Dog Cat Bone zu meiner Liste der
kompromittierten Passwörter hinzugefügt
wurden Nun, eine andere Methode,
von der ich möchte, dass Sie sich bewusst sind
, ist das genaue Gegenteil von Append
, das entfernt wird Lassen Sie mich also zunächst unsere erste oder
zweite Liste
ausschneiden und ich werde
diese Zeile hier ändern und dann sagen, entfernen Und jetzt in Klammern, nur als Beispiel, okay, ich kann angeben, was
ich entfernen möchte, nämlich eins, zwei,
drei, vier, fünf. Nehmen wir an, ich wollte dieses spezielle
Element sehr, sehr einfach
entfernen. Ich sage einfach Nicht entfernen, ausführen, und schon können Sie sehen,
dass 12, drei,
vier, fünf nicht mehr in der Liste der
kompromittierten Passwörter steht. Also sehr, sehr einfach. Eine andere Möglichkeit, die wir tun können,
ist einfach zu löschen. Als Beispiel können wir die gesamte
Liste löschen. Also, wenn ich jetzt
hierher kommen würde, ändere Remove in Clare, richtig? Ich brauche nichts
innerhalb der Klammern zu haben. Also nur Clare und Iron, bitteschön, es
wird leer sein In
der Liste steht nichts mehr. Es gibt also eine ganze
Reihe anderer Methoden , mit denen Sie gehen können. Ich glaube, es sind ungefähr 11 von ihnen. Aber lass mich dir noch
zwei geben, oder? Eine weitere, die wir verwenden können,
wird umgekehrt sein, oder? Im Grunde genommen wird das
einfach dazu führen, dass die
Reihenfolge der Elemente in
der Liste umgekehrt wird die
Reihenfolge der Elemente in
der Liste umgekehrt . Es
wird die Reihenfolge umkehren. Also, wenn ich das starte, los geht's, es fängt bei Äh, lass mich rein und geht rückwärts
bis zum Passwort Und dann noch eine, die ich Ihnen zeigen
möchte und die sehr nützlich
sein kann, wäre die Kopiermethode Also als Beispiel, lass mich einfach hierher kommen
und ich werde ein Backup
erstellen, okay? Also Backups erstellen und, sagen wir, Konten
unterstreichen, okay? Ich kann das Backup
meinen variablen Backup-Konten zuweisen und ich kann jetzt gleich
und jetzt kompromittierte Passwörter sagen und jetzt Punkt, Kopieren und jetzt Klammern Ordnung, also was ich gerade
mache, ist, dass ich eine
Sicherungskopie dieser Liste, dieser kompromittierten
Passwortliste, erstellen und
diese dann den variablen
Backup-Konten zuweisen
möchte kompromittierten
Passwortliste, erstellen und
diese dann den variablen
Backup-Konten zuweisen den variablen
Backup-Konten Wenn ich jetzt also die
Backup-Konten ausdrucken würde und ich starte, werden
Sie sofort sehen, dass
wir genau die gleiche Liste haben, die exakt gleichen Elemente Das ist also, was Sie verwenden
würden, um
Backups zu erstellen oder die Elemente
in einer bestimmten Liste zu kopieren. Also, wie ich schon sagte, Sie haben noch
ein paar andere wie
sort, pop und so weiter. Wir werden
etwas später im Kurs
über Methoden sprechen . Aber das ist vorerst die
Einführung in Listen und die Methoden, mit denen Sie mit ihnen arbeiten können
. Danke fürs Zuschauen.
Wir sehen uns in der nächsten Klasse.
34. Verwenden von Loops in einer Liste: Arbeiten Sie weiter mit unseren Listen, und ich möchte, dass wir versuchen,
ein Programm zu schreiben , das einfach die Tage mit hoher Aktivität
ausdruckt . Was Sie jetzt
auf meinem Bildschirm sehen, ist eine Liste von
Anmeldeversuchen pro Tag. Lassen Sie uns also ein Programm schreiben
, das
diese Liste durchgeht und dann die Tage mit hoher Aktivität
ausdruckt. Um jedoch festzustellen, was
eine hohe Aktivität wäre, sagen
wir, Anmeldeversuche
, die zehn oder mehr betragen. Okay. Lassen Sie uns dazu eine Variable erstellen die die Tage
mit hoher Aktivität speichert. Ich kann also hoch sagen
und dann die
Aktivität an den Tagen mit den
Punktzahlen unterstreichen . Okay. Nun, das
entspricht, sagen wir, Versuchen. Okay? Wir wollen eine Vierer-Schleife
erstellen , die die Liste
durchgeht, okay? Also haben wir hier unsere Klammern drin, und dann kann ich sagen
Versuch, okay,
vier, erinnerst du dich jetzt an Versuch in, wo wir
die Anzahl der Versuche überprüfen? Es wird auf der Liste der
Anmeldeversuche stehen. Also werde ich es in
den Anmeldeversuchen sagen. Und jetzt haben wir noch nicht
darüber gesprochen, aber Sie können
eine if-Anweisung auch direkt
in eine Viererschleife einfügen. Also wollen wir
eine Schleife erstellen , die unsere Liste
durchgeht, und wenn der Versuch zehn oder mehr
ist, drucken
wir
einen Tag mit hoher Aktivität aus. Also Versuch für Versuch
bei Login-Versuchen. Nun, wenn der Versuch
größer oder gleich zehn ist. Das hast du verstanden, okay? Also, was sollte jetzt passieren? Lass uns einfach drucken. Und dann können
wir in Klammern etwas sagen wie Tage mit hoher Aktivität, Dickdarm und dann Koma, Tage
mit hoher Aktivität Also, wenn ich das
Programm starte und los geht's. den Tagen mit hoher Aktivität haben
wir zehn, 12, 15 und 20. So können
wir also in vier Schleifen unsere Liste
durchgehen und sie dann
ausdrucken oder etwas anderes tun. Also werde ich
dir im nächsten Video eine Übung, eine Herausforderung vorstellen. Bitte gehen Sie es durch und versuchen Sie, die Fragen
zu beantworten. Danke, dass du dir das
Video angesehen hast. Wir sehen uns in
der nächsten Klasse.
35. Wörterbücher: Lass uns über Wörterbücher sprechen. Und genau wie bei Listen können
Sie Elemente in
Ihren Wörterbüchern ändern, hinzufügen oder
entfernen Der
Hauptunterschied zwischen
Ihren Listen und Ihren
Wörterbüchern besteht jedoch darin, dass
wir
im Gegensatz zu Ihrer Liste, in der Sie einzelne Elemente
oder Werte oder Elemente
in Ihrem Wörterbuch
haben , ein sogenanntes
Schlüssel-Wertepaar haben werden Als Beispiel kann
ich ein Wörterbuch mit dem
Namen Benutzerinfo verwenden, und jetzt werde ich die geschweiften Klammern verwenden,
okay, wir verwenden normalerweise die geschweiften Klammern für Wörterbücher okay, wir verwenden normalerweise Hier kann ich also
Informationen wie den Nutzernamen haben, also admin. Also genau hier
wird der Benutzername
der Schlüssel sein, während Admin der Wert des Schlüssels sein wird
. Wir können auch
ein Passwort haben, okay? Und nehmen wir an, das Passwort hier ist „Lass mich rein“, nur als Beispiel. Und wir könnten sogar
noch einen haben, sagen
wir, Last Login. Okay, letzte Anmeldung, ruf an und ich kann ein
Datum haben, sagen wir, 2024 10-22, nur als
Beispiel, oder? Beachten Sie also, dass
jedes Mal, wenn Sie Ihre Schlüssel-Wert-Paare
in Ihr Wörterbuch aufnehmen, am Ende jeder Zeile das Komma steht Aber für das
allerletzte Schlüssel-Wert-Paar ist
es nicht nötig, das
Komma am Ende hinzuzufügen, oder? Also nimm das einfach zur Kenntnis. Also das nennen
wir ein Wörterbuch, oder? Wir haben unsere
Schlüsselwertpaare, den Benutzernamen, der Wert ist admin, wir haben das Schlüsselpasswort, der
Wert ist lass mich rein. Und natürlich haben wir
den Schlüssel für den letzten Login und dann haben wir das
Datum als Wert. Von hier aus
könnte ich mich also entscheiden, die Informationen
auszudrucken. Ich könnte hierher kommen
und dann „Drucken“ sagen. Und wenn ich nun, sagen wir,
den Benutzernamen drucken
wollte, würde ich
zuerst die
Unterstrichinformation des Benutzers sagen und jetzt die regulären
Klammern hier, ich würde einfach
Benutzername sagen, und das war's Wenn Sie also jetzt starten möchten, können
Sie sehen, dass Admin bereitgestellt
wurde So können Sie also
die Werte der Schlüssel
in Ihrem Wörterbuch ausdrucken . Sie geben einfach den Schlüssel , dessen Wert Sie drucken möchten und das Programm
erledigt den Rest. Nun. Jetzt können
Sie, genau wie ich bei Wörterbüchern
sagte, die Elemente
in Ihrem Wörterbuch einfach hinzufügen oder ändern Wenn ich zum Beispiel neue
Informationen hinzufügen
möchte , sagen
wir, die
E-Mail-Adresse des Benutzers, muss ich jetzt
nur noch hierher kommen
und einfach die
Benutzerinformationen mit dem Unterstrich „Okay“ sagen Benutzerinformationen mit dem Unterstrich Und jetzt habe ich
die regulären Klammern, und jetzt
füge ich hier einfach den Schlüssel hinzu
, der E-Mail sein wird Und dann sage
ich ganz einfach gleich, und jetzt kann ich die
E-Mail-Adresse genau dort hinzufügen Sagen wir einfach admin
at labcyber.com. In Ordnung. Nur als
Beispiel, oder? Also, wenn ich jetzt hier
reinkommen und die Benutzerinformationen ausdrucken würde, lass mich einfach
den Schlüssel dort entfernen. Also wollen wir
alle
Benutzerinformationen hier ausdrucken . Ich starte das Programm
und da ist es. Es wird
alles ausdrucken. Der Benutzername ist also admin. Das Passwort ist lass mich rein.
Der letzte Login ist dieses Datum, und dann
lautet die E-Mail direkt dort admin at labsyber.com Wir könnten auch aktualisieren. Wir könnten auch die
Informationen in unserem Wörterbuch aktualisieren. Also noch einmal, als Beispiel, wenn ich aktualisieren möchte,
sagen wir das Passwort, oder? Ich kann also sagen,
ob Benutzer Oder Score Info, und jetzt in Klammern , der Schlüssel
hier ist natürlich Passwort, oder?
Also Passwort. Und jetzt muss ich
das neue Passwort angeben. Nennen wir es also
SOD-Fisch. SOT-Fische Und da ist es. Wenn ich mein Programm starte, können Sie
jetzt sehen, dass
das Passwort
tatsächlich in SOD Fish geändert wurde tatsächlich in SOD Fish geändert Genau wie bei Ihren Listen können
Sie Ihrem Wörterbuch neue
Schlüssel-Wert-Paare hinzufügen auch die
Werte vorhandener Schlüssel ändern Außerdem haben
wir, genau wie bei Listen, eine Vielzahl
von Methoden, die wir
tatsächlich auf
unser Wörterbuch anwenden können . Die allererste Methode, über
die ich
hier sprechen möchte ist die G-Methode, mit der der Wert abgerufen wird
, der einem Schlüssel zugeordnet ist. Lassen Sie
mich zum Beispiel all diese
Informationen hier entfernen, oder? Wenn ich
die Benutzerinformationen drucken möchte, oder wenn ich den Benutzernamen erhalte, den Wert des Schlüsselbenutzernamens, muss ich
hier nur Benutzerpunktinformationen
drucken und
dann Punkt G sagen . Alles klar. Und jetzt wieder in Klammern füge
ich den Schlüssel hinzu
, der Benutzername ist. Also das hier sollte den Benutzernamen
ausdrucken. Wenn ich renne, ist es Admin. Also genau wie bei deiner Liste, dass wir einen Stift, eine Kopie und so weiter benutzt haben. Wir haben genau die gleichen
Methoden auch für das Wörterbuch, und Get Right
Here ist eine davon. Eine andere Methode werden
die Schlüssel sein , bei denen Sie einfach alle Schlüssel
ausdrucken
können , die wir in einem Wörterbuch
haben. Lassen Sie mich also alle
Informationen hier entfernen. Also wenn ich renne, hast du es. Wir haben alle Schlüssel
, nämlich Benutzername, Passwort und letzte Anmeldung. Wir haben auch das Gegenteil
, das wären Werte. Es sind also quasi Schlüssel. Ich
werde diesen hier in Werte ändern
und wenn ich renne, werden wir
jetzt alle Werte in der Ausgabe
aufgeführt
haben . Jetzt könnten wir auch
eine Schleife erstellen , die unser Wörterbuch
durchsucht. Und wie können wir das machen? Nun, wir können
die Vierschleife verwenden , weil
wir ein Wörterbuch haben. Denken Sie daran, dass die
vier Schleifen gut
mit Listen,
Wörterbüchern usw. funktionieren mit Listen,
Wörterbüchern usw. Also werde ich vier sagen und jetzt muss ich Key sagen
, okay Also für Schlüssel und dann
Kommawert und jetzt Benutzerunterstreichungsinformationen, und wir müssen
eine weitere Methode
namens items items hinzufügen und jetzt Klammern, Doppelpunkt und da ist sie Auf diese Weise erstellen Sie
Ihre Schleife, die sich
durch Ihr Wörterbuch zieht Es wird also
vier wichtige Kommawerte stehen, und dann im Namenswörterbuch, und dann
fügen Sie die Methode items hinzu Und jetzt
müssen wir von hier aus
nur noch die Informationen ausdrucken Also werde ich Drucken sagen. Und lassen Sie uns die F-String verwenden. Also zuerst unsere regulären Klammern. Und jetzt die F-String
und jetzt Coats, geschweifte Klammern, um den Schlüssel zu halten
und anzuzeigen, und jetzt haben wir einen Doppelpunkt
und jetzt die anderen
geschweiften Klammern, um den Wert zu halten geschweifte Klammern, um den Schlüssel zu halten
und anzuzeigen,
und jetzt haben wir einen Doppelpunkt
und jetzt die anderen
geschweiften Klammern, um den Wert zu halten
. Und jetzt, wenn ich renne, da hast du den
Namen Admin, das Passwort
lässt mich rein und natürlich das letzte
Login-Datum Du kannst also auch Schleifen verwenden,
um deine Wörterbücher,
deine Listen usw. durchzugehen deine Listen usw. durchzugehen Das war's also für Wörterbücher. Viel Spaß im nächsten
Video, in dem wir uns nun das ansehen,
was wir
als verschachtelte Wörterbücher bezeichnen .
Wir sehen uns dann
36. Verschachtelte Wörterbücher: Und zurück. In der
vorherigen Lektion haben
wir über Wörterbücher gesprochen, aber jetzt
gehen wir noch einen Schritt weiter sprechen über verschachtelte Also im Grunde genommen Wörterbücher innerhalb eines anderen Wörterbuches
. Bisher haben wir es
mit einer einzigen Benutzerinformation zu tun gehabt. Aber was wäre, wenn wir
mehrere Benutzer hätten, oder? Wie können wir das erstellen? Also, was ich hier
tun werde, ist, den Namen
von Benutzerinformationen in
Benutzeranmeldedaten zu ändern , richtig? Das wird der
neue Name für ein Wörterbuch sein,
und jetzt für geschweifte Klammern Wir können jetzt das
allererste NSTA-Wörterbuch hinzufügen , das die
Informationen für Admin enthalten wird Also werde ich gleich
hierher kommen und Admin eingeben. Das wird unser erster Benutzer sein. Und jetzt die Anmeldeinformationen,
geschweifte Klammern. Lass uns mit dem Passwort beginnen. Das Passwort ist hier drin. Der Doppelpunkt, und dann können wir
mit Admin 123 weitermachen. Ordnung? Also der erste Benutzer hier, admin, das Passwort
wird admin 123 sein, und wir können
einen weiteren Berechtigungsnachweis hinzufügen der
die letzte Anmeldung wäre Also beim letzten Einloggen haben wir
diesen in unseren Codes. Lass uns einloggen. Jetzt Dickdarm. Lass uns die Daten hinzufügen. Sagen wir, so
etwas wie 202-04-1019 In Ordnung. Nur als Beispiel, hier ist ein kleiner
Pfeil Lass mich sehen, was genau
ich falsch mache? Ah, hier drüben mit dem Passwort, die Spalte sollte draußen sein. Da habe ich einen Fehler gemacht.
Okay, viel besser. Das ist also das erste
Nesta-Wörterbuch, das
Admin hat und das die
Schlüssel-Wert-Paare Es hat das Schlüsselpasswort, und der Wert für ein Passwort wird
hier admin 123 sein Und dann
wird der andere Schlüssel hier letzter Login sein, und der Wert ist
natürlich 2024, 1019 Aber wir können
ein weiteres Wörterbuch hinzufügen. Ich werde Komma sagen. Und jetzt können wir einen weiteren Benutzer hinzufügen. Nennen wir diese Person Benutzer eins. Und ich
lasse Repl den Rest erledigen, fülle dort alle Informationen
aus und los geht's Der
Tag des Passworts wird also
Benutzer eins, eins, zwei, drei sein , und dann ist der letzte Login auch Nein, lassen Sie uns das Datum
hier auf etwas anderes ändern Also lass uns mit 06
und dann vielleicht mit 14 gehen. Also gut, zur Abwechslung. Also das hier
ist das, was wir
als verschachteltes Wörterbuch bezeichnen als verschachteltes Wörterbuch Das Wörterbuch befindet sich in
einem anderen Wörterbuch. Und natürlich können wir ziemlich
einfach auf
die Informationen zugreifen . Also, wenn
ich zum Beispiel das Passwort für den Admin
ausdrucken möchte , wie kann ich das machen, okay? Ich kann einfach „Drucken“ sagen. Und jetzt sage
ich in Klammern Benutzerinformationen mit
Unterstrich, okay? Und jetzt die normalen Klammern
und die inneren Doppelschichten, ich sage Admin Okay. Und jetzt wollen wir Passwort
für den Admin
ausdrucken. Also nochmal Klammern,
lass uns das Passwort hinzufügen. Und da ist es. Wenn ich das
Programm jetzt starte, können
Sie sagen, dass es Admin eins
bis drei sagt, denn wenn wir sagen:
Hey, drucken Sie aus dem
Benutzeranmeldewörterbuch, möchten
wir, dass Sie den Wert des
Schlüsselkennworts
ausdrucken , das dem Benutzer admin gehört
. Und deshalb
haben wir Admin 123. Oder ich könnte sagen,
okay, Druck und Klammern, Benutzeranmeldedaten, und lassen Sie uns das letzte
Login für Benutzer eins
ausdrucken. Wie werden wir das machen?
Nochmals, sehr einfach. Ich werde einfach hier
reinkommen und Benutzer eins sagen und jetzt neue Klammern
und dann einfach den letzten Login-Schlüssel
eingeben,
letzter in der Partitur, einloggen. Und da hast du's. Also lauf und los geht's 202-04-0614 Also das hier ist ein
Beispiel für verschachtelte Wörterbücher. Und das kann
besonders nützlich sein wenn Sie versuchen, Funktionen
oder Programme für Firewalls oder
ein Pastor-Check-In-Tool oder ein Tool, das Benutzeranmeldedaten überprüft
, solche
Dinge zu
erstellen oder Programme für Firewalls oder
ein Pastor-Check-In-Tool oder , oder , Sie können verschachtelte Wörterbücher
für diese Art von Programmen verwenden für diese Also danke fürs
Zuschauen, und wir sehen uns natürlich in der
37. Sets: Fahren Sie mit Datenstrukturen fort, und als Nächstes
werden wir Sets nennen. Jetzt, auf meinem Bildschirm hier, sehe ich, dass ich
zwei verschiedene Listen habe , die
sich in ihren
Elementen ähneln. Beachten Sie jedoch, dass die
kompromittierten Kennwörter die regulären Klammern verwenden, während die neuen kompromittierten
Kennwörter die geschweiften Klammern Ob Sie es glauben oder nicht, dies ist äußerst wichtig, da die regulären Klammern darauf hinweisen, dass sich
diese Elemente in einer Liste befinden, während die geschweiften Klammern darauf hinweisen, dass sich die Elemente nicht in einer Liste,
sondern innerhalb einer Gruppe
befinden sondern innerhalb Die natürliche Frage im
Moment wäre also, nun, was ist der Unterschied zwischen einer Liste und einem Satz? Es gibt
ziemlich viele von ihnen. Die Sache ist, wenn
Sie Ihre Artikel in einer Liste
haben, können Sie sie bestellen.
Du kannst sie bestellen. Sie können sie
anhand einer Indexnummer referenzieren, während
sie sich in einem Satz nicht in einer
bestimmten Reihenfolge befinden. Sie sind geordnet, oder? Tatsächlich beweise ich dir das. Wenn ich jetzt
die kompromittierten
Passwörter ausdrucken würde, oder? Und dann drucke ich auch
die neuen kompromittierten Passwörter aus ,
sieh dir die Bestellung an Für die eigentliche Liste können
Sie sehen, dass sie
demselben
Bestellkennwort folgt , 1234 QWERTY Aber mit dem Set ist es
fast zufällig. Es ging um 123, vier los, ging
dann zu ABC 123, es ging zu Monkey und so weiter. Die Sache mit Sets ist also, die Artikel sind nicht in einer
bestimmten Reihenfolge angeordnet. Ein weiterer großer Unterschied besteht darin, dass Ihre Liste
Duplikate zulässt, oder? So könnte ich meiner Liste zum Beispiel 123, wieder vier hinzufügen
. Wenn ich jedoch dasselbe in meinem Set
tun würde, würden Sie den Unterschied bemerken. Wenn ich also noch einmal renne, siehst
du jetzt in
der Liste, dass 1234 wiederholt wird. Im Set
ist 1234 nur einmal aufgeführt.
Es ist nicht erlaubt. Du darfst keine
Duplikate in deinen Sets haben. diesem Grund sollten
Sie immer dann, wenn Sie versuchen, eine Funktion oder
ein Programm zu erstellen , das
beispielsweise eine Liste von Elementen enthält, die eindeutig sein
sollten, wie , sagen
wir, Passwörter oder
E-Mail-Adressen oder Benutzerkonten, Gruppen
für diese verwenden und nicht für
Listen, weil Sie wissen, dass, okay, keine zwei Benutzer genau
dieselben Anmeldeinformationen haben können Es wäre also
idealer, ein Set zu verwenden. Sets lassen sich also in der Regel
viel schneller durchspielen. Das Programm kann einen Satz viel schneller
durcharbeiten als eine Liste. Jetzt sind beide veränderbar. Ihre Listen und Ihre
Sets sind veränderbar,
was bedeutet, dass Sie Änderungen vornehmen
können Sie können Elemente hinzufügen,
Elemente verschieben und ändern. Und das ist so ziemlich alles. Aber genau wie bei Ihren Listen haben
wir auch
Operationen oder Methoden, haben
wir auch
Operationen oder Methoden die wir für unsere Mengen verwenden können Wir nennen sie
mathematische Operationen wie Union Intersection,
Difference. Lass es mich dir einfach zeigen, okay? Lass mich das gleich hier entfernen. Lassen Sie mich jetzt
herkommen und mit
zwei verschiedenen Sets arbeiten. Okay? Ich glaube, ich brauche
diese Leitung eigentlich nicht mehr. Okay, also genau hier,
wir haben eins eingestellt, wir haben zwei eingestellt und dann haben
beide zwei IP-Adressen. Jetzt könnte ich entscheiden,
IP-Adressen zu finden , die in beiden Gruppen
gemeinsam sind, oder? Ich könnte zum Beispiel sagen, dass gemeinsame Unterstrich-IPs jetzt gleich der
ersten Gruppe und jetzt Union Okay? Also Kreuzung, richtig? Kreuzung und jetzt Satz zwei. Wir bezeichnen Schnittpunkt hier
also
als Operator,
der die gemeinsamen Elemente
in beiden Gruppen findet . Wenn ich also
jetzt raufkäme und dann print,
gemeinsame IPs sage und ich starte, würden
Sie sehen, dass 10.0.0.1 in beiden
Fällen üblich ist Deshalb wird es ausgedruckt. Aber wir haben auch
den so genannten mathematischen Unionsoperator. Ich kann also gleich
hier ein Symbol in ein Unionssymbol umwandeln. Was das bewirken wird,
ist wie
die Erweiterungsmethode für eine Liste, bei Sie die Elemente
in einer Liste zu einer anderen hinzufügen. Wenn ich jetzt renne, können
Sie sehen, dass wir jetzt
alle IP-Adressen haben. Beachten Sie jedoch, dass die 10.0.0.1-IP, sich um ein Set die in beiden
vorhanden ist, nur einmal aufgeführt
wird,
weil es handelt, oder? Wir haben hier einen anderen
Operator, der der
Differenzoperator sein wird Benutze einfach das Minuszeichen. Dadurch werden Sie nun Elemente
finden
, die in einer Gruppe vorhanden sind, in der anderen
jedoch nicht. Wenn ich das jetzt ausführe, können
Sie sehen, dass 192 one.one.01 ein Element ist , das
im ersten Satz vorhanden ist,
aber im zweiten Satz fehlt Also können wir das Gegenteil tun, okay? Ich kann Satz zwei minus Satz eins sagen, und jetzt erhalten wir
den 19216 acht.eins.102
, der natürlich in Satz zwei
vorhanden ist,
aber nicht in Satz eins , der natürlich in Satz zwei
vorhanden ist,
aber nicht in Satz aber nicht Wir haben auch Methoden wie
dein Hinzufügen, Entfernen, Clare. zum Beispiel eine neue
IP-Adresse hinzufügen möchte, Wenn ich zum Beispiel eine neue
IP-Adresse hinzufügen möchte, um eine zu setzen, müsste ich hier nur sagen, setze
eins und jetzt Punkt hinzufügen,
und jetzt
kann
ich in Klammern die neue IP-Adresse hinzufügen, in Klammern die neue IP-Adresse hinzufügen, sodass ich 192.168.0.10 sagen kann In Ordnung, nur als Beispiel. Also, wenn ich Satz eins
ausdrucken würde, lauf und los geht's. Sie können jetzt sehen, dass 192-16-8010 tatsächlich zu Satz eins hinzugefügt
wurde Sie können auch andere
Methoden wie Entfernen, Löschen usw.
verwenden. Sie können dies
gerne auf
der Python-Website nachschlagen ,
wenn Sie möchten. Das war's für Sets,
danke fürs Zuschauen. Wir sehen uns in
der nächsten Klasse.
38. Programmieren von Challenge-Sets und Loops: Komm zurück. Jetzt
möchte ich Sie durch eine Übung führen, die zwei Aufgaben hat. Und auf meinem Bildschirm können
Sie sehen, dass wir
ein Wörterbuch mit verschiedenen Protokollen haben . Sie können dort die
Schlüsselwertpaare sehen, den Benutzernamen und dann die IPs und dann die Status, richtig? Die beiden Aufgaben lauten also wie folgt. Zunächst möchten wir alle eindeutigen
IP-Adressen in den Protokollen
identifizieren und
ausdrucken . Und zweitens müssen wir nach
einer speziellen IP-Adresse suchen , die möglicherweise existiert. Wenn sie existiert,
werden wir etwas ausdrucken. Wenn es nicht existiert, können wir etwas anderes
ausdrucken. Sie können das Video also gerne pausieren und
versuchen , diese
beiden Aufgaben selbst zu lösen. Ein Hinweis, den ich geben
werde ,
ist, dass wir auf jeden Fall mit einer
Art Vier-Schleife arbeiten müssen .
Ich habe
jedes Protokoll durchgesehen und dann vor allem nach dem
Wert der IP-Adressen gesucht, und wir
müssen die Ergebnisse in
einen Satz übergeben , denn denken Sie daran,
dass
wir bei Sätzen keine Duplikate
haben werden Und da wir nach eindeutigen IP-Adressen
suchen, wären
Sets der
ideale Weg So kannst du das Video pausieren
und es selbst ausprobieren. Falls nicht, werde ich Ihnen erklären , wie wir beide Aufgaben
lösen können. Zuallererst, Aufgabe eins, müssen
wir alle
eindeutigen IP-Adressen identifizieren. Eine Sache, die wir jetzt tun
könnten ,
ist, einfach
ein Set zu erstellen , das
diese eindeutigen IP-Adressen speichert. Und ich werde dieses
Set einzigartige IPs nennen. Okay. Und jetzt werde ich, weil es ein Set ist, meine lockigen Stellen
öffnen Aber jetzt denk darüber nach, okay? Wir wollen jedes Protokoll durchgehen. Und dann suche nach dem
Wert des I P-Schlüssels. Also sieh dir das an, okay? Ich sage Log
und jetzt öffne ich meine
Klammern, und jetzt öffne ich weil wir auf den
Schlüssel
zielen wollen , nämlich IP. Im Grunde sagen
wir also: Okay, lassen Sie uns
für jedes Protokoll
auf die IP zugreifen, und jetzt werde ich
meine Vierschleife vorstellen, indem ich sage vier Log-In-Logs sind. Richtig? Was wir
jetzt getan haben, ist, dass
wir
die vier Schleifen erstellt haben, die
jedes Protokoll in unserem Log-Wörterbuch durchgehen , und wir werden speziell nach dem Wert des IP-Schlüssels
suchen. Da wir also
alles in ein Set übergeben haben, müssen wir
jetzt nur noch drucken. Und dann können
wir in Klammern etwas sagen wie
eindeutige IP-Adressen, Doppelpunkt und dann
einfach ein Komma hinzufügen und jetzt eindeutige Unterstrich-IPs. Und da ist es. Ich bin mir
ziemlich sicher , dass Sie
erwartet haben, dass dies noch
ein paar Codezeilen erfordert. Also herzlichen Glückwunsch, wenn Sie das alleine lösen
konnten,
unabhängig davon, ob es
zwei
oder drei Zeilen oder
vier Zeilen oder fünf Zeilen waren oder nicht zwei
oder drei Zeilen oder
vier Zeilen oder fünf Zeilen waren oder denn es gibt andere Möglichkeiten,
wie wir die Aufgabe lösen könnten, aber das ist mit Sicherheit der kürzeste und
effektivste Weg. Lassen Sie mich also weitermachen und das Programm
sofort
ausführen , nur um sicherzugehen, dass es
funktioniert, und los geht's. Fantastisch. Wir haben also
alles drin, 182, 168, 11, ein Punkt fünf, eins bis zwei, ein Punkt vier und dann ein Punkt drei. Fantastisch. Geil. In Ordnung. Als nächstes kommt Aufgabe zwei.
Okay? Also, wonach
suchen wir hier? Wir suchen nach einer
speziellen IP, die 182168
entspricht, eins Punkt vier Wir können also sagen, dass eine spezielle
IP 192.168.14 entspricht. Also, was werden wir jetzt
tun? Wir müssen die
Is-Anweisung verwenden , weil
wir sagen: Okay, wenn diese spezielle IP-Adresse darin gefunden
wurde,
tu das, sonst, mach
etwas anderes. Also werde ich sagen,
ob ein besonderer Unterstrich IP enthält, was N
in unserer eindeutigen Gruppe Eindeutiger Unterstrich
Es tut mir leid, eindeutige IPs,
eher eindeutige Unterstrich-IPs.
Was wollten wir tun Wir wollten „Drucken“ sagen und dann können wir sagen, weißt du, es wurde eine
spezielle IP-Adresse gefunden, okay? Sonst. Oh, das tut mir leid Und dann können wir noch sagen Drucken. Und dann wurde keine spezielle
IP-Adresse gefunden. Und da hast du es. Okay. Lass uns weitermachen, das Programm
ausführen
und da ist es. Die spezielle IP-Adresse
wurde tatsächlich gefunden. Nun, wenn ich
hier vier ändere, sagen wir mal zehn, nur um sicherzugehen, dass
es auch wirklich funktioniert, und ich das Programm
erneut starte, los geht's. Eine spezielle IP-Adresse
wurde nicht gefunden. Also noch einmal herzlichen Glückwunsch,
wenn Sie in der Lage waren Aufgaben oder
beide Aufgaben selbst zu
lösen. Wenn nicht, mach dir keine Sorgen. Es ist alles Teil des
Lernprozesses, aber ich werde dir
jetzt eine Übung
geben , die du selbst ausprobieren
musst. Also werde ich dich
in der nächsten Klasse sehen.
39. Challenge-Wörterbücher und Loops programmieren: Willkommen zurück. Also
habe ich beschlossen, eine weitere Aufgabe
hinzuzufügen, um sie zur dritten Aufgabe zu
machen, und es wird
etwas komplizierter. Und bei dieser Aufgabe wird es
darum gehen, die Anzahl der
fehlgeschlagenen Anmeldeversuche pro Benutzer zu zählen . Im Grunde gehen
wir also jedes Protokoll durch,
zählen, wie oft ein bestimmter Benutzer seinen Status nicht eingegeben hat,
und drucken dann einfach
aus: Ale hat, du weißt schon,
vier Fluren, Bob hat
einen
Fehler und drucken dann einfach
aus: Ale hat, du weißt schon, vier Fluren, Bob hat und so weiter,
weißt du, so etwas Sie können das Video also
gerne pausieren und versuchen,
diese Aufgabe selbst zu lösen Wenn nicht, lassen Sie uns
die beiden zusammen durchgehen. Also, wie ich schon sagte, ich habe meine Notizblock-Datei
hier, weil ich möchte, dass wir
das logisch angehen, okay Gehen wir also Schritt für Schritt vor. Die allererste
Frage hier ist diese. Werden wir
es mit einem Set, einem Wörterbuch oder
einer Liste zu tun haben? Lass uns darüber nachdenken,
oder? Offensichtlich kann es sich nicht um ein Set handeln, da Sets
keine Duplikate akzeptieren Wenn wir hier also ein Set
verwenden wollen
und Bob einen fehlgeschlagenen Anmeldeversuch hatte,
das zweite Mal, wenn Bob einen fehlgeschlagenen Versuch
hat, akzeptiert
das Set es nicht, denn denken Sie daran, dass Sets keine Duplikate
akzeptieren Also werden Sets hier nicht funktionieren. Es kann auch keine Liste sein
, denn denk mal drüber nach, okay? Wir müssen
den Benutzernamen mit der Anzahl
der Fehlschläge verknüpfen ,
und Wörterbücher eignen sich
hervorragend für die Arbeit
mit Schlüssel-Wert-Paaren Der Schlüssel hier ist also der Benutzername, und der Wert gibt
an, wie oft dieser bestimmte Benutzername in seinem Status
versagt hat Also werden wir mit einem Wörterbuch
arbeiten. Wir brauchen also ein Wörterbuch
, um den Benutzernamen und die
jeweiligen fehlgeschlagenen
Anmeldeversuche zu speichern , oder? Okay. Nun, was müssen wir tun, um herauszufinden oft jeder Benutzer etwas eingegeben hat? Wir müssen eine Viererschleife erstellen. Also, dass die Schleife jedes Protokoll
durchläuft, oder? Und dann eine Schleife, wenn sie ein Protokoll durchläuft, wonach suchen wir dann genau? Wir wollen nach dem
Status suchen, der Fehler anzeigt. Der Erfolg
interessiert uns nicht. Wir sind am Scheitern interessiert. Wir können also sagen, ob es der Status ist. Also wenn Status gleichbedeutend mit Misserfolg ist. Was wollen wir tun?
Wir möchten den Benutzernamen identifizieren, der
mit diesem Fehler verbunden ist. Lassen Sie uns also
den Benutzernamen extrahieren, okay? Wir werden den
Benutzernamen extrahieren und ihn dann in einer Variablen namens, sagen
wir Nutzername,
speichern , richtig? So können wir die Benutzernamen
in der Variablen username speichern. Sobald dieser Benutzername gefunden
wurde, lassen Sie mich diesen einen Auszug korrigieren. Okay, sobald festgestellt
wurde, dass ein Benutzername den Status oder Fehler aufweist, gibt es
hier zwei mögliche Szenarien .
Denk darüber nach, okay? Entweder ist es das allererste Mal , dass der Benutzername einen
fehlgeschlagenen Anmeldeversuch hatte, oder es könnte das zweite oder dritte
Mal oder das vierte Mal sein. Im Grunde könnte es sein,
dass es nicht das erste Mal ist. Okay? Also müssen wir
Bedingungen für beide schaffen, damit wir sagen können, ob es
das erste Mal ist, okay? Wir können sagen, richtig,
der Benutzername hier, die Punktzahl ist Null, weil
es das erste Mal ist, okay? Wenn es jedoch nicht
das erste Mal ist , wenn es
nicht das erste Mal ist, müssen
wir eins hinzufügen, okay, und es dann auch
zu ihrem vorherigen Datensatz hinzufügen. Wenn es also das allererste Mal ist, du bei
Null anfängst, bekommst du eins. Aber wenn es nicht das erste Mal ist, ob es das zweite
oder dritte Mal ist, werden
wir einfach
eins zu deinem vorherigen Datensatz hinzufügen. Ich hoffe, das ergibt Sinn. Und dann können
wir endlich einfach
die fehlgeschlagenen Anmeldeversuche ausdrucken . Okay? Sie können das Video also erneut anhalten und versuchen, diese
Aufgabe selbst zu lösen. Wenn nicht, lass uns
das Programm zusammen schreiben. Okay, also was
machen wir zuallererst? Wir erstellen unser Wörterbuch. Also werde ich
das Wörterbuch als
Fehlversuche bezeichnen , okay? Gleich und dann geschweifte Klammern werden leer sein, weil da vorerst
nichts drin ist Als Nächstes
kommen also die vier Schleifen. Ich würde sagen, für
Login-Logs, Colon. Und was suchen
wir jetzt? Wir suchen, wir wollen
überprüfen,
ob der Benutzername
den Status „Fehlgeschlagen“ hat. Konkret
wollen wir
überprüfen, ob der Status ein Fehler
ist. Also sage ich,
ich melde mich an und jetzt wollen wir den Status ins
Visier nehmen, richtig? Also, wenn der Status hier
gleich ist, oh, das tut mir leid. Es sollte draußen sein. Also wenn der Status gleich
dem ist, was als Fehlschlag gilt. Wenn es gleichbedeutend mit Fehlschlag ist, wonach wir suchen, dann
wollen wir den Benutzernamen extrahieren. Also werde ich sagen, dass der
Benutzername gleich sein wird. Und jetzt lassen Sie uns den Namen extrahieren. Ich sage Log und
jetzt in Klammern Benutzername. Lassen Sie mich die
Codes genau dort hinzufügen. Und da hast du es. Okay, was haben
wir bis jetzt gemacht? Zuallererst haben wir das Wörterbuch
erstellt, fehlgeschlagene Versuche. Jetzt haben wir unsere vier Schleifen erstellt, um jedes Protokoll in
den Protokollen durchzugehen und dann
nach Protokollen zu suchen , deren Status dem Status „Fehlschlag“
entspricht. Wenn Sie den Status gefunden haben
, der einem Fehler entspricht, lassen Sie uns den
Benutzernamen extrahieren und ihn dann der
Variablen Benutzername
zuweisen. Denken Sie jetzt daran, dass
es zwei Bedingungen geben wird. Hat dieser
Benutzername zum ersten Mal den Status
Fehlgeschlagen oder ist es
nicht das erste Mal? Also, sieh dir das an. Ich werde sagen, ob Use
a name okay ist, ist das nicht. Wie überprüfen wir, ob
es das erste Mal ist? Wenn es nicht in den
fehlgeschlagenen Versuchen liegt? Okay? Also, wenn
das das erste Mal ist, dass wir
tatsächlich feststellen, dass dieser
Benutzer einen fehlgeschlagenen Datensatz hat, können wir das überprüfen, indem wir
sagen, dass der Name
nicht in den fehlgeschlagenen Versuchen verwendet wird .
Was wollen wir tun? Wir wollen sagen, dass Versuche gescheitert sind. Und jetzt in Klammern, benutze einen Namen
, der gleich Null sein wird. Wenn es jedoch läuft,
tut mir das leid. Lass mich fehlgeschlagene Versuche wissen. Versuch. Eigentlich entschuldige
ich mich Ich habe
bei den Versuchen einen Fehler gemacht. Dass sie T für
S ta ta ta ta ist. Ich entschuldige mich. Lassen Sie mich dort mein
T hinzufügen und dort mein T Okay, aber wenn
es nicht das erste Mal ist, wenn es das zweite Mal ist, das dritte
Mal, was machen wir dann? Wir sagen gescheiterte Versuche. Und jetzt benutze einen Namen. Verwenden Sie einen Namen, der
gleich plus gleich eins sein wird. Weil wir den Wert
erhöhen werden. Wenn es vorher eins war, werden
es jetzt zwei, wenn es vorher zwei waren,
jetzt
werden es drei und so weiter Ich möchte darauf
hinweisen, dass die zweiten fehlgeschlagenen
Versuche hier draußen sind. Es ist nicht in dieser
Wenn-Aussage, okay? Denn das hier, Zeile
21 22, dient nur dazu, zu überprüfen, ob der Benutzername vorher
nicht existiert hat. Und jetzt, das zweite
Feld versucht hier, um zu überprüfen, ob der fehlgeschlagene Versuch
tatsächlich schon einmal
aufgezeichnet wurde und jetzt
erhöhen wir die Zahl um eins Also alles, was wir
jetzt tun müssen, ist okay zu drucken. Und dann stellen Sie sicher, dass das draußen
ist, drucken Sie. Und jetzt können
wir in Klammern so etwas wie
ausgefüllte Anmeldeversuche
pro Benutzer sagen ausgefüllte Anmeldeversuche , und dann abkühlen, und
dann können wir jetzt einfach ausgefüllte Unterstriche
hinzufügen Und da hast du's. Okay,
ich hoffe, das sollte funktionieren. Ich führe das Programm und los geht's. Fantastisch. Also, Bob war drei. Alice war zwei und Dave war einer. Ich denke, das ist richtig. Bob hat eins hier, eins, eins, das sind drei. Okay, Alice hat. Alice
war hier erfolgreich. Okay, das ist ein
Fehlschlag, zwei, okay. Und dann ist Dave
einer. Und natürlich hat Carol nicht geworfen, weil
Carol nur einen Baumstamm hatte und sie erfolgreich war Das ist also so ziemlich alles, um diese spezielle
Aufgabe zu lösen. Also haben wir erneut
ein Wörterbuch mit dem Titel
Fehlgeschlagene Versuche erstellt . Wir haben eine Schleife erstellt, um jedes Protokoll
durchzugehen
und dann zu sagen: Okay, wenn wir einen Status finden
, der fehlgeschlagen ist, wollen
wir zuerst überprüfen, wollen den Benutzernamen extrahieren, der mit diesem Fehler
verknüpft ist, und dann überprüfen,
ob der Benutzername
schon einmal bei unseren fehlgeschlagenen Versuchen
verwendet wurde schon einmal bei unseren fehlgeschlagenen Versuchen oder ob
es das erste Mal ist. Wenn es das erste Mal ist,
weise ich ihnen den Wert Null zu, und wenn es
nicht das erste Mal ist, füge ich
einfach eins zu
ihrem vorherigen Wert hinzu. Übrigens, eine Verwirrung, die Sie
hier haben könnten, ist, Moment mal, Alex, warum ist es so, dass
hier in Zeile 21 22, wenn es das erste Mal ist, dass
der Datensatz ein Fehler ist, dass die NM einen
Fehlerrekord hat, warum nicht gleich eins sagen VON Z O? Der Grund dafür ist, dass
wir in Zeile 23 Wert
trotzdem eins
hinzufügen werden, egal ob es
das erste Mal oder
das zweite Mal ist oder nicht , also spielt es keine Rolle. Ich hoffe, du verstehst, was ich meine ,
richtig, denn
das wird verschwinden. Also, wenn es das allererste Mal ist, richtig, wird das
Programm zuerst sagen: Okay, Ihre Feldnummer von
Ts ist Null in Zeile 22, und dann in Zeile 23 wird
es trotzdem
eins hinzufügen. Deshalb haben wir hier
Null zugewiesen und nicht Eins. Wenn wir hier eine zugewiesen haben,
dann automatisch Wer auch nur
einen Fehlversuch
gemacht hat jetzt zwei
gegen seinen Datensatz. Und um es dir zu beweisen, kannst
du sehen, dass Dave gerade nur einen fehlgeschlagenen
Anmeldeversuch
hat, oder? Wenn ich
jetzt hierher käme und stattdessen Null
auf Eins ändere und
das Programm starte, sieh dir das an. Dave hat jetzt zwei,
deshalb haben wir zuerst diese 10 gemacht, weil wir wissen, dass in Zeile
23, gleich im nächsten Schritt, einer zum
Datensatz dieses Benutzers hinzugefügt wird unabhängig davon, ob
es das erste oder das zweite Mal ist
oder nicht . Hoffentlich verstehst du,
was wir dort gemacht haben. Danke fürs Zuschauen,
und wir sehen uns natürlich in
der nächsten Klasse.
40. Projekt für ein Authentifizierungssystem: Ordnung, also willkommen zur Programmierherausforderung,
bei
der wir
für uns selbst ein sehr einfaches
Authentifizierungssystem erstellen für uns selbst ein sehr einfaches
Authentifizierungssystem Wir werden
alles anwenden, was wir
bisher gelernt haben , von Variablen über Funktionen bis hin zu Schleifen und natürlich den neuesten
Wörterbüchern, Wörterbüchern Jetzt habe ich das Programm bereits
ausgeschrieben. Das ist die Ausgabe. Das Programm
wird also so funktionieren. Zu Beginn stehen dem
Benutzer drei Optionen
zur Verfügung, um sich entweder zu registrieren, anzumelden oder das Programm einfach zu
beenden. Wenn sie jetzt drei sagen, wird das Programm sofort beendet und
das gesamte
Authentifizierungssystem
beendet. Wenn sie sich jedoch für einen entscheiden
und die Eingabetaste drücken, geben sie
jetzt X
einen Benutzernamen ein. Ich gehe mit
John, lass mich
mein Passwort als Passwort angeben ,
und los geht's. Die Registrierung wird erfolgreich sein. Wenn ich nun erneut einen eingeben
und versuchen würde, genau denselben Benutzernamen
John zu verwenden , um ein neues Konto zu erstellen, überprüft
das System, ob, Oh,
John bereits existiert, versuchen Sie es mit
einem anderen Benutzernamen. Unser Programm
wird also prüfen, ob der Benutzername
bereits existiert. Nun zu Nummer zwei:
Wenn wir versuchen, uns anzumelden
, werden wir
nach dem Benutzernamen fragen. Wenn ich John sage, richtig,
und dann
das richtige Passwort eingebe, können
Sie sehen, dass es
jetzt
heißt, dass die Anmeldung erfolgreich war.
Willkommen zurück. Wenn ich nun
erneut versucht habe, mich mit genau
demselben Benutzernamen anzumelden , John, aber dieses Mal das
offensichtlich falsche Passwort verwendet habe, wird dort ein
ungültiger Benutzername
oder ein ungültiges Passwort angezeigt, versuchen Sie
es bitte erneut. Das wird also unser
grundlegendes Authentifizierungssystem sein. So wird es funktionieren. Und was ich
jetzt tun möchte, ist meine Notepad-Datei
hierher zu bringen meine Notepad-Datei , nur um Ihnen eine Vorstellung davon zu
geben ,
womit wir arbeiten
werden Also brauchen wir
natürlich ein Wörterbuch, das
die Benutzerdaten speichert, weil wir vergleichen
müssen, ob der neue Benutzername, den der Benutzer eingeben
möchte, schon einmal erstellt
wurde, ob das Passwort
korrekt ist, solche Dinge Und wir werden
ein Wörterbuch verwenden , weil
wir das Schlüssel-Wert-Paar
erstellen müssen , indem wir sie und Password Ware
verwenden, sie verwenden, wird der Schlüssel sein, und dann ist der Wert des
Schlüssels das Passwort. Wörterbücher
werden hier also nützlich sein. Wir werden zwei
verschiedene Funktionen benötigen. Die allererste Funktion besteht
darin, den Benutzer zu registrieren, und die andere
darin, den Benutzer anzumelden. nun für die eigentliche Funktion Was brauchen wir nun für die eigentliche Funktion
zur Registrierung des Benutzers? Zunächst müssen
wir den Benutzer
bitten, den Benutzernamen
anzugeben und dann benötigen wir
eine Art EL-Anweisung, die
überprüft, ob der
Benutzername bereits existiert. Falls es nach
einem anderen Benutzernamen fragt. Wenn es sich jedoch um einen
brandneuen Benutzernamen
handelt, kann das Programm fortfahren, nach dem Passwort
zu fragen. Sobald der Benutzer
sowohl den Benutzernamen als auch das Passwort eingegeben hat, müssen
wir
den Benutzernamen und das Passwort (
Key Value Pay) erstellen . Ich werde dir zeigen,
wie das genau geht. Sobald dies erledigt ist, können
wir sagen, dass die Registrierung
erfolgreich war , also ziemlich
einfach. Damit die Funktion
den vorhandenen Benutzer erneut anmelden kann, müssen
wir den Benutzer erneut bitten, den Benutzernamen und das Passwort
anzugeben. Und dann
müssten wir überprüfen, ob der Benutzername mit dem Passwort übereinstimmt , das bereits im Wörterbuch
gespeichert ist. Wenn es falsch ist, werden
wir ungültigen
Benutzernamen und ein ungültiges Passwort drucken. Andernfalls, wenn es wahr ist das Passwort und der
Benutzername übereinstimmen, können wir
sagen, dass die
Anmeldung erfolgreich war. Und schließlich besteht die dritte
Phase darin,
das eigentliche
Authentifizierungssystem zu erstellen , bei dem dem Benutzer drei Optionen zur
Registrierung, Anmeldung oder zum Beenden
angeboten werden drei Optionen zur
Registrierung, Anmeldung oder zum Beenden
angeboten . Und je nachdem, welche
Option der Benutzer wählt, müssten
wir
die entsprechende Funktion aufrufen. Also werden wir dieses
Authentifizierungssystem von Grund auf neu
aufbauen. Freust du dich darauf? Ich hoffe du bist es. Lass uns gleich reinspringen.
41. Schritt 1: Aufbau der Registrierungsfunktion: Als erstes werden
wir also die Funktion
erstellen, mit der der Benutzer registriert
wird. Lassen Sie uns jedoch
ein Wörterbuch erstellen , das zum Speichern der
Benutzeranmeldeinformationen
verwendet wird . Für das Wörterbuch können
wir es also User-Underscore-Anmeldeinformationen nennen Also gut, gleich, und
dann haben wir
unsere Colly-Zahnspange . In Ordnung. Nun zur eigentlichen Funktion,
unseren Benutzer
zu registrieren , lassen Sie mich
die Notiz dort ganz schnell hinzufügen. Funktion zur Registrierung des Benutzers. Okay. Definieren wir die Funktion. Ich werde
sterben und dann
sagen wir , Underscore-Benutzer registrieren Ruf an. Also, was brauchen wir? Zunächst
müssen wir den Benutzer bitten , den Benutzernamen einzugeben. Wir können das
einer Variablen zuweisen. Nennen wir die Variable
user name equals. Lassen Sie uns nun den Benutzer
auffordern , den Benutzernamen einzugeben, und dann können wir sagen,
geben Sie Ihren Benutzernamen Okay.
Lassen Sie uns nur als Beispiel die Eingabetaste drücken. Lassen Sie mich
hier zwischen dem Doppelpunkt und
den Codes etwas Leerzeichen lassen
, damit etwas Platz drin ist. Im Moment
müssen wir also überprüfen, ob der
Benutzername, den der Benutzer angibt,
tatsächlich bereits existiert. Lassen Sie mich
hier einfach einen Knoten in einer separaten Zeile hinzufügen. Lassen Sie uns die Notiz hinzufügen und
prüfen, ob der Benutzername
bereits existiert. Also, wie werden wir das machen? Nun, wir können das tun, indem wir die If-Anweisung
verwenden. Ich werde sagen, ob
Benutzername und jetzt in den Benutzeranmeldedaten. Auch hier hat uns Python den Code bereits
gegeben. Wenn der Benutzername in den
Benutzeranmeldedaten, Doppelpunkt, lassen Sie uns den Benutzernamen ausdrucken,
bereits existiert, wählen
Sie bitte einen
anderen Benutzernamen. Ich glaube, das gefällt mir.
Ich werde die Rücksendung jedoch entfernen.
Das brauchen wir nicht. Wenn der
Benutzername jedoch nicht existiert, wenn es sich um einen brandneuen Benutzernamen handelt, können
wir dann unser s hinzufügen.
Was müssen wir jetzt noch tun? Wir müssen den Benutzer
nach seinem Passwort fragen. Ich werde etwas anderes sagen. Lassen Sie uns ein variables
Passwort erstellen und dieses dann den Eingaben
zuweisen
und dann in Klammern, sagen
wir, ein Passwort eingeben. Rufen Sie an, und dann fügen wir den Abschlusscode hinzu,
und da ist er. Von hier aus müssen wir als Nächstes
das Schlüssel-Wert-Paar für
Benutzername und Passwort erstellen . Nun, wie werden
wir das machen? Nun, wir werden das tun, indem das Wörterbuch
Benutzeranmeldedaten
aufrufen. Okay. Jetzt schau dir das an. Ich öffne meine Klammern und gebe
den Schlüssel an, der
Benutzername sein wird und jetzt dem Passwort
entspricht So können wir das Schlüssel-Wert-Paar erstellen
. Sie geben den Namen Ihres Wörterbuchs an und geben dann in Klammern den Namen des
Schlüssels an, der seinem Wert entspricht, und da ist er genau da Dann besteht der letzte Schritt
nun darin,
einfach die Registrierung erfolgreich auszudrucken Und da ist es.
Lassen Sie uns jetzt etwas versuchen. Ich werde
diese Funktion aufrufen und
schauen, ob sie tatsächlich funktioniert. Ich werde Benutzer registrieren,
Klammern, Doppelpunkt sagen und da ist es. Lass uns das versuchen. Wir brauchen hier also keine Doppelpunkte. Entschuldigen Sie sich. Wir brauchen genau da keine
Doppelpunkte Lass uns das Programm ausführen. In Ordnung, gib einen Namen ein. Ich sage John, lass uns ein Passwort eingeben. Sagen wir einfach John
für das Passwort. John, geben Sie erneut ein und es heißt, dass die Registrierung
erfolgreich war. Beachten Sie jedoch, dass
das Programm beendet wurde, und das liegt daran, dass wir keine tatsächliche Schleife
haben, die
ständig läuft, um
den Benutzer immer wieder aufzufordern , einen neuen
Benutzernamen, ein neues Passwort einzugeben. Was können wir tun, um dieses
Programm auf unbestimmte Zeit laufen zu lassen? Nun, wir können
den While-True-Loop einführen. Hier drüben, direkt unter
der Benutzerregistrierungsfunktion, werde
ich keine Schleife
aufrufen, in while und dann true
steht. Die Einrückung wird
jedoch sehr, sehr wichtig sein. Ich werde das alles unter die
Lupe nehmen, um sicherzugehen, dass alles
unter die wilde, wahre Aussage fällt Schauen Sie, lassen Sie mich meine Spalte
genau dort hinzufügen, und da ist sie, jetzt werden wir das
Programm kontinuierlich laufen lassen. Lassen Sie uns überprüfen,
ob es tatsächlich
überprüft , ob der von uns angegebene
Benutzername bereits existiert. Lassen Sie uns das Programm
erneut ausführen. In Ordnung. Also diesen werde
ich mit Mark nehmen. Passwort ist Passwort.
Okay, gut. Registrierung erfolgreich.
Jetzt können Sie sehen , dass nach
einem anderen Benutzernamen gefragt wird. Lass uns versuchen, Nancy, Password, lass uns SOD nehmen,
Fish. Es funktioniert Lassen Sie uns nun erneut versuchen, Mark zu
verwenden, Enter und jetzt heißt es, Benutzername ist bereits vorhanden, bitte
wählen Sie einen anderen Benutzernamen. Fantastisch. Wir können gerade sehen, dass der erste
Teil unseres Programms, der überprüft, ob der
Benutzer registriert und ob der Benutzername
bereits existiert, Sie jetzt sehen können,
dass er
einwandfrei funktioniert und
das ist großartig. Schließ dich mir im nächsten Video an dem
wir jetzt zur zweiten Phase
übergehen, wo wir
die Funktion zum Anmelden des Benutzers erstellen werden.
42. Schritt 2 So erstellst du die Login-Funktion: Willkommen zurück. Gehen wir nun
zur zweiten Phase über , in der wir eine zweite Funktion
erstellen, einen vorhandenen Benutzer
anmelden. Ich werde die Funktion
hier bis zum Ende drücken und nach draußen eine neue Notiz hinzufügen,
die besagt
, dass
Funktion zwei, der Benutzer einloggen, steht hier bis zum Ende drücken und nach draußen eine neue Notiz hinzufügen,
die besagt
, dass . Was brauchen wir? Lassen Sie
uns zunächst den Namen der
Funktion
erstellen, die def, sagen
wir,
login-underscore-user sein sagen
wir,
login-underscore-user Und lassen Sie uns einen Doppelpunkt hinzufügen. Was
werden wir brauchen? Wir werden sowohl den
Benutzernamen als auch das Passwort benötigen. Nehmen wir an, der Benutzername
ist gleich und jetzt geben wir den Benutzer ein. Wir werden den Benutzer
auffordern, seinen Benutzernamen anzugeben Geben Sie Ihren Nutzernamen ein. Colon, lass uns genau dort etwas
Platz hinzufügen. Okay, als nächstes kommt das Passwort, ich sage
Passwort ist gleich und dann gib dein Passwort ein,
fertig. Wir
müssen jetzt überprüfen ob der Benutzername tatsächlich mit dem Passwort
übereinstimmt, das wir im Registrierungsbereich
hatten Ich werde meine
Notiz ganz schnell hinzufügen. Überprüfe, ob
Benutzername und Passwort übereinstimmen. Also, wie machen wir das? Das gute alte Wenn
und jetzt Benutzername
und Benutzerunterstrich Credent tut mir leid Ich verwende einen Namen in den Benutzeranmeldedaten und weil sowohl der Benutzername
als auch das Passwort überprüft werden
müssen und Benutzer die Anmeldeinformationen
und jetzt die Klammern unterstreicht,
verwende ich einen Namen, der dem Passwort entspricht Sehen Sie, was wir hier gemacht haben,
wir überprüfen ,
ob der Benutzername,
der
bereits im Wörterbuch gespeichert ist bereits im Wörterbuch gespeichert ,
Benutzeranmeldedaten und jetzt das Schlüsselwertpaar für
den Benutzernamen und das Passwort, falls sie tatsächlich übereinstimmen ,
dann können wir drucken, ich sage drucken, sagen wir
einfach, willkommen zurück. Eine sehr, sehr, sehr einfache. Andernfalls, wenn es nicht
passt, können wir drucken. Jetzt können wir sagen, dass mein
Passwort ungültig Bitte versuchen Sie es erneut. In Ordnung. Da ist es. Ziemlich
einfach. Was ich
jetzt tun werde, ist, beide
Funktionen als Benutzer registrieren
aufzurufen
und mich beide
Funktionen als Benutzer registrieren
aufzurufen dann auch
beim Score-Benutzer anzumelden. Wir müssen jedoch sehr genau
darauf achten, dass die Schleife derzeit
innerhalb der Registerfunktion befindet innerhalb der Registerfunktion Es ist nicht draußen. Wir müssen unsere
Schleife unabhängig
von der Registerfunktion
und der Login-Funktion ausführen . Was ich tun werde, ist, dass
ich das Wilde
ausschneide , es ausschneide, und dann werde ich es von alleine nach
draußen einfügen , solange es wahr ist. Aber alles andere
muss darunter fallen. Ich werde alles
unter „Lass mich das
nochmal machen“ auf den Tisch legen und los geht's Da ist es. Sie können jetzt
sehen, dass die Benutzeranmeldedaten und dann die Wile-Schleife unabhängig voneinander
sind Nun, das Wil stimmt, die gesamte Schleife beginnt
mit
der Registrierung des Benutzers und der anschließenden
Anmeldung des Benutzers, geprüft wird, ob
es Übereinstimmungen gibt, solche
Dinge.
Das sollte funktionieren. Ich werde
jetzt weitermachen,
das Programm ausführen und uns sehen lassen. Ich werde
den ersten Benutzernamen angeben. Lass uns mit Mark weitermachen und
dann
lautet das Passwort admin registration successfully. Lassen Sie uns nun versuchen, uns als Mark
einzuloggen. Ich sage Mark
und dann Admin Sorry, Mark und dann Admin, und los geht's. Willkommen zurück. Es funktioniert erfolgreich. Jetzt ist es zurück in
die Registrierungsphase gegangen. Wenn ich jetzt versuche,
ein anderes Konto bei Mark zu erstellen, wird angezeigt, dass der
Benutzername bereits existiert. Bitte wähle einen
anderen Nutzernamen. Lass uns mit Nancy gehen. Passwort für Nancy, nehmen
wir das Passwort. Okay, jetzt können Sie
sehen, dass dort leider ein
ungültiger Benutzername oder ein ungültiges
Passwort steht . Bitte versuchen Sie es erneut. Der Grund, warum das passiert, ist dass das Programm so, wie
es momentan geschrieben
ist, einfach Schritt
für Schritt vorgeht unabhängig davon, ob der vorherige
Schritt erfolgreich war oder nicht. Hier können Sie
sehen, wie es mit der
Registrierungsphase begann, die funktioniert hat. Ich bin dann zur
Login-Phase übergegangen, die funktioniert hat. Es kam jetzt wieder für
die Login-Phase hierher. Nochmals Entschuldigung für die
Registrierungsphase, ich habe gesehen, dass Mac bereits als Benutzer
existiert. Also hieß es, bitte wähle
einen anderen Benutzernamen. Es fordert
den Benutzer jedoch immer wieder auf, hier
einen anderen Namen zu erstellen.
Es ging direkt zur Anmeldephase, Es ging direkt zur in
der überprüft wurde
, ob Nancy existiert Nancy existierte nicht. Aus diesem Grund wurde ein ungültiger
US-Name oder ein ungültiges Passwort angezeigt.
Bitte versuchen Sie es erneut. Im Moment ist es wieder
in die Registrierungsphase übergegangen. Wenn ich noch einmal Nancy sage, können Sie
jetzt sagen, dass Nancy
nach
dem Passwort gefragt wird, weil es sich
in der Registrierungsphase befindet. jetzt Admin eingeben,
wird angezeigt, dass die Registrierung erfolgreich war. Lassen Sie uns nun versuchen anzumelden, da Night in die Anmeldephase
übergegangen ist. Ich sage, das
Passwort von Nancy ist admin, aber ich gebe
etwas anderes ein, Enter, und dann heißt es
Ungültiger
US-Passwort , bitte versuchen Sie es erneut. Wir können im Moment sehen, dass
das Programm zu 80% funktioniert. Die Registrierungsphase
und die Anmeldephase funktionieren
jedoch, wenn wir idealerweise versuchen, ein neues Benutzerkonto zu
erstellen, und wenn wir versuchen,
einen bereits existierenden Benutzernamen zu verwenden , sollte
das Programm nicht
zur zweiten Phase übergehen
, in der der
Benutzer lediglich angemeldet wird, bis der Benutzer
tatsächlich einen
brandneuen Benutzernamen
für die Registrierung angegeben hat tatsächlich einen
brandneuen Benutzernamen
für die Registrierung angegeben . Das werden wir
im dritten und letzten Teil
dieser Aufgabe beheben .
43. Schritt 3: Erstellen eines Authentifizierungssystems: Ich komme zum letzten
Teil unserer Aufgabe, und zwar der Erstellung des eigentlichen
Authentifizierungssystems. Dadurch wird der
Benutzer aufgefordert, sich entweder zu registrieren, einzuloggen oder vielleicht
sogar das System einfach zu verlassen. Jetzt werde
ich zunächst die Funktionen
hier
entfernen, mich registrieren und anmelden. Ich werde auch
die While-Schleife
hier entfernen die While-Schleife
hier , weil wir sie an einem
anderen Ort
ausführen werden. Jetzt werde ich
den Einzug ändern und
sicherstellen , dass die Funktionen Benutzer und
Anmeldebenutzer in derselben Zeile
registrieren Das hier sollte sich unter der
Benutzerfunktion anmelden befinden und da ist es Lassen Sie uns zunächst
das Authentifizierungssystem erstellen. Ich werde
meine Notizen hinzufügen und
dieses Menü das Hauptmenü nennen . Jetzt können wir hier unsere Funktion
definieren , das
Authentifizierungssystem Und da ist es. Was brauchen wir hier? Wir müssen
den Benutzer auffordern ,
sich entweder zu registrieren, anzumelden oder zu beenden. Wir werden
ein paar Kontoauszüge ausdrucken. Lassen Sie uns mit dem
Ausdrucken beginnen und ich werde sagen, sagen
wir, grundlegendes
Authentifizierungssystem Das wird ganz oben stehen. Lassen Sie uns dann als Nächstes
die allererste
Option für den Benutzer ausdrucken . Wir können sagen, dass ein Register
die erste Option sein wird und dann Option Nummer zwei
ausdrucken, das ist die Anmeldung mit zwei Punkten. Dann wäre die letzte Option hier
drin drei und dann nennen wir das
eine Ausfahrt. Da ist sie. Hier haben wir unsere drei
Optionen. Jetzt muss der Benutzer entweder eine, zwei oder drei
hinzufügen. Lassen Sie uns eine
Variable erstellen, die diese
bestimmte Option
darstellt. Ich nenne
diese eine Option, Option entspricht
der Eingabe, und lassen Sie uns nun den
Benutzer bitten, Ihre Wahl einzugeben. Wir fragen den
Benutzer gerade: Hey, gib uns, was
du tun möchtest. Wir müssen das IF-Szenario
erstellen in dem wir prüfen, ob
der Benutzer Option eins wählt, nämlich registrieren, wir können die Funktion Benutzer registrieren
aufrufen. Wenn sie Option zwei wählen, können
wir die
Login-Benutzerfunktion aufrufen oder wenn sie beenden, können
wir die Schleife einfach beenden. Ich werde jetzt sagen,
ob die Option hier gleich ist, und jetzt kann ich eins sagen Dickdarm. Was machen wir, wenn
dieser Käse die erste Option ist Nun, wir können die Funktion
register underscore user nennen. Sehr, sehr einfach. Nun, ob welches wäre wenn. Wenn es Option zwei
wäre, was würden wir tun? Wir werden die
Funktion login underscore user aufrufen. Nun zu der letzten, wenn Option gleich drei ist, was machen wir? Wir können drucken. Dann programmieren, wir können sagen, das System
verlassen. Und da ist es, und dann können wir etwas anderes sagen wenn der Benutzer vielleicht
Option vier, fünf, sechs anbietet, die es nicht gibt,
dann können wir sagen,
else, drucken und
dann in Klammern, wir können sagen, ungültige Wahl,
und dann können wir sagen, bitte wählen Sie aus den Optionen
eins, zwei oder drei Da ist sie. Da ist es. Jetzt können wir endlich
das Authentifizierungssystem ausführen, wir können das tun, indem wir einfach
Authentifizierungssystem sagen, und da ist es. Es gibt eine Sache, die wir
noch nicht hinzugefügt haben. Ich weiß nicht, ob du erkennen
kannst, was es ist, aber das ist die Schleife. Denn im Moment wird
dieses Programm nur einmal ausgeführt,
aber wir möchten, dass sich der Benutzer
weiterhin entweder
anmeldet , sich
registriert oder beendet. Was machen wir? Hier müssen
wir
den Wild True Loop aufrufen. Aber wo werden
wir es Ihrer Meinung nach hinstellen? Wir werden es direkt
unter der Funktion unseres
Authentifizierungssystems platzieren . Hier werde ich sagen
, absolut wahr. Denken Sie jetzt daran, dass alles hier
drin unter die wilde
Wahrheit
fallen muss. Stellen Sie also sicher, dass Ihre
Identifikation korrekt ist, und dann
müssen wir
auch
die Break-Anweisung hinzufügen, um die Schleife zu beenden Nun, wo beenden wir
die Schleife? Wir beenden die Schleife, bei der der Benutzer Option drei
wählt, nämlich das System zu verlassen Gleich darunter, unter Drucken, sage
ich Pause und da ist
es, unser Programm sollte
hoffentlich
ohne Probleme funktionieren. Lass mich
jetzt weitermachen und es ausführen. Wir haben
hier ein Problem, und das
liegt daran, dass die Pause außerhalb
des Regelkreises liegt. Schauen Sie sich das an. Oh, wow, Einrückungen
sind so wichtig. Sie können das
jetzt sehen, wenn das alles nicht dieselbe Einrückung
wie die While-Anweisung Gehen wir also wieder
zurück und ziehen sie
richtig ein und da ist es Sie können sogar sehen, dass ich mit meiner
Einrückung auch
Fehler mache mit meiner
Einrückung auch
Fehler wir also sicher , dass alles andere richtig eingerückt
ist Lassen Sie uns versuchen, das
Programm noch einmal auszuführen. Zum Glück funktioniert es jetzt. Lass es uns testen. Ich entscheide mich für
Option Nummer eins. Lassen Sie uns zunächst
Mark registrieren und sein Passwort lautet admin. Fantastisch. Versuchen wir nun, zu Option Nummer zwei zu
gehen, um uns anzumelden. Verwenden Sie den Namen. Versuchen wir es als Beispiel mit Nancy, Passwort, sagen wir Bob. Aber jetzt steht dort ein ungültiger Name Verwenden Sie den Namen des Passworts.
Bitte versuchen Sie es erneut. Es
funktioniert offensichtlich sehr gut. Lassen Sie uns erneut versuchen, uns dieses Mal als
Mark zu
registrieren . Überprüfen Sie erneut, ob das Programm erkennt,
dass Mark bereits existiert, also Mark, und es sagt: Okay, Name existiert bereits, bitte
wählen Sie einen anderen Benutzernamen. Okay. Lassen Sie uns versuchen, uns dieses Mal als Mark anzumelden
. Geben wir
das Passwort admin mit der Aufschrift „ Willkommen zurück“ an. Ich habe tatsächlich gearbeitet. Versuchen wir erneut, uns als Mark anzumelden. Aber lassen Sie uns dieses Mal
ein anderes Passwort verwenden, ein langes Passwort
und dann heißt es: Ungültiger Benutzername oder
Passwort, bitte versuchen Sie es erneut. Es scheint, dass es richtig
funktioniert. Der letzte Test besteht darin, zu verlassen ,
einzutreten und los geht's. das System verlassen, ist
die Schleife beendet, das Programm ist
beendet. Da ist sie Wir haben erfolgreich ein Programm
erstellt, dem es sich um ein grundlegendes
Authentifizierungssystem handelt, das es einem Benutzer ermöglicht,
sich entweder zu registrieren, anzumelden oder das Programm einfach zu
beenden. Natürlich haben wir
Kontrollen hinzugefügt, um sicherzustellen, dass keine doppelten Konten registriert werden
können. Wir haben auch
Kontrollen hinzugefügt, um sicherzustellen , dass Benutzernamen und
Passwörter übereinstimmen, und das ist es. Herzlichen Glückwunsch. Ich hoffe, Ihnen hat diese Aufgabe gefallen,
diese Herausforderung. Danke fürs Zuschauen.
Wir sehen uns in der nächsten Klasse.
44. Dateibearbeitungsbereich – Einführung: Willkommen in diesem Abschnitt,
in dem wir über den Umgang mit Dateien sprechen
werden, und ob
Sie es glauben oder nicht, dies ist offiziell
der Beginn der fortgeschritteneren Themen Python-Programmierung,
denn hier dies ist offiziell
der Beginn der fortgeschritteneren Themen
zur Python-Programmierung,
denn hier lernen Sie, wie
Sie Programme schreiben können , die Dateien erstellen
und sogar ändern können. Und was vielleicht noch
wichtiger ist, Sie werden genau lernen,
wie man mit Dateifehlern umgeht. Nehmen wir zum Beispiel an, dass in Ihrem Programm etwas
passiert ist, es hat nicht ganz so geklappt, wie es funktionieren sollte. Sie werden
genau lernen, wie Sie Ihr
Programm so
modifizieren oder gestalten können , dass solche Fehler
professionell
behandelt werden . Das wird also ein sehr,
sehr interessanter Abschnitt. Und natürlich lernen
Sie auch die verschiedenen
Methoden kennen, die wir auf unsere Dateien
anwenden können, z. B. wie Sie aus einer Datei
lesen
oder vielleicht sogar in eine Datei schreiben oder
vielleicht sogar eine bestimmte Datei anhängen oder
ändern können oder vielleicht sogar in eine Datei schreiben oder
vielleicht sogar eine bestimmte Datei anhängen oder
ändern Und natürlich werden Sie
auch lernen, wie Sie mit den
Dateifehlern umgehen,
über die ich bereits gesprochen
habe , indem Sie die
Multiple-Except-Blöcke und auch die
Finally-Anweisung also,
ohne weitere Zeit zu verschwenden, Lassen Sie uns also,
ohne weitere Zeit zu verschwenden,
über den Umgang mit Dateien sprechen
45. Dateien lesen und schreiben: Okay, lassen Sie uns
über den Umgang mit Dateien sprechen und so wie es jetzt ist, ist die einzige Datei, mit
der wir
gearbeitet haben die Hauptdatei mit Punkt Py. Es ist nur eine
Python-Datei und nichts weiter. Wir könnten jedoch
auch andere Dateitypen erstellen. Was wäre, wenn wir
ein Programm schreiben wollten, den Benutzer
auffordert,
seinen Benutzernamen oder sein Passwort einzugeben, und wir
diese Benutzerinformationen dann
in einer separaten Datei speichern würden. Wie können wir das machen?
Nun, das können wir auf verschiedene Arten tun. Das
wirst du hier lernen. Als Erstes
möchte ich Ihnen zeigen, wie Sie eine Datei erstellen. Es gibt eine Anweisung
namens with und dann eine Funktion namens offene Klammern. Dadurch wird erreicht, dass die Funktion open normalerweise zwei Parameter
akzeptiert. Sie müssen den Namen der Datei
angeben , mit
der Sie arbeiten
möchten, und dann ist der zweite
Parameter das, was Sie mit dieser Datei tun
möchten. Vielleicht möchten Sie in die Datei
lesen, die Datei
schreiben,
die Datei anhängen und so weiter Lassen Sie mich als Beispiel sagen, dass ich eine Datei mit dem
Namen example dot TXT öffnen möchte Es ist eine Textdatei, jetzt Komma, und jetzt muss ich die Operation
bereitstellen Möchte ich diese Datei öffnen? Möchte ich den Inhalt
der Datei lesen ?
Was möchte ich tun? Ich möchte in die Datei schreiben, also werde ich W verwenden, um die richtige Funktion,
die richtige Operation
darzustellen. Und jetzt, um das zu beenden, werde
ich sagen, eine Datei. Das hier, das ist
typischerweise die Syntax. Sie sagen mit open und geben dann in Klammern
den Namen der Datei an, und dann
bezieht sich der Operator auf W für Schreiben, R für Lesen usw.
und dann sagen Sie eine Datei. Jetzt
springe ich zur neuen Zeile und sage Dateipunkt w. Das ist die Funktion
, die wir verwenden werden , um die Zeichenfolge oder was auch immer wir in die Datei schreiben
wollen, zu schreiben. In Klammern sage
ich Hallo Welt. Das möchte ich
in die Datei schreiben. Schau dir das jetzt an. Ich werde
weitermachen. Beachten Sie jetzt, dass ich immer noch nur eine
Datei habe, den Hauptpunkt PY. Aber wenn ich das Programm ausführen sollte, siehst
du jetzt, dass dort Beispielpunkt steht. Obwohl ich
diese Datei noch nicht erstellt habe, Datei automatisch für Sie,
wenn
Sie in eine Datei
schreiben , wenn diese Datei noch nicht
existiert erstellt Python diese Datei automatisch für Sie,
wenn
Sie in eine Datei
schreiben, wenn diese Datei noch nicht
existiert hat. Wenn ich nun mein Beispiel für Text
öffnen würde, können
Sie sofort sehen,
dass dort Hello World steht. Was wäre, wenn ich jetzt hierher
komme und
eine weitere richtige Funktion schreibe und
sage, das ist großartig. Was glaubst du
wird passieren? Lass uns weitermachen und das Programm
ausführen. Wenn ich zu meinem
Beispiel zurückkehre, doc TXT, können Sie
jetzt sehen, dass dort Hello
World steht, das ist großartig. Jetzt hat es unserer Datei hinzugefügt, dass das großartig
ist. Lass mich zurückgehen und das schließen. Lassen Sie mich die
zweite Dateifunktion entfernen. Jetzt können wir sehen, dass Hello World tatsächlich
im Beispiel Punkt TXT ist. Aber was wäre, wenn
wir in unserer Konsole den
Inhalt von Beispiel Dot TXT anzeigen wollten. Was ich hier tun werde, ist
, mit
wieder öffnen und jetzt in Klammern noch
einmal den Namen
der Datei, Beispiel TXT, sagen wieder öffnen und jetzt in Klammern . Jetzt werden wir stattdessen
die R-Funktion verwenden. Das verwenden wir
zum Lesen der Datei. Ich sage als Datei, Doppelpunkt. Was wäre nun, wenn wir den
Inhalt der Datei
ausdrucken wollten ? Ich kann eine Variable
namens content equals zuweisen, und jetzt verwende ich
eine Funktionsdatei mit rotem Punkt Diese Funktion genau
hier, Datei Punkt Rot wir lesen den Inhalt
unserer Datei Sie wird den Inhalt
an den variablen Inhalt übergeben. Jetzt müssen wir nur noch Ausdrucke sagen
und dann in Klammern sagen, was drucken wir,
wir drucken Inhalt. Okay. Jetzt gehe ich los
und da ist es genau
hier in einer Konsole.
Sie können sehen, dass Hello
World angezeigt wird. Dies ist im Grunde
eine Einführung in das Lesen aus Dateien und das
Schreiben in Dateien. Eine Frage, die Sie
vielleicht haben, ist, okay, können wir
unsere Dateien tatsächlich erstellen , ohne
die with-Anweisung zu verwenden? Die Antwort lautet in der Tat ja, wir können das tun, ohne die
with-Anweisung zu verwenden. Wie würden wir das machen? Nun, lassen Sie mich zunächst
die Programmierung hier entfernen. Zunächst müssen
wir sagen, dass Datei gleich
ist
und dann öffnen Das wird die
eigentliche Funktion zum Öffnen selbst sein. Denken Sie daran, dass open zwei Parameter
akzeptiert. Jetzt müssen wir unseren Beispielpunkt TXT
öffnen. Was wir
jetzt tun wollen, wollen wir in die Datei schreiben. Ich werde W sagen. Lassen Sie mich einfach entfernen, lassen Sie mich
diese
Beispiel-Textdatei mit Punkt löschen . Lassen Sie mich sie löschen. Wir fangen ganz
von vorne an. Nun habe ich Python gesagt,
ich möchte, dass Sie diese
Datei mit dem Namen example dot TXT erstellen. Was wollen wir jetzt in die Datei
schreiben? Ich komme
jetzt rein und sage File Dot Write. Denn jetzt schreibe ich in die Datei und dann in Klammern, geben
wir die
Zeichenfolge Hello World an. Jetzt muss
ich die Datei schließen. Wenn Sie eine Datei öffnen oder eine Datei einlesen
oder wenn Sie sich in eine Datei befinden, muss die Datei
standardmäßig
geöffnet werden, damit dieser
Vorgang ausgeführt werden kann. Was Sie immer tun möchten, ist
sicherzustellen, dass die Datei geschlossen
wird, sobald der
Vorgang abgeschlossen ist. Wenn Sie dies nicht tun, kann dies dazu führen, dass Programme
Speicherplatz verlieren , und es kann sehr anfällig für
verschiedene Arten von Angriffen Um die
Datei also ganz einfach zu schließen, klicken Sie Dateipunkt W Punkt schließen.
Und das ist es. Wenn ich das Programm jetzt noch einmal starte, kannst
du zum Beispiel sagen, dass dort drüben
Text ist, ich kann die Datei öffnen und
es ist richtig Hallo Welt. Der Grund, warum wir die W-Anweisung bevorzugen oder die
meisten Entwickler bevorzugen , ist, dass ich
mit der With-Anweisung einfach all das rückgängig machen
möchte. Bei der W-Anweisung werden
Sie feststellen, dass wir
die Datei nicht manuell schließen mussten. Python ist intelligent
genug, um zu wissen, dass, wenn Sie
die W-Anweisung verwenden, sobald Sie die Operation ausgeführt haben wird, sobald Sie die Operation ausgeführt haben, die Sie an der Datei
ausführen möchten automatisch
geschlossen
wird, sobald Sie die Operation ausgeführt haben, die Sie an der Datei
ausführen möchten. Aus diesem Grund
verwenden Entwickler häufig die WITH-Anweisung. Sie müssen die Datei nicht mehr
schließen , da Python dies automatisch
tut. Außerdem ist es sauberer, Sie haben weniger Codezeilen. Aus diesem Grund
wird die Wi-Anweisung normalerweise in
Verbindung mit
der Open-Funktion verwendet . Danke fürs Zuschauen.
Wir sehen uns in der nächsten Klasse.
46. Eingaben in Textdateien lesen und schreiben: Lassen Sie uns nun darüber sprechen,
wie wir
aus Textdateien lesen und in Textdateien schreiben können . Nehmen wir zum Beispiel an,
wir wollten
ein Programm erstellen , das Eingaben des Benutzers akzeptiert
. Nehmen wir an, der Benutzer
wurde gebeten,
seinen Benutzernamen anzugeben , und
dann möchten wir diesen Benutzernamen
in einer separaten Datei
speichern. Wie können wir das machen? Nun? Lassen Sie uns zunächst eine Variable zuweisen , die die
Eingabe des Benutzers akzeptiert. Ich nenne meine
Variable username equals und jetzt die
Eingabefunktion Geben Sie jetzt Ihren Benutzernamen ein,
ziemlich einfach. Denken Sie jetzt an die vorherige
Lektion mit offener Syntax, ich sage mit und
jetzt öffnen und denken Sie natürlich
daran, dass open zwei Parameter
akzeptiert. Zuerst die Datei, mit der Sie arbeiten
möchten , und
dann der Operator Ich werde eine Datei
namens users dot txt erstellen. Und dann fügen wir
die Funktionsidee W zum Schreiben hinzu und dann sage
ich eine Datei. Was wollen wir jetzt tun? Wir wollen den
Benutzernamen in die Datei schreiben. Was ich jetzt machen werde, ist ganz einfach Datei Punkt, Punkt, Schreiben. Jetzt in Klammern, Benutzername. Dann können
wir zur Sicherheit etwas ausdrucken, können
wir zur Sicherheit etwas ausdrucken nachdem der Benutzer den Benutzernamen
eingegeben hat. Sagen wir drucken und ich werde sagen, dass der Benutzername zur Datei
hinzugefügt wurde, nur als Beispiel. Lass uns jetzt
weitermachen. Führen Sie das Programm aus. Geben Sie Ihren Benutzernamen ein,
ich werde Alex sagen, drücken Sie die Eingabetaste und jetzt heißt es, dass
der
Benutzername zur Datei hinzugefügt wurde und Sie können sehen, dass der
Benutzertext erstellt
wurde. Wenn ich es öffne, können
Sie sehen, dass es genau
dort ist, Alex. So weit, so gut Wenn ich jedoch zurückgehe und
das Programm erneut starte und diesmal
einen anderen Benutzernamen verwendet habe, habe ich Alice gesagt, ich drücke Enter. Wenn ich zu meinen Benutzern gehe
oder der Datei eine SMS schicke, können
Sie sofort sehen, dass
Alice Alex überschrieben hat Das liegt daran, dass Sie jedes Mal, wenn Sie Eingaben
von Ihren Benutzern
akzeptieren, diese
in einer Textdatei speichern Wenn Sie den richtigen Operator verwenden, überschreibt
er einfach alles,
was zuvor in der
Datei vorhanden Was ist, wenn wir das nicht wollen? Was ist, wenn wir einfach weiterhin Dateien oder Benutzernamen zu
unserer Datei
hinzufügen wollen Dateien oder Benutzernamen zu
unserer Datei
hinzufügen , ohne
die vorherigen zu überschreiben ?
Wie machen wir das? Lassen Sie mich zunächst meinen Verlauf
löschen Punkttext unserer Benutzer aus der Datei
entfernen. Tun wir so, als würden wir bei Null
anfangen? Anstatt die W-Funktion zu verwenden, verwende
ich A,
was für einen Stift steht Mit einem Stift können wir den Benutzer weiterhin
bitten,
einen neuen Benutzernamen Sobald er immer wieder neue Benutzernamen
hinzufügt, werden
diese
in unserer Datei gespeichert und die vorherigen Benutzernamen
werden nicht überschrieben Ich werde
das Programm erneut ausführen. Gib meinen Benutzernamen an, Alex. Jetzt können Sie sehen, dass wir die Punkt-TXT-Datei für
unsere Benutzer haben, Alex, genau wie wir es
mit dem richtigen Operator gemacht haben. Aber wenn ich jetzt zurückgehe, starte ich das Programm erneut und
dieses Mal sage ich Ale. Was jetzt passiert, ich gehe zu meinem Benutzerpunkt Textifle
und dann sagst du, wir haben Alex, wir haben Alice Sie können sehen, dass Alex
nicht überschrieben wurde. Übrigens, wenn Sie Ihre Benutzernamen
in separaten Zeilen
speichern möchten , müssen wir hier den Datei-Benutzernamen schreiben Wir können einfach sagen und
jetzt schau dir das an. Sie möchten einen Schrägstrich, tut
mir leid, einen umgekehrten
Schrägstrich und dann N sagen . Also das hier,
das ist es, was wir verwenden, um Zeilen
zu erstellen. Was
auch immer Sie hinzufügen, wird zu einer neuen Zeile hinzugefügt Also, was ich hier
tun werde, ist, uns die Benutzer
dotexIFLE wieder
entfernen zu lassen Benutzer
dotexIFLE wieder
entfernen Lassen Sie mich das Programm noch
einmal ausführen. Alex, drücke Enter. Lassen Sie uns das Programm erneut ausführen. Dieses Mal werde ich Alice
sagen. Drücken Sie die Eingabetaste. Wenn ich jetzt meine
Benutzer mit TextIfle öffne, können Sie sehen, dass Alex und
Alice in getrennten Zeilen sind Das genau hier ist der
Unterschied zwischen Ihrem richtigen Operator und
Ihrem Append-Operator Aber was wäre
, wenn wir die Daten, die Benutzernamen, aus
der Datei lesen wollten Benutzernamen, aus
der Datei Wie können wir das machen? Nun, ich werde
einfach hier runterkommen,
sagen, wieder öffnen, Klammern, und ich werde
Benutzer TXT sagen, was werden wir
dann tun? Codes R. Dann als Datei, Colm, jetzt
wollen wir eine Viererschleife erstellen Ich werde vier
Namen für Namen in der Datei sagen. für die Benutzernamen für
die Namen in Was wollen wir
für die Benutzernamen für
die Namen in der Datei tun? Wir wollen drucken. Ich sage Drucken und
dann können wir sagen, benutze einen Namen. Doppelpunkt und jetzt füge ich
Koma hinzu und jetzt den Namen Punktstreifen. Das ist eine neue Funktion
und sie wird
ihre eigenen leeren Klammern haben und da ist sie. Wenn ich nun das Programm starte, Alex, und los geht's, benutze sie so, als ob sie der Datei
hinzugefügt wurden. Aufgrund unserer
Funktion hier lesen
wir die Datei, sie wird Benutzername
Alex, Benutzername Alice
und dann
wieder Benutzername Alex stehen, weil der Benutzer TextIfle Alex hat So können wir
den Inhalt unserer Datei lesen. Übrigens, der
Punktstreifen hier, das ist eine Methode, die sehr oft verwendet wird, wenn
wir mit Dateien umgehen. Jetzt verwenden wir es, um
alle führenden oder trillenden
Leerzeichen in einer Zeichenfolge zu entfernen alle führenden oder trillenden
Leerzeichen in einer Zeichenfolge Dies kann Dinge
wie Leerzeichen,
Stiche oder sogar Zeilenumbruchzeichen beinhalten . Es ist einfach eine sehr effiziente
Methode, um sicherzustellen,
dass jeder Text, den wir
ausgeben oder ausdrucken, die
effizienteste Weise und
ohne unnötigen Speicherplatz erfolgt ohne unnötigen Aus diesem Grund wird Strip sehr oft verwendet, wenn wir
mit Textdateien arbeiten Jetzt ist es völlig optional. Sie müssen die
Strip-Methode tatsächlich nicht verwenden. Wenn ich die Strip-Methode entferne und meine
Klammer einfach normal schließe und das Programm starte, funktioniert
es genauso. Lassen Sie mich einen neuen Namen angeben. Lass uns Mandy sagen. Als Beispiel. Da hast du's. Wir haben den Benutzernamen
Alice, den Spitznamen Alex, Namen Mandy, da ist er,
er wird immer noch funktionieren Aber du kannst
jetzt sehen, dass wir das zusätzliche Leerzeichen
haben,
die Zeilen zwischen Sname
Ale, Nutzername Alex, Benutzername Mandy, weil wir hier die neue Zeilenzeichenfolge
verwenden, das neue Zeilenzeichen, die neue Zeilenzeichenfolge
verwenden,
um jede Eingabe in einer separaten Zeile hinzuzufügen Das ist so ziemlich
alles zum Lesen und Schreiben in Textdateien Danke fürs Zuschauen.
Wir sehen uns in der nächsten Klasse.
47. Lese- und Schreibmethoden: Nun, komm zurück.
Bevor wir weitermachen, möchte
ich Sie
darüber informieren, dass es
verschiedene Methoden zum Schreiben
und Lesen unserer Dateien gibt . Bisher haben wir uns
mit der Dateipunktmethode befasst, die natürlich
sehr einfach ist. Wenn ich das
Programm jetzt starte, wird
es
meinen Beispiel-THD erstellen. Ich öffne es und
da ist Hello World. Nun, File Dot Write ist nützlich und wird immer dann
verwendet, wenn wir einzelne oder sehr
einfache Zeichenketten in unsere Datei
schreiben. Hello World ist sehr
einfach, es ist sehr einfach. Aber was ist,
wenn wir mehrere Zeichenketten oder
große Textmengen schreiben wollen Das Schreiben von Dateien wird
nicht mehr verwendet. Wir müssen eine
andere Methode verwenden. Wenn ich zum Beispiel eine Liste mit Namen
hätte, lassen Sie mich meine Listennamen erstellen. Lassen Sie mich den Vornamen
Alex hinzufügen und lassen Sie mich das
neue Zeilenzeichen hinzufügen, Slash lässt mich Python
erlauben, die verbleibenden Namen hinzuzufügen Wir haben Alex, Bob, Caroline, Dave und Fred Wenn ich
diese Zeichenketten schreiben wollte, kann
ich die
Datei nicht mehr verwenden . Ich muss
eine andere Methode verwenden. Was ich
jetzt machen werde, ist die übliche Breite, öffnen und dann Klammern
und dann daran denken, dass wir
unsere Beispieldatei öffnen müssen: Punkt cXt dann W natürlich zwei,
schreiben, wir haben unseren Doppelpunkt
und dann sage ich,
tut mir leid, als Datei und
dann unseren Doppelpunkt Jetzt siehst du die rechten
Punktlinien der Datei und dann unsere Namen. Schreiben Sie die Datei mit Punkten und schreiben Sie Zeilen.
Dies wird immer dann
verwendet, Dies wird immer dann
verwendet wir
mehrere Zeichenketten
schreiben oder große
Textstücke in unsere Datei schreiben. Wenn ich jetzt ein Programm starte
und es öffne, dann gehst du, wir haben die Namen genau da. Bitte seien Sie sich dessen bewusst. Wenn
Sie in Zukunft fortgeschrittene
Programme
erstellen möchten, die das Schreiben großer
Textmengen oder Zeichenketten
in eine bestimmte Datei
erfordern , Schreiben großer
Textmengen oder Zeichenketten
in eine bestimmte Datei
erfordern, sollten
Sie statt
des
üblichen Punktschreibens in Dateien die
Zeilen beim Schreiben verwenden. Genau wie beim Schreiben haben
wir auch beim Lesen verschiedene
Methoden. Bisher haben wir das sehr
einfache Read the File Dot Read verwendet .
Lassen Sie mich hier einfach
etwas Code hineinkopieren. Lassen Sie mich das
hier ganz schnell weitergeben. Bisher haben wir es
mit Code wie diesem zu tun gehabt. Wir haben eine Datei und dann
sagen wir content e ruft file
dot read und da ist es. Wenn ich
jetzt ein Programm starte,
sehr einfach, haben wir Alex Bob, Caroline, Dave und Fred. Okay. Das Besondere an der Verwendung File Dot RED ist , dass
die gesamte Datei auf einmal gelesen wird, was großartig ist, wenn Sie mit
sehr kleinen Dateien arbeiten. Wenn Sie
es jedoch mit großen Dateien zu tun haben, funktioniert
es trotzdem.
Versteh mich nicht falsch. Ich werde immer noch arbeiten, es
wird immer noch alles lesen. Das Problem
ist jedoch, dass
es, weil es die
gesamte Datei auf einmal liest, viel Speicher beanspruchen muss,
um den gesamten Text
in dieser Datei auf einmal zu laden. Das ist das Problem.
Es ist nicht sehr effizient, wenn
Sie es mit
großen Textmengen in
einer Datei zu tun haben , z. B. mit großen Dateien. Sie möchten eine
andere Methode verwenden. Lass es mich dir jetzt zeigen. Ich werde
gleich hier
ein neues Programm erstellen und sagen, mit Öffnen. Nehmen wir nun an
, dass das Beispiel TXT in diesem Szenario
große Textmengen enthält, es ist eine sehr große Datei. Ich werde das Übliche
angeben, unseren Dateinamen und dann
R
hinzufügen und dann eine Datei sagen. Schauen Sie sich das jetzt an. Ich werde sagen, Zeile entspricht Dateipunkt lesender Zeile.
Beachten Sie den Unterschied Die Datei wird nicht mehr gelesen, es heißt jetzt Dateipunkt, Zeile gelesen, und dann kann ich meine
Schleife erstellen und While-Zeile sagen. Solange unsere Datei geöffnet ist, enthält
sie Text. Wir wollen die Zeile drucken. Wir können dann auch sagen, dass Zeile
gleich Dateipunkt, Lesezeile ist. Und hier ist es. Wenn ich
das Programm noch einmal ausführen würde, würden
Sie
sofort sehen, dass wir
fast die
gleichen Ausgaben haben . Sie werden den Unterschied nicht wirklich
bemerken, weil wir es trotzdem mit einer kleinen
Datei zu tun haben. Denken Sie jedoch
in Zukunft daran,
genau wie bei der richtigen Methode, dass Sie, wenn Sie es mit
großen Mengen von Dateien zu
tun haben , aus denen
Sie lesen müssen, Punktlesezeile verwenden sollten. Wenn es sich um eine sehr kleine Datei handelt, würde
die Datei Dot Read verwendet werden. Es ist ideal für diese Szenarien. Wir sind jedoch noch nicht fertig. Es gibt eine andere Methode, nämlich
das Lesen von Zeilen durch Punkte in der Datei. Dadurch werden
alle Zeilen auf einmal gelesen und
wir geben sie
als eine Liste von Zeichenketten zurück , wobei jedes Element eine
Zeile aus der Datei ist. Mit anderen Worten, es
kombiniert die Vorteile
sowohl Ihrer Lese- Ihrer Lesezeile, indem es
die gesamte Datei auf einmal liest, genau wie die Datei punktuell gelesen wird. Es wird
jedoch jede Zeile als
einzelnes Element in einer Liste speichern . Lassen Sie mich Ihnen ein Beispiel geben. Ich gehe wieder rein. Ich werde das ändern,
um Zeile zwei Zeilen zu ändern. Entspricht Zeilen beim Lesen von Dateipunkten. Anstatt die Wil-Schleife zu
verwenden, werde
ich sie jetzt auf die Vier-Schleife umstellen Ich sage
vier Zeilen in Zeilen,
Doppelpunkt, und jetzt können wir einfach in eckigen Klammern
drucken. Oder noch besser,
fügen wir die Strip-Methode ,
um
unnötige Abstände zu entfernen. Da ist es jetzt, wenn ich das Programm ausführen würde,
bitteschön. Alex, Bob, Caroline,
Dave und Fred. Auch hier
werden Sie
den Unterschied nicht bemerken, wenn Sie es mit einer sehr kleinen Datei zu tun haben. auch hier daran, dass Sie, wenn Sie es
mit großen Dateien zu tun
haben, entweder die Lesezeile
oder die gelesenen Zeilen verwenden möchten . Die letzte Methode, die ich Ihnen zeigen
möchte ,
ist die
For-Zeile in der Datei. Der Zweck hier ist,
die Datei Zeile für Zeile auf speichereffiziente Weise zu lesen . Ich gehe wieder rein. Lass mich die Linien entfernen. Wir haben mit offenem Beispiel eine
Punkt-TXT-, RS-Datei. Jetzt sage ich für Zeile
in, ich könnte sagen Datei, für Zeile in Datei, jetzt einfach Linie Punkt Strip drucken und nie das
Programm starten, los geht's. Dieser Ansatz ist
der Verwendung von „Zeile lesen“ sehr
ähnlich , aber er ist etwas
übersichtlicher und wird als beste Methode für
das Lesen
großer Dateien angesehen beste Methode für
das Lesen , da jeder Iteration
eine einzelne Zeile abgerufen wird, sodass der Speicherverbrauch gering
sein wird Zusammenfassend lässt sich sagen, dass, wenn Sie aus einer kleinen Datei lesen möchten
, das übliche Lesen unserer Datei Wenn Sie
aus einer großen Datei lesen, können
Sie
Ihre Zeile in der Datei verwenden Das ist besser als die
Punktlesezeile Ihrer Datei und auch besser als die Punktlesezeile Ihrer
Datei. Jetzt möchte ich auch nur
darauf hinweisen, dass wir zusätzlich zu den Modi für Ihren
Lesemodus, Ihren Anfügemodus zu den Modi für Ihren
Lesemodus, Ihren Anfügemodus und
Ihren Schreibmodus auch
zusätzliche Modi wie Ihren Lese- und Schreibmodus,
Ihren Schreib- und Lesemodus
sowie
Ihren
Anfüg- und Lesemodus haben zusätzliche Modi wie Ihren Lese- und Schreibmodus,
Ihren Schreib- und Lesemodus
sowie
Ihren Anfüg- und Lesemodus Als Beispiel kann
ich
anstelle von R hier R und dann Plus sagen Das alles wird als
Lese- und Schreibmodus bezeichnet. Dadurch wird eine Datei sowohl zum Lesen als auch
zum Schreiben geöffnet . Beachten Sie jedoch
, dass die Datei
existieren muss und der Inhalt gelesen und geändert
werden kann. Ihre Datei muss bereits existieren damit Sie diesen speziellen Modus
verwenden können. Wir haben auch den
Schreib- und Lesemodus
, der W und dann Plus
sein wird. Das hier öffnet
eine Datei zum Lesen und Schreiben, aber sie würde alle vorhandenen Inhalte
ersetzen. Schließlich
haben Sie natürlich Ihren Append Plus-Modus
, der der Append-Lesemodus ist Dadurch wird eine Datei
zum Lesen und Schreiben geöffnet und am
Ende werden neue Inhalte angehängt, ohne dass bestehende Inhalte geändert werden Sie sind herzlich eingeladen, mit diesen Modi
herumzuspielen und zu mit diesen Modi
herumzuspielen und sehen, wie sie Ihre
Datei verändern. Danke fürs Zuschauen. Ich sehe dich
in der nächsten Klasse.
48. Umgang mit Dateifehlern: Wenn Sie auf Ihrem Weg als Python-Programmierer oder
als
Programmierer im Allgemeinen weiter vorankommen , möchte ich, dass Sie
sich eine Angewohnheit aneignen, und diese Angewohnheit beinhaltet das Schreiben von Programmen
oder das Entwerfen von Programmen, die in der Lage
sind, potenzielle
Fehler auf elegante Weise zu behandeln Siehst du, die meisten
Programmierer da draußen entwickeln all
diese großartigen Programme, entwickeln all
diese großartigen Programme die das und das können Wenn jedoch etwas schief
geht, hat der Benutzer des
Programms vielleicht
eine Eingabe hinzugefügt oder vielleicht hat er Zahlen anstelle von Buchstaben
oder so etwas
verwendet Oft
stürzen diese Programme ab , weil der Programmierer das nicht
so entworfen
hat, dass das Programm weiß
, wie es damit umgehen muss,
wenn solche
potenziellen Fehler auftreten weiß
, wie es damit umgehen Wir haben kurz über die Behandlung von
Fehlern
gesprochen, als wir über Schleifen gesprochen haben, aber jetzt werden wir etwas genauer darauf
eingehen Auf meinem Bildschirm habe ich gerade ein sehr einfaches Programm
, das die Datei liest, den Beispielpunkt TXT. Beachten Sie jedoch,
dass dieses Programm, der kurze Codeblock,
darauf angewiesen ist, dass diese Datei, der darauf angewiesen ist, dass diese Datei, Beispielpunkt TXT,
tatsächlich existiert. Was ist, wenn ich vielleicht
einen Fehler gemacht habe oder die Verwendung
des Programms, die Verwendung des
Programms, einen Fehler gemacht hat. Statt Beispiel Punkt TXT haben
wir Beispiel Punkt TXT. Nun, diese Datei existiert nicht. Sie ist nicht in meinem Verzeichnis. Wenn ich das Programm starte, können Sie
jetzt sehen, dass
wir einen Fehler haben. Python sagt uns, hey
, tut mir leid, keine solche Datei oder kein solches Verzeichnis, Datei nicht gefunden Fehler.
Das sieht nicht gut aus. Wir wollen unsere
Programme so schreiben , dass, falls ein solcher
Fehler auftritt, er sehr elegant und
professionell behandelt wird sehr elegant und
professionell Was wir jetzt tun wollen, ist ich wieder hier reingehe und den Beispielpunkt TXT
hinzufüge Wir werden den Block Try except verwenden
. Wir haben darüber gesprochen,
als wir über Loops gesprochen haben, aber lassen Sie uns noch einmal darüber sprechen. Was Sie tun möchten, ist
in dem Codeblock, in
dem der Fehler auftreten kann,
wie hier drüben, eine Sache, die Sie tun
möchten, ist, dass Sie
damit beginnen, versuchen zu sagen. Versuchen Sie es jetzt und stellen
Sie sicher, dass es
richtig eingerückt ist, da der Code
nach dem Versuch darunter stehen sollte Jetzt sagen wir: Okay, versuche diese Datei mit dem Beispielpunkt THD zu öffnen Wenn es existiert und all das, können
Sie den
Inhalt der Datei ausdrucken. Was ist jedoch, wenn die
Datei nicht existiert? Jetzt können wir außer sagen
und dann unter außer, wir können drucken sagen, und dann können wir etwas
wie Datei nicht gefunden sagen. Fügen wir genau dort eine Spalte
für außer hinzu. Da ist sie. Im Grunde sagen wir: Hey, versuche diesen
Codeblock auszuführen, wenn die Datei aus dem einen oder anderen
Grund nicht gefunden wird und
drucken Sie einfach
die Datei nicht gefunden aus Wenn ich das Programm jetzt starte, funktioniert
alles einwandfrei,
weil die Datei existiert Wenn ich jedoch den Namen der Datei ändere und
das Programm starte, können
Sie sehr
professionell sehen, dass es einfach heißt, dass die Datei nicht gefunden wurde. Das liegt daran, dass wir
den Block try except verwenden. Das funktioniert zwar
gut, aber um tiefer zu gehen, möchte
ich, dass Sie anfangen, die
sogenannten allgemeinen Ausnahmen für
Dateien zu
verwenden . Es gibt eine ganze Reihe von ihnen. Python hat spezifische Ausnahmen für viele der häufigsten
dateibezogenen Fehler. Der erste und häufigste Fehler
ist
der Fehler „Datei nicht gefunden“, genau wie wir es hier getan haben. Anstatt
einfach nur versuchen zu sagen, außer
wo Sie die Ausnahme haben, können
Sie jetzt den Fehler „
Datei nicht gefunden“ eingeben. Genau hier weisen wir
Python an, speziell zu prüfen, ob der
Fehler dadurch
verursacht wird , dass die
Datei nicht gefunden wurde. Wenn ich mein Programm jetzt
noch einmal starte,
können Sie sehen, dass es immer noch einwandfrei
funktioniert. Dies ist jedoch eine viel
sauberere und effizientere
Art , den Fehler zu
behandeln, da
wir hier speziell
prüfen,
ob der Fehler aufgetreten ist, weil
die Datei nicht existiert. Der Try-Except-Block
selbst behandelt alle Fehler. Egal, ob die Datei nicht
gefunden wurde, ob es um
einen Rechtspfeil oder vielleicht einen Verzeichnispfeil handelt oder ob
es sich um einen offenen Systemfehler
handelt, er wird alles behandeln. Also ja, es wird ganz gut
funktionieren. Ich
kümmere mich um den Pfeil. Aber auch hier wird es sauberer
sein, die Art des Fehlers zu spezifizieren, den
Sie tatsächlich erwarten. Wir haben also den Fehler „Datei
nicht gefunden“. Wir haben auch den
Berechtigungsfehler. Vielleicht
kann zum Beispiel auf die fragliche
Datei nur
von einem Administrator zugegriffen werden. Jetzt versucht ein normaler Benutzer
darauf zuzugreifen. Offensichtlich werden
Sie den Fehler haben, der sagt:
Hey, tut mir leid, Sie
haben keine Erlaubnis. In diesem Szenario sagen wir einfach,
wissen Sie, es tut uns leid, Sie haben keine Erlaubnis
, diese Datei anzusehen, und das ist alles, was wir tun
müssten. Wenn Sie also
einen Berechtigungsfehler erwarten, sollten
Sie den Codeblock mit dem Pfeil „Zulassen
akzeptieren“ verwenden. Wir haben auch einen Verzeichnispfeil. Vielleicht hat der Benutzer
versucht,
ein Verzeichnis zu öffnen ,
das nicht wieder existiert. Komm einfach hier rein
und dann tippst du ist ein
Verzeichnisfehler“ ein und da ist er. Und jetzt können wir von hier aus die genaue Drucknachricht
angeben. In diesem Fall wird
es also so etwas wie Entschuldigung sein. Sie sind nicht
berechtigt, auf
dieses Verzeichnis oder diese SOI zuzugreifen dieses Verzeichnis oder diese SOI Dieses Verzeichnis
existiert nicht, so etwas in der Art. Dann wird der letzte der Betriebssystemfehler
sein. Dies ist normalerweise die
allgemeine Ausnahme für andere dateibezogene Fehler. Vielleicht ist die Festplatte voll, vielleicht ist es ein
Eingabe-/Ausgabeproblem, so etwas in der Art. Alles, was Sie
jetzt tun müssen, ist einfach außer zu sagen und dann O Error. Dann können Sie einfach
etwas eingeben wie, Entschuldigung,
ein Fehler ist aufgetreten
oder ein Fehler im offenen System ist aufgetreten, so
etwas Ähnliches. Genau so würde
das funktionieren. Auch hier möchten Sie
diesen professionellen
Ansatz verfolgen, um diesen professionellen
Ansatz ständig sicherzustellen,
dass Ihre
Codeblöcke , wann immer Möglichkeit
besteht, dass ein Fehler auftritt, entworfen wurden, dass
sie in so entworfen wurden, dass
sie in der Lage sind,
alle potenziellen Fehler zu behandeln ,
indem sie
den Block try except und
dann für die
Accept-Anweisung selbst verwenden den Block try except und dann für die
Accept-Anweisung selbst Sie können den genauen Fehler angeben , von dem Sie erwarten, dass er auftreten könnte. Danke fürs Zuschauen. Wir
sehen uns in der nächsten Klasse.
49. Mehrere außer Blöcken: Willkommen zurück. Im vorherigen Video haben
wir über
den Umgang mit
Pfeilen und auch über die
verschiedenen Arten von
spezifischen Fehlern gesprochen Pfeilen und auch über die
verschiedenen Arten von , mit
denen wir arbeiten sollten, mit Ausnahme von
Dateien . Was wäre jedoch, wenn wir nach mehreren
Arten von Fehlern
suchen wollten ? Vielleicht ist
es nicht nur möglich, dass die
Datei nicht gefunden wurde, sondern auch, dass die Datei dann
gefunden wurde , vielleicht sind
die Berechtigungen für die Datei nicht korrekt oder das Verzeichnis war nicht
korrekt, so etwas in der Art. Wir wollen ein Programm erstellen, einen Codeblock, der mehrere Arten von
Fehlern
behandeln und
für jeden Fehler auch
unterschiedliche Fehlermeldungen ausdrucken kann Fehlern
behandeln und
für jeden Fehler auch
unterschiedliche Fehlermeldungen ausdrucken . So wie es jetzt ist, habe ich
einen Fehler, nämlich den Fehler „Datei nicht gefunden“, und es wird
die Datei nicht gefunden gedruckt. Aber was wäre, wenn ich
auch die Erlaubnis
Al mit einbeziehen wollte auch die Erlaubnis
Al mit einbeziehen Es ist sehr, sehr einfach. Alles, was ich
tun muss, ist einfach einen weiteren Block zu
öffnen
und dann einfach akzeptieren und dann erlauben, Al,
meinen Doppelpunkt hinzufügen und jetzt kann ich
in Klammern drucken und dann sagen, Entschuldigung, Sie
haben nicht die Erlaubnis. Um auf diese Datei zuzugreifen.
Das ist alles was ich tun muss. Fügen wir noch einen Pfeil hinzu, damit ich außer sagen kann, und dann kann ich OS-Pfeil sagen. Vielleicht gab es ein Problem
mit dem Öffnungssystem, und dann kann ich meinen
Doppelpunkt eingeben und dann kann ich Drucken
sagen und dann in Klammern erscheint ein OS-Pfeil. Was wäre, wenn ich einen weiteren
Codeblock
hinzufügen wollte, der mit
allen anderen möglichen
Pfeiltypen umgehen kann? Alles, was ich tun muss
, ist erneut zu sagen, außer jetzt, den Schlüssel, ich werde
Ausnahme als E sagen. Im Grunde behandelt diese Zeile jede andere Art von Fehler, die möglicherweise auftreten
könnten. Dann sage ich einfach, gib eine allgemeine Nachricht
aus
und sage Drucken, und dann sage ich einfach, dass ein
unerwarteter Pfeil aufgetreten ist. Jetzt wollen wir hier das E
betonen. Dieses E wird den Pfeil
darstellen. Was ich
jetzt tun werde, ist wie gewohnt die F-String
zu verwenden. Und dann geschweifte Klammern, ich werde genau dort
das E hinzufügen Die letzte Zeile hier
behandelt alle anderen Arten von Fehlern und das System würde
sagen, dass ein unerwarteter Fehler
aufgetreten ist. Dann
geben Sie an, welche Art
von Fehler aufgrund
der E-Variablen hier, die wir hier
erstellt haben, und das war's Ich werde mein Programm ausführen, und Sie können sehen,
dass es natürlich einwandfrei funktionieren wird. Auf diese Weise können Sie
mehrere Blöcke mit Ausnahme von Blöcken erstellen,
die mehrere
verschiedene Arten
potenzieller Fehler behandeln , die auftreten können. Zum Anschauen. Wir
sehen uns in der nächsten Klasse.
50. Die Schlussbemerkung: Sie beim Öffnen von
Dateien mit Python
daran, dass wir
nicht immer die with-Anweisung verwenden
müssen . Der Grund, warum wir die meiste Zeit
with verwenden ist, dass mit der Anweisung die Datei
automatisch
geschlossen wird, sobald auf sie zugegriffen
wurde. In diesem Szenario, in
dem wir einfach mit
der Öffnen-Funktion arbeiten , um die Datei zu
öffnen, müssen
wir die Datei manuell schließen indem wir „Datei,
die schließt“ sagen
. Andernfalls
bleibt die Datei geöffnet,
was zu potenziellen Fehlern führen kann. Die Frage ist momentan,
wie würden wir mit
Fehlern in diesem
speziellen Szenario umgehen ? Nun, wir müssen den
Finaly-Block verwenden. Nun, ganz oben, fange
ich
mit Versuch wie immer an, und dann denke ich daran, dass
natürlich alles unter Versuch fallen
muss. Jetzt in Zeile fünf, hier fügen
wir das Akzeptieren hinzu. Lassen Sie uns nun nach dem Fehler „Datei
nicht gefunden“ suchen. Dickdarm. Wenn die Datei nicht gefunden wurde, können
wir die
Datei einfach drucken, die nicht gefunden wurde. Was ist jedoch, wenn die
Datei tatsächlich gefunden wurde, liegt
kein Fehler vor. Was wir jetzt
tun werden, ist , endlich zu sagen. Jetzt, wenn Datei, warte mal. Jetzt sagen wir endlich, wenn es überhaupt keine
Fehlermeldung gab, wenn die Datei tatsächlich
gefunden wurde, was machen wir dann? Wir können
den Inhalt einfach ausdrucken und jetzt
können wir die Datei auch schließen. Tatsächlich ist es
nicht notwendig, aber
aus Sicherheitsgründen nicht notwendig, aber können
wir die Datei einfach
geschlossen ausdrucken, nur als Beispiel. Wenn ich
das Programm jetzt starte, können
Sie natürlich sehen, dass es
einwandfrei funktioniert und
es wird sogar angezeigt, dass die Datei geschlossen ist. Dieses Programm sieht
momentan oberflächlich betrachtet gut aus. Es gab keine Fehler,
die Datei wurde gefunden, sie
wurde ausgedruckt und natürlich wurde
die Datei auch geschlossen. Wir sind jedoch noch nicht fertig. Denn wenn ich den Namen der Datei bewusst
ändern
würde, den Namen der Datei bewusst
ändern
würde sodass wir
die Fehlermeldung „Datei nicht gefunden“ erhalten
, wenn ich mein Programm starte,
oh, Sie können jetzt sehen, wir immer noch die
übliche unangenehme
Art haben , Fehler anzuzeigen oder zu
behandeln. Es ist so, als ob der
Codeblock „Try except “ überhaupt
nicht funktioniert hat. Was ist hier los? Eine weitere Sache, die Sie beachten
müssen, ist, dass Sie
, wenn Sie mit der
Width-Anweisung arbeiten, nicht mit der
Width-Anweisung arbeiten, Ihre Datei nicht nur
manuell schließen, sondern die Datei auch ganz am
Anfang
initialisieren müssen die Datei auch ganz am
Anfang
initialisieren Denn im Moment
weiß
Python nicht einmal wirklich, was die Datei selbst ist, was ist der
Standardwert von file? Eine Datei
entspricht nicht einem Beispiel, das annimmt, wenn
die Datei nicht gefunden Woher sollte Python das wissen, da ist tatsächlich
ein Pfeil drin, was der Standardwert sein wird , den die Dateivariable haben
muss? Das ist der Punkt, an dem wir ganz oben stehen
müssen,
sagen, dass Datei gleich keiner Ganz am Anfang initialisieren
wir
die Dateivariable weisen ihr den
Standardwert none zu Dies ist eine gängige Praxis
, wenn es um Ressourcen geht, die
möglicherweise erfolgreich zugewiesen wurden oder auch nicht Die Verwendung von non hier würde
einen sehr sicheren
Standardwert ermöglichen , der versehentliche
Operationen mit
einer nicht initialisierten Variablen verhindert versehentliche
Operationen mit
einer nicht initialisierten Dies ist eine weitere Sache,
die Sie beachten müssen. Wenn ich
das Programm jetzt noch
einmal starte, funktioniert es gut. Wenn ich den Namen der Datei
bewusst ändere , um
die Fehlermeldung zu erhalten, können
Sie sehen, dass der Fehler jetzt ordnungsgemäß
behandelt wurde. Genau aus diesem Grund verwenden
wir, wenn es um den Umgang mit Dateien
geht, normalerweise die with-Anweisung, weil
Sie mit
der with-Anweisung
Ihre Variablen oder
Dateien nicht initialisieren müssen und Sie sie
auch nicht manuell schließen müssen Die W-Anweisung ist so mächtig, sie
unsere Dateien und Variablen
automatisch initialisiert und die
Datei auch automatisch schließt sobald auf sie zugegriffen wurde Dennoch sollten Sie sich dessen bewusst
sein, wenn Sie ein Szenario oder
einen anderen Programmiercode finden Szenario oder
einen anderen Programmiercode in dem die
Width-Anweisung nicht verwendet Wie würden Sie mit Fehlern umgehen? Wie würden Sie
die Datei manuell schließen? Natürlich, wie würden
Sie
die Datei auch manuell initialisieren ?
Danke fürs Zuschauen Wir sehen uns in
der nächsten Klasse.
51. Bibliotheken und Module – Einführung: Willkommen im Bereich Bibliotheken
und Module. Und natürlich
wirst du hier lernen, wie
man mit ihnen arbeitet. Was genau sind
Bibliotheken und Module? Stellen Sie sich
im Grunde genommen Programme vor, die bereits
von anderen Python-Entwicklern geschrieben wurden. Denken Sie daran, dass die
Python-Community groß ist. Sie haben Entwickler, die ihre eigenen Arten von Code
geschrieben haben . Vielleicht gibt es da draußen
einen Programmierer , der bereits
seinen eigenen Code
zur Verschlüsselung eines Passworts geschrieben seinen eigenen Code
zur Verschlüsselung eines Passworts Anstatt also ein solches
Programm von Grund auf neu schreiben zu
müssen, können
Sie dieses
Programm einfach in Ihr eigenes Programm importieren Und dann modifizieren, um etwas anderes zu
tun. Das ist also
der ganze Sinn der Arbeit mit
Bibliotheken und Modulen. In diesem Abschnitt lernen
Sie also die verschiedenen Arten von Bibliotheken
und Modulen kennen, die Unterschiede zwischen
Bibliotheken und Modulen. Und natürlich werden wir
auch
verschiedene Herausforderungen und
Programmierübungen haben . Also, ohne noch mehr
Zeit zu verschwenden, lassen Sie uns gleich loslegen.
52. Einführung in Bibliotheken und Module: Willkommen in einem brandneuen Bereich, und hier
werden wir
über Bibliotheken und Module sprechen . Also, was genau sind diese? Lass uns ein Szenario malen, richtig? Was wäre, wenn wir
ein Programm schreiben wollten , das
Klartext hasht, richtig? Nehmen wir zum Beispiel an,
wir wollten Passwörter in einer Datei
speichern. Natürlich würden wir sie hashen
wollen. Wir wollen
Passwörter nicht im Klartext speichern. Wie würden wir also
ein Programm schreiben , das diese
Passwörter hasht? Es gibt zwei Möglichkeiten, okay? Wir könnten uns entweder dafür entscheiden,
das Programm von Grund auf neu zu schreiben, was viel
Zeit in Anspruch nehmen könnte, oder
wir können ganz einfach ein sogenanntes Modul verwenden, das bereits über
den Code verfügt , den wir
zum Hashing unseres Textes benötigen. Ein Modul ist also typischerweise eine Python-Datei, die
bereits Code enthält. Es können Funktionen,
Variablen, Klassen,
Anweisungen, was auch immer, sein , die einem bestimmten
Zweck dienen, während eine Bibliothek, wie Sie sich jetzt vielleicht vorgestellt haben, oft eine gebündelte Gruppe
dieser Module
ist, oft eine gebündelte Gruppe
dieser Module
ist die
um ein umfassenderes Ziel herum organisiert sind. Sie können sich Module also als
sehr spezifische Funktionen vorstellen , die einem ganz bestimmten Zweck
dienen, während eine Bibliothek eine
Sammlung solcher Module wäre. Als Beispiel haben wir
den Datetime-Punkt Pi. Dies ist ein Modul
, das Funktionen speziell für das Gehen
mit Datum und Uhrzeit Wir haben auch eine Bibliothek namens
HH Lib, die HH Library. Das wäre
die
Bibliothek, die wir
verwenden müssten, um
unseren Klartext zu hashen Nun, was haben wir
in der Hash-Bibliothek? Wir haben verschiedene
Arten von Algorithmen. Wir haben den MD Five
, der einen 128-Bit-Hash erzeugt. Wir haben den
Shall One, einen 160-Bit-Hash generiert, Shaw 256, der die
25, sechs generiert, und natürlich die Shell fünf und
zwei, die einen 512-Bit-Hash
erzeugen. Es gibt auch andere
Arten von Funktionen in dieser Bibliothek, wie
den Hash-Schaltpunkt U
, der zwei Parameter akzeptiert, nämlich
Namensdaten, die wir
dann verwenden können, um
einen Hash mit einem bestimmten
Algorithmusnamen zu erstellen . In Zukunft
können Bibliotheken also entweder eingebaut werden. Wir nennen sie Standardbibliotheken. Dies wird standardmäßig mit
Ihrer Python-Installation ,
oder wir können auch externe Bibliotheken verwenden. Wir bezeichnen sie als Drittanbieter. Diese Bibliotheken sind nicht in
Ihrer Python-Installation
enthalten, sodass Sie
sie selbst manuell installieren müssen Sie wurden von
der Python-Community entwickelt. Also noch einmal: Module haben einen sehr spezifischen
Code, der eine
ganz bestimmte Funktion erfüllt ,
während Bibliotheken eine Sammlung
dieser Module
sein werden . Ich möchte, dass Sie sich darüber im
Klaren sind, dass
Sie in
der Python-Community möglicherweise auch von einem anderen
Begriff namens Pakete hören. Pakete befinden
sich irgendwo zwischen Modulen und Bibliotheken, da sie auch eine
Sammlung von Modulen sind,
aber die Module neigen dazu, ihrem Zweck nach sehr
eng miteinander verwandt zu sein . Sie sind nicht ganz so
breit gefächert wie Bibliotheken. Sie können also zum Beispiel Ihr E-Mail-Paket
haben
und im E-Mail-Paket und im E-Mail-Paket werden
Sie Module
wie E-Mail Dot Message,
Ihre E-Mail Dot Mime,
Ihre E-Mail Dot Utils
und vieles mehr haben Ihre E-Mail Dot Mime,
Ihre E-Mail Dot Utils und vieles mehr Ein weiterer Vorteil von
Paketen besteht darin, dass wir
diese Module
mithilfe von Ordnern und Unterordnern in einer
hierarchischen Struktur organisieren
können diese Module
mithilfe von Ordnern und Unterordnern in einer
hierarchischen Struktur mithilfe von Ordnern und Unterordnern Daher enthält jedes Paket normalerweise
die Datei int PY. Was Python sagt, hey, dieses spezielle Verzeichnis,
es ist keine Bibliothek. Es ist eigentlich ein Paket. Auf diese Weise können wir Python helfen zwischen dem
Paket und der Bibliothek zu
unterscheiden. Das Paket wird eine Datei die
speziell als INI-PY-Datei bezeichnet wird. Das war's also für Bibliotheken,
Module und Pakete. German Vinexway, wir werden nicht
anfangen, mit ihnen zu arbeiten.
53. Erstellen eines benutzerdefinierten Moduls: Fangen Sie an, mit
den Standardmodulen
und Bibliotheken in Python zu arbeiten .
Ich möchte, dass wir
unser eigenes benutzerdefiniertes Modul erstellen unser eigenes benutzerdefiniertes Modul und dieses Modul dann in
einem unserer Programme verwenden, okay? Das ist also unsere Hauptprogrammdatei hier, der Hauptpunkt Pi. Ich werde
eine neue Datei erstellen, okay,
und das eine neue Datei erstellen, okay, dann
Mathe on the score ad nennen. Punkt PY. Okay? Dies wird die Datei
sein, die
unser eigenes benutzerdefiniertes Modul enthalten wird. Das Modul, das wir entwerfen werden
, wird sehr einfach sein Es nimmt zwei Zahlen
und addiert sie dann. Okay? Denken Sie also daran, wie wir unsere benutzerdefinierten Funktionen
erstellt haben. Wir haben die Fine-Funktion verwendet. Und jetzt füge ich
den Namen der Funktion hinzu,
die zu den Quadratzahlen addiert wird, und dann zwei Variablen. Es werden zwei
Zahlen genommen und sie addiert. Wir können beliebige Buchstaben verwenden
, um sie darzustellen. Ich nehme F und V,
nur als Beispiel, und
füge dann am Ende meine Spalte hinzu. Was soll
die Funktion nun tun? Ich möchte F und V addieren. Also werde
ich sagen,
gib den Wert von F
plus V zurück und da ist er. Wir haben jetzt ein benutzerdefiniertes Modul
, das zwei Variablen,
F und V, hinzufügt , und dann
drehen wir das Ergebnis. Okay. Wenn ich jetzt zu
meiner Haupt-PI-Datei zurückkehren und
dieses Modul verwenden möchte, das wir in der
Methode ad Pi-Datei
entworfen haben , muss ich
jetzt die Funktion Import
verwenden. Dies ist die Funktion, die
wir jetzt verwenden müssen, um unser benutzerdefiniertes Modul zu importieren. Es wird also
der Name der Datei sein,
was auf der Partituranzeige mathematisch steht. Okay? Und was
müssen wir jetzt tun? Wir müssen zwei Zahlen angeben. Okay? Also kann ich sagen, dass
Nummer eins gleich fünf und dann Nummer
zwei gleich sieben ist Okay? Nur als Beispiel. Ordnung. Jetzt
wollen wir
die Ergebnisse der Addition von
Nummer eins und Nummer zwei ausdrucken die Ergebnisse der Addition von
Nummer eins und Nummer zwei Also, oh, übrigens,
vergib mir. Zwischen
Nummer eins und Nummer zwei sollte
kein Leerzeichen sein. Vergib mir. Da
es eine Variable ist, okay? Also keine Leerzeichen in den
Variablennamen, verzeihen Sie mir. Also wollen wir dieses Ergebnis
ausdrucken. Also kann ich
eine Variable namens result so zuweisen , dass sie welchem entspricht? Ich werde jetzt das benutzerdefinierte Modul aufrufen,
bei
dem es um Mathe und Okay ging. Und jetzt, Punkt, was
war die Funktion? Die Funktion, die wir in
unserer Methode Ad-Datei hatten , ist das Hinzufügen von
Unterstrichzahlen. Okay? Also, jetzt gehe ich zurück zu meiner Hauptdatei und
sage jetzt , füge Unterstriche hinzu. Und jetzt in Klammern,
was fügen wir hinzu? Wir fügen Nummer eins und
Nummer zwei hinzu. Und da ist es. Alles, was ich jetzt tun muss ,
ist die Ergebnisse einfach
auszudrucken. Ich sage Ausdrucke und
dann in Klammern, lassen Sie uns einen Code hinzufügen, und dann kann
ich sagen, dass die Summe ist, und ich kann
Komma hinzufügen und dann einfach
Ergebnis sagen, und da ist es Und jetzt, wenn ich das Programm starte, da
steht, dass die Summe 12 ist Um Ihnen eine kurze
Zusammenfassung zu geben,
haben wir zunächst eine separate Datei erstellt und stellen
übrigens fest, dass sich die Dateien im selben Ordner befinden Okay, das ist sehr,
sehr wichtig. Also haben wir eine Datei
namens Mth Underscore ad erstellt, und das sollte unser benutzerdefiniertes
Modul sein Wir haben den Namen
der Funktion als
Unterstrichzahlen hinzufügen definiert Unterstrichzahlen hinzufügen Sie nimmt zwei beliebige
Variablen auf, F und V, und dann geben wir den Wert der
Addition dieser beiden Variablen zurück Addition dieser beiden Variablen jetzt zu
unserer Hauptdatei zurückzukehren, mussten wir als Erstes
das benutzerdefinierte Modul importieren, bei
dem es sich
um einen mathematischen
Unterstrich handelt. Wir müssen jetzt die
Werte unserer beiden Variablen angeben. Ich möchte nicht, dass
du verwirrt wirst. Ich glaube nicht, oh, denn
in unserem benutzerdefinierten Modul haben wir F und V verwendet. Deshalb sollte F
in der Hauptdatei gleich fünf sein und dann sollte V gleich sieben
sein. Warum verwenden wir
Nummer eins, Nummer zwei? Denken Sie immer daran
, dass diese Variablen, diese Parameter hier, im Grunde nichts
bedeuten. Es ist nur eine Möglichkeit, der
Funktion von AtlPyn mitzuteilen, dass, Hey ,
innerhalb dieser Funktion,
wir zwei Variablen akzeptieren und sie dann zusammenfügen werden Wir hätten hier
alle Buchstaben gebrauchen können. Wir hätten B, C, Z verwenden können. Wir hätten X nehmen können. Wir
hätten alles verwenden können. Wir
hätten Nummer eins nehmen können. Nummer zwei, wir haben irgendeinen Namen benutzt,
irgendwas, um
diese Parameter darzustellen, okay? Also glaube nicht, dass, oh, welche Parameter auch immer
du hier spezifizierst die gleichen
sein
müssen, nein, okay? Alles, was Python wissen sollte, ist, dass ,
okay, diese Funktion zwei Variablen aufnehmen wird
. Sie nimmt
zwei Zahlen auf und addiert sie dann, okay? Also, wir sagten,
Nummer eins ist gleich fünf, Nummer zwei ist gleich sieben Und jetzt ist das der knifflige
Teil, okay? Zeile sechs. Wir wollen die Ergebnisse
ausdrucken, also habe ich ein V namens result erstellt, das jetzt zuerst dem Namen
des Moduls
entsprechen würde, nämlich math dot add und dann
dot, weil wir die Funktion, die wir erstellt haben
,
anhängen wollen Funktion, die wir erstellt haben
,
anhängen Die Funktion hier ist
Addieren von unterstrichenen Zahlen. Also haben wir es an die
Mathematik in der Ergebnisanzeige angehängt, und jetzt in Klammern,
einfach Nummer eins, Nummer zwei, und dann ist
das Letzte, einfach die Ergebnisse
auszudrucken Also haben wir gesagt, die Summe ist und dann das Ergebnis und so sind wir
rausgekommen. Also herzlichen Glückwunsch. Sie haben Ihr
allererstes benutzerdefiniertes Modul geschrieben konnten es auch erfolgreich und
konnten es auch erfolgreich
importieren und verwenden
. Danke, dass du dir das
Video angesehen hast. Wir sehen uns in der nächsten Klasse.
54. Wie man mit einem Standardmodul woket: Willkommen zurück. In der
vorherigen Lektion haben wir also erfolgreich
unser eigenes benutzerdefiniertes Modul erstellt, und wir konnten es
importieren und in unserer Hauptdatei verwenden. Aber jetzt möchte ich
Ihnen zeigen, wie wir
einige der Standardbibliotheken
und Module importieren können einige der Standardbibliotheken , die mit Python
geliefert werden. Lassen Sie mich also weitermachen und den gesamten Code
entfernen, und ich werde
das Schlüsselwort Import,
die Hauptfunktion, belassen ,
und der Name
des Moduls, das wir
importieren werden, heißt random. Dies ist ein eingebautes Modul
in Python, mit dem wir Zufallszahlen
aus einer Sequenz erstellen oder
generieren
können Zufallszahlen
aus einer Sequenz erstellen oder
generieren Lassen Sie mich Ihnen sogar
einen Teil der
Dokumentation hier zeigen einen Teil der
Dokumentation hier Sie können sehen, dass Python ein
eingebautes Modul namens random hat. Und die Sache mit Random
ist, dass es so mächtig ist, dass
es so viele Methoden hat. Schauen Sie sich die
Auswahlmethode an. Dadurch wird
ein zufälliges Element
aus der angegebenen Sequenz zurückgegeben . Ich werde
diese spezielle Methode verwenden , um einen zufälligen Buchstaben zu
generieren. Also sieh dir das an, okay? Ich werde zuerst
eine Variable erstellen, die Buchstaben heißt
und dann gleich zwei ist, und ich werde
alle Buchstaben hier eingeben, A bis Z, okay? Also wollen wir, dass unser
Programm
einen zufälligen Buchstaben aus dieser Liste generiert ,
okay, aus dieser Sequenz Also, wie werden wir das machen? Also, ich werde eine neue Variable
namens Random Dos
namens Letter
erstellen , okay? Und jetzt
sage ich Random Remember, die Reihenfolge, zuerst müssen wir
den Namen des Moduls
oder der Bibliothek hinzufügen den Namen des Moduls
oder der , also ist es hier
rein zufällig. Und jetzt wird
die Methode, die Wahl heißt, Punkt und jetzt Wahl sein. Und jetzt in Klammern, Buchstaben. Das ist alles was ich tun muss. Und jetzt, was machen wir,
wir drucken aus und ich kann sagen, dass der gewählte Buchstabe zufällig ausgewählt wurde. Und dann kann ich
mein Komma hinzufügen und dann
einfach einen zufälligen
Unterstrich hinzufügen Und da ist es. Das ist
alles was wir tun müssen. Wenn ich das
Programm jetzt starte, ist es da. Der zufällig
gewählte Buchstabe ist M. Okay. Versuchen wir erneut,
das Programm auszuführen. Vielleicht wählen wir
einen anderen Buchstaben ich wählen sollte. Und da hast du's. Jetzt ist es C. Wieder, jetzt ist es A. Noch einmal ist
es V. Sie können jetzt
sehen, dass es tatsächlich funktioniert. Also eine kurze Zusammenfassung,
was haben wir getan? Zunächst haben wir
das Standardmodul
Random importiert , das eine Liste verschiedener
Methodentypen
enthält , die einen zufälligen Buchstaben
generieren Als erstes
haben wir also
eine Buchstabenvariable erstellt , die alle Buchstaben von A bis Z enthält, und dann haben wir eine
weitere Variable
namens Random Letter zugewiesen , die
nun den eigentlichen Buchstaben enthält
, der generiert wird. Es ist eigentlich ein zufälliger
Buchstabe, der generiert wurde. Und dann haben wir den Namen des Moduls nach dem Zufallsprinzip ausgewählt und dann die
Methode angehängt, nämlich Punkt Choice, und dann in Klammern Buchstaben Und jetzt haben wir einfach
den zufälligen Buchstaben ausgedruckt , der in Zeile vier ausgewählt
wurde Das war's also, danke, dass du dir
das Video angesehen hast. Wir sehen uns in
der nächsten Klasse.
55. Passwortgenerierung mit Zufalls- und String-Modulen: Nun, komm zurück. In
der vorherigen Lektion haben wir erfolgreich gelernt, wie man Punktauswahl einen zufälligen
Buchstaben
generiert mithilfe des Zufallsmoduls
und der Methode der zufälligen . Eine Frage, die Sie
sich hier stellen könnten, ist, was wäre, wenn wir
mehrere Buchstaben generieren wollten und nicht nur einen? Was wir tun müssen,
ist zunächst die Methode von zufälliger Punktwahl auf zufällige Punktauswahl
umzustellen ,
weil es jetzt Plural ist Wir haben es mit
mehr als einem Buchstaben zu tun. Eine weitere Sache mit zufälligen
Auswahlmöglichkeiten als
Funktionsmethode ist, dass
sie
zwei Parameter anstelle von einem akzeptiert . Die erste wird das sein, was
wir die Bevölkerung nennen, aus der wir im
Grunde die Buchstaben beziehen. Und dann
wird die zweite
die tatsächliche Anzahl der Buchstaben sein , die
wir generieren wollen. In diesem Fall werde ich
jetzt sagen, dass K gleich drei ist. In Ordnung. Und jetzt kann ich den
Drucktext von Buchstabe zu
Buchstaben ändern und dann E zu
R ändern. Wenn ich jetzt das Programm starte, haben
wir KJ, kann ich es erneut ausführen Wir haben QMW, oder? Also kannst du das im Hinterkopf behalten. Wir möchten jedoch noch einen
Schritt weiter , um ein zufälliges Passwort zu generieren. Wir haben es also nicht mehr nur mit Briefen
zu tun. Wir werden jetzt Buchstaben
mit Großbuchstaben und
Zahlen usw.
kombinieren mit Großbuchstaben und
Zahlen usw. Und ich bin mir ziemlich sicher, dass Sie schon einmal
zufällige
Passwortgeneratoren gesehen haben zufällige
Passwortgeneratoren gesehen Vielleicht ist es auf der Website, auf Sie aufgefordert werden, ein Konto zu
erstellen. Sie möchten ein Konto erstellen, und dann bieten sie an, ein Passwort für Sie zu
generieren, das Sie später ändern können. Ich werde dir zeigen,
wie wir
unseren zufälligen Passwortgenerator erstellen können , und dafür werden wir nur fünf Zeilen
verwenden. Tatsächlich vier Zeilen,
nur vier Zeilen, okay? Du glaubst mir nicht.
Schau dir das an. Zuallererst werden
wir den
Import nach dem Zufallsprinzip beibehalten, weil wir
die Buchstaben und Zahlen
natürlich nach dem Zufallsprinzip sortieren wollen, aber wir werden hier
eine Bibliothek namens
string importieren , weil wir unsere Zeichenketten manipulieren
werden, die Buchstaben,
Zahlen usw. enthalten werden ,
Zahlen usw. Wir haben also Import string, und jetzt werde ich
eine Variable erstellen , die das Passwort
darstellt Ich nenne
es Passwort ist gleich. Und ich erinnere mich an
die vorherige Lektion, ich werde zufällige,
ok-punkt-Auswahlmöglichkeiten sagen , weil wir es jetzt mit mehreren Buchstaben zu
tun haben werden mit mehreren Buchstaben zu
tun haben Und jetzt in Klammern,
denken Sie daran, dass der erste Parameter für diese Funktion oder Methode die Population sein
wird. Wir müssen
der Funktion sagen, woher sie die Zeichenfolge
aus den Buchstaben ziehen soll. Die Sache mit
der String-Bibliothek ist, dass ich Ihnen hier nur
das String-Modul
zeigen möchte, wir haben eine Vielzahl von Methoden, oder in diesem Fall nennen wir
sie Konstanten, okay? Wir können also „string dot“ sagen.
Frag nach den Buchstaben der Punktezahl. Dadurch werden Buchstaben eingefügt, die sowohl Groß- als auch Kleinbuchstaben
sind Und dann können wir
spezifizieren. Wir können den
Zeichenkettenpunkt Ask in Kleinbuchstaben sagen Zeichenkettenpunkt Ask in Kleinbuchstaben Dadurch werden nur
Kleinbuchstaben abgerufen, und dann haben wir für
Großbuchstaben, für Ziffern,
Hexadezimalzahlen, Satzzeichen Wir haben also all diese Methoden,
all diese Konstanten, mit
denen wir beim Import des String-Moduls arbeiten können mit
denen wir beim Also lass mich das wegziehen. Was wir jetzt
tun werden, ist für die zufällige Auswahl, wir wollen die Zeichenkette ziehen, Punkt fragen und jetzt
Buchstaben unterstreichen. Okay? Wir werden
zufällige Buchstaben heraussuchen. Und dann wollen
wir zusätzlich auch noch welche Ziffern eingeben, wir wollen auch Zahlen
in unserem Passwort haben. Also im Grunde sagen wir der Funktion, wir
sagen Python, dass wir für die Buchstabenauswahl, für das Passwort, Buchstaben eingeben werden , die sowohl
Groß- als auch Kleinbuchstaben sind , und
dann auch Ziffern. Und als zweiten Parameter müssen
wir natürlich angeben, aus wie
vielen Buchstaben und Ziffern unser Passwort
bestehen soll. Ich sage, K ist gleich, und nehmen wir zehn Okay? Also ein ziemlich
sicheres Passwort. Und jetzt
müssen wir nur noch was tun? Einfach ausdrucken. Wir
werden drucken. Und ich sage generiert. Also generiertes Passwort. Okay. Und dann lass mich
mein Komma und dann mein Passwort hinzufügen Das ist es. Wir werden das Passwort
generieren. Und jetzt versuchen wir es, okay? Also werde ich jetzt
weitermachen,
das Programm ausführen und los geht's. Wir haben K, wir haben sechs, wir haben Kapital F, wir haben sechs, null Smoleta, H, J, Null, Kapital W
und dann Sie können also
jetzt sehen, dass erfolgreich ein Passwort
mit zehn Zeichen
erstellt wurde Wir hatten
Großbuchstaben, Kleinbuchstaben und auch
ein paar Zahlen. Aber was wäre, wenn
wir,
anstatt die Zeichen durch ein Komma und Codes zu
trennen, alles miteinander verbinden wollen, sodass wir nur
eine einzige Zeichenfolge haben Wie werden wir das machen? Wir müssen
eine spezielle Funktion namens
Join-Funktion verwenden , okay? Es ist eigentlich eine Methode. Also, was du jetzt machen
willst, ist hier
drüben, wo es heißt,
zufällige Auswahlmöglichkeiten, wir werden
diese ganz spezielle
Funktion namens Punktverknüpfung hinzufügen , und das geht so, okay? Wir werden einzelne Codes haben und dann Punktverknüpfung, und jetzt müssen wir eine Klammer
öffnen, um alles
hier
abzudecken, und da ist es. Das wird also dazu , dass das Passwort
generiert wird, aber dann
werden alle Zeichen zusammengefügt, um dorthin zu gelangen. Also, wenn ich das Programm noch
einmal starte, los geht's. Jetzt
sieht es viel besser aus. Ich kann es noch einmal ausführen
und los geht's. Lass es noch einmal laufen
und los geht's. Es ist also erstaunlich, wie
wir
mit nur vier Codezeilen unseren eigenen zufälligen
Passwortgenerator erstellen konnten . Wir mussten natürlich zwei Standardmodule
verwenden, das Zufallsmodul und
dann das String-Modul, und natürlich zwei
zusätzliche Codezeilen, und da ist es. Das ist es also. Danke, dass du dir
das Video angesehen hast. Wir sehen uns in
der nächsten Klasse.
56. Das Datum- und Zeitmodul: Lassen Sie uns weiter
mit den Standardmodulen arbeiten. Und das nächste
wird sehr,
sehr wichtig sein, weil es nicht nur ein sehr nützliches Modul ist, sondern auch für
die Welt der Cybersicherheit relevant ist. Und ich spreche über
das Datums-/Uhrzeit-Modul. Dies ist ein Modul
, mit dem Sie Dinge wie Ihre
Uhrzeit und das aktuelle Datum
anzeigen können. Sie können das
Datum und so weiter manipulieren. Lassen Sie mich Ihnen zeigen,
wie man damit arbeitet. Ich werde das alles
entfernen und einfach
Import und dann Datum und Uhrzeit sagen , okay? Nehmen wir nun an, wir wollten das aktuelle Datum und die aktuelle Uhrzeit
protokollieren. Ich werde
hier runterkommen und sagen, dass die
aktuelle
Zeit für den Unterstrich gleich ist, okay Und jetzt müssen wir das
Modul aufrufen, das Datum, Uhrzeit,
Punkt ist, und jetzt die Methode,
die verwendet wird, um aktuelle Datum und die aktuelle Uhrzeit anzuzeigen Und es heißt jetzt auch
Date Time Dot. Es ist interessant
, dass
Sie im Modul Daytime jetzt eine Funktion namens
Day Time haben , die
tatsächlich verwendet wird. Alles, was ich
jetzt
tun muss , ist
einfach drucken zu sagen. Und dann kann ich in Klammern sagen, dass das aktuelle Datum
und die aktuelle Uhrzeit Leerzeichen sind, und dann kannst du hier
mein Komma hinzufügen und dann einfach aktuell
in der Partitur sagen, Uhrzeit und mal sehen Ich führe das
Programm aus und los geht's. Das aktuelle Datum und die Uhrzeit
sind der 27. Oktober 2024, und das ist genau die
Zeit, wie Sie sehen können Ich möchte
Ihnen jedoch etwas anderes vorstellen. Siehst du, angesichts der Tatsache
, dass wir hier
Tag haben und dann
wieder Tag, ist das irgendwie überflüssig, oder? Ich meine, der Code funktioniert immer noch einwandfrei.
Versteh mich nicht falsch. Der Code funktioniert.
Aber wenn du das sehr professionell angehen willst, könnten wir das sagen, weißt
du was? aus dem Tagesmodul Lassen Sie uns aus dem Tagesmodul speziell
die Datums- und Uhrzeitmethode importieren. Also, was ich
jetzt machen werde, ist hier drüben, ich werde sagen von
Datetime, Import Daytime Und das Schöne
ist, dass
wir hier nicht mehr
Daytime Dot sagen müssen , sondern Sie können das alles
einfach entfernen Und jetzt einfach
Daytime Dot sagen. Denn im Moment haben wir Python
gesagt,
hey,
ich möchte, dass Sie aus dem Modul
Daytime speziell die Klasse oder
die Methode namens Datetime importieren die Methode namens Datetime Wenn ich das Programm
jetzt erneut starte, können
Sie sehen, dass es immer noch einwandfrei
funktioniert Es ist nur so, dass das ein bisschen
professioneller und eine viel bessere
Art
ist , deinen Code zu schreiben Jetzt möchte ich, dass wir mit diesem Programm einen Schritt weiter gehen und das Tagesmodul tatsächlich mit dem Zufallsmodul
kombinieren. Also
werden wir im Grunde zufällige Aktivitäten wie
Anmelden, Abmelden, Datei-Upload,
Passwortänderung, wissen
Sie, Dinge, die ein Benutzer auf einem Computersystem tun
könnte, wir werden
sie nach dem Zufallsprinzip generieren und sie auch mit
einigen Zeitstempeln generieren, okay? Also werde ich wieder hier rein gehen. Und gleich nach dem
Tagesmodul werden
wir jetzt zufällig
importieren. Okay? Lassen Sie uns nun die verschiedenen Arten von
Aktionen
angeben , die
wir randomisieren Also werde ich sagen, dass
Aktionen gleich sind, und jetzt können wir unsere Liste erstellen Und lassen Sie uns eine
Vielzahl von ihnen hinzufügen, okay? Lassen Sie uns zunächst
mit dem Komma „Einloggen“ beginnen. Lassen Sie uns auch Logout verwenden. Okay, wir haben hier einige Vorschläge
wie Registrierung, Passwort
zurücksetzen und, okay,
ich glaube, ich mag diese vier Ich denke, vier sind genug, okay? Also verschiedene Aktionen wie Anmelden, Abmelden, Registrieren, Passwort
zurücksetzen Also werden wir diese Aktionen nach dem
Zufallsprinzip anordnen. Lassen Sie mich einfach einen Unterstrich
zwischen Reset und Passwort hinzufügen. Immer wenn deine Zeichenketten mehr als ein Wort
haben, wenn es wie zwei Wörter sind,
verwende immer einen Unterstrich, um sie miteinander zu
verbinden, das ist eine viel bessere Art, deine Zeichenketten
auszuschreiben Also eine, die ich jetzt
machen werde, ist hier drüben, ich werde
die aktuelle Zeit gleich Tageszeit setzen Wir müssen
jedoch auch eine Variable erstellen , die die
randomisierte Also werde ich jetzt
hierher kommen und sagen, dass die Aktion des
Benutzerunterstrichs jetzt einer zufälligen Punktwahl entspricht Und dann in Klammern die
Aktionen. Und da hast du's. Und alles, was wir
jetzt tun müssen, ist einfach
auszudrucken , dass der Benutzer einem bestimmten
Zeitpunkt eine SAW-Aktion
ausführt. Also können wir das machen. Ich sage print und jetzt die F-String,
und ich werde sagen, dass der Benutzer die Aktion ausgeführt hat und jetzt unsere geschweiften Klammern, um die Aktion
darzustellen Das wäre also die Aktion „User
on score“. Und jetzt kann ich „at“ sagen und dann die geschweiften Klammern, die
aktuelle Zeit für den Unterstrich Füge die schließenden Codes hinzu, schließe die Klammer und
das sollte es sein Lassen Sie uns jetzt weitermachen und das Programm ausführen,
und los geht's. Der Benutzer hat sich
bei S registriert und so. Lass es uns noch einmal ausführen. Diesmal habe ich mich angemeldet,
okay, ein festgelegtes Passwort eingegeben. Wie Sie sehen können, funktioniert es
also. Was wäre nun, wenn
wir, genau wie
in der vorherigen Lektion, mehr als eine Aktion vom
Benutzer ausführen lassen wollten ? Was wirst
du ganz einfach tun? Wir werden herkommen Wahl auf Entscheidungen
umstellen. Und dann denken Sie daran, dass
wir angeben müssen wie viele Aktionen wir randomisieren
wollen Ich sage, K ist gleich zwei, und jetzt kann
ich sagen, dass der Benutzer das getan hat,
lassen wir den gedruckten
Text
einfach so wie er ist den gedruckten
Text
einfach so wie er Lassen Sie uns das Programm erneut ausführen. Und jetzt können Sie sehen, dass der Benutzer ausgeführt wurde,
Sie haben das Passwort eingegeben, es erneut
ausgeführt, und jetzt
heißt Sie haben das Passwort eingegeben, es Login und jetzt Logo. So können Sie also
mit dem Tagesmodul
entsprechend dem Zufallsmodul arbeiten , um
zufällige Aktionen zu unterschiedlichen
Zeiten zu
generieren. Danke, dass du dir das
Video angesehen hast. Wir sehen uns in der nächsten Klasse.
57. Arbeiten mit einer externen Bibliothek: Um diesen Abschnitt über
Bibliotheken und Module zusammenzufassen, muss
ich Ihnen zeigen,
wie Sie
mit einer externen Bibliothek arbeiten können . Und die, mit der wir
arbeiten werden wird eine sehr,
sehr mächtige Bibliothek sein ,
und es wird die Kryptografie-Bibliothek
sein Und lassen Sie mich die Dokumentation in die Länge
ziehen. Diese spezielle Bibliothek wurde also der Python-Community entwickelt und
verwaltet. Sie können zu Cryptography
Dot IO gehen , wenn Sie mehr erfahren
möchten Aber genau hier liefern sie
uns Ideen, wie wir die Bibliothek und
speziell eine
bestimmte Funktion, nämlich die Fernet-Funktion
, tatsächlich importieren speziell eine
bestimmte Funktion, nämlich die Fernet-Funktion
, die Fernet-Funktion
, Okay? Dies
wird hauptsächlich zum Verschlüsseln und auch
zum Verschlüsseln von Nachrichten verwendet und auch
zum Verschlüsseln von Lassen Sie mich Ihnen zeigen, wie
wir damit arbeiten werden. Und ich habe hier
einige Hinweise hinzugefügt weil es sehr
wichtig ist, dass Sie Schritt für Schritt
verstehen, wie unser Programm tatsächlich funktionieren wird , denn um ehrlich zu sein, kann
es ziemlich
verwirrend werden, okay? Ich werde nicht lügen.
Denken Sie daran, dass wir bei der Verschlüsselung einen Schlüssel verschlüsseln können, richtig, wir werden eine Chiffre verwenden, mit der wir dann
unseren Schlüssel verschlüsseln können Aber dann können wir auch
die verschlüsselte Nachricht entschlüsseln , okay? Es funktioniert also so, dass zunächst mithilfe der Frente-Funktion
den Schlüssel generieren müssen, den
wir sowohl
für die Verschlüsselung als auch für
die Verschlüsselung verwenden werden, und dann können wir diesen Schlüssel an unsere
Chiffre übergeben Denken Sie daran, dass
wir in der
Welt der Verschlüsselung
Chiffren verwenden werden, die
einen Algorithmus und den Schlüssel
für die eigentliche Verschlüsselung und Verschlüsselung kombinieren einen Algorithmus und den Schlüssel
für die eigentliche Verschlüsselung und . Es sind also im Grunde vier Schritte. Zunächst
generieren wir unseren Schlüssel. Wir sagen also, dass Frente
keinen Schlüssel generiert. Dadurch wird
der Schlüssel generiert, und dann
können wir den Schlüssel an unsere Chiffre übergeben Und jetzt, um
die eigentliche Nachricht zu verschlüsseln, sagen
wir Chiffre, weil
sie jetzt den Schlüssel enthält und dann verschlüsselt Und dann in Klammern steht unsere
Funktionsnachricht punktkodieren. Und dann, das
Gegenteil von Entschlüsseln, können
wir sagen, dass entschlüsselte
Nachricht
gleichbedeutend mit Cipher Dot gleichbedeutend mit Cipher Und jetzt in Klammern,
weil wir entschlüsseln , was die verschlüsselte Nachricht ist. Also werden wir
das weitergeben und dann
die letzte Methode Dot Decode hinzufügen , um unsere Nachricht
zu entschlüsseln Fangen wir also
ganz am Anfang an, okay? Das Erste, was ich
tun werde, ist importieren. Ich werde also sagen, dass
wir aus dem
Kryptographen P Punkt Fernet die Klasse Fernet importieren werden Okay? Das ist der
allererste Schritt. Denken Sie daran, dass der erste Schritt
darin besteht, den Schlüssel zu generieren. Also sage ich, Schlüssel ist gleich, und jetzt generiert Fern den Punkteschlüssel. Dadurch
wird ein Schlüssel erstellt Und jetzt können wir sagen, dass
Chiffre
gleich Fernet sein wird und Zu diesem Zeitpunkt
möchte ich, dass wir zunächst den generierten Schlüssel
ausdrucken, den wir Also kann ich
jetzt reinkommen und „Drucken“ sagen und dann in Klammern, sagen
wir, generierter Schlüssel. Okay? Also erzählt, und dann die Taste, kann meinen Doppelpunkt hinzufügen und dann
ein Komma hinzufügen und dann
den Code mit einem Punkt markieren Ordnung. Also genau das hier, diese spezielle Funktion
hier, werden wir
verwenden, um den Schlüssel als Zeichenfolge anzuzeigen. Der nächste Schritt wird nun darin bestehen, die Nachricht
tatsächlich zu verschlüsseln. Also, was machen wir? Wir
können sagen, dass Botschaft gleich ist. Lassen Sie uns die Nachricht hinzufügen. Die Standardeinstellung hier
lautet Hello World. Machen wir es
etwas komplexer. Ich werde Hallo Welt sagen.
Das ist eine Circuit-Meldung. Okay, ich denke, das ist in Ordnung. Das ist eine Circuit-Meldung. Okay? Also das ist
die Nachricht, die wir zuerst verschlüsseln
und dann entschlüsseln Also werde ich jetzt gleich
hier reinkommen und sagen verschlüsselte Nachricht handelt. Jetzt werden wir
die Nachricht verschlüsseln , und wie
wir das machen werden,
wir werden
Chiffre, Punkt verschlüsseln sagen, und dann in Klammern werden
wir die Nachricht übergeben und die Methode Punkt
kodieren, um unsere
Nachricht kodieren So weit, so gut. Der nächste Schritt
wird nun das Drucken sein. Wir können die verschlüsselte
Nachricht jetzt drucken, also werde ich
sie in Klammern drucken. Fügen wir unsere Codes hinzu,
und dann kann ich sagen, dass die verschlüsselte Nachricht ein
Doppelpunkt ist , und jetzt füge ich
mein Komma hinzu und dann sage ich in der Ergebnisnachricht
einfach verschlüsselt Okay? So weit, so gut. Der letzte Schritt
nach der Verschlüsselung
wird natürlich das Entschlüsseln sein Also werde ich sagen, was bedeutet die entschlüsselte Underscore-Nachricht
? Chiffren prägen die Krypta. Dann geben
wir in Klammern die verschlüsselte,
verschlüsselte
Unterstrich-Nachricht ein
und dann den verschlüsselte
Unterstrich-Nachricht und dann Klammern, schließen Sie
die letzte Klammer und schon ist sie da Der letzte Schritt im
Moment besteht also darin, die
entschlüsselte Nachricht und
dann die entschlüsselte Nachricht auszudrucken entschlüsselte Nachricht und
dann die entschlüsselte Jetzt kann ich hier sehen, dass
wir Oh, da gibt es keine schließende
Klammer, verzeihen Sie mir Ich habe genau da einen Fehler gemacht. Und hoffentlich sollte das funktionieren. Lass mich jetzt weitermachen
und rennen. Und da hast du's. Also jetzt kannst du es auf meinem Bildschirm
sehen. Es heißt, Die
Nix-Umgebung wird geladen. Das Schöne
an Python bei der Arbeit in Plet ist also, dass obwohl
es sich eigentlich um
eine externe Bibliothek handelt, die Bibliothek
automatisch importiert, da sie im Grunde die Bibliothek
installiert Und jetzt läuft das
Programm
und es heißt, der
generierte Schlüssel war das, okay? Das ist ein langer Schlüssel. Die verschlüsselte Nachricht
ist jetzt genau hier, sehr, sehr lang, wie Sie sehen können. Und natürlich ist die verschlüsselte
Nachricht Hello World. Das ist eine geheime Nachricht. Versuchen wir, die
Nachricht in etwas anderes zu ändern. Und ich werde sagen,
Python ist unglaublich. Lass es uns noch einmal ausführen
und los geht's. Jetzt haben wir also einen anderen
generierten Schlüssel und
natürlich eine andere
verschlüsselte Nachricht. So arbeitet man also mit
der Kryptografie-Bibliothek. Und nur um Ihnen noch einmal einen
kurzen Überblick zu geben:
Zunächst haben wir
das Modul Furnit aus
der Bibliothek Cryptography importiert das Modul Furnit aus
der Bibliothek Cryptography Dann werden wir in der
Welt der Kryptografie natürlich einen Schlüssel
haben, den
wir für die Verschlüsselung und Entschlüsselung verwenden Wir haben den Schlüssel genau
hier mit
der Fn Dogenerate-Schlüsselmethode generiert und dann weisen wir diesen
Schlüssel unserer Chiffre zu Wir haben den
generierten Schlüssel ausgedruckt,
indem wir die Schlüsseldekodierungsfunktion verwendet Und um die Nachricht dann zu verschlüsseln, müssen
wir zunächst hinzufügen, was die Nachricht tatsächlich Die Botschaft hier ist, dass
Python unglaublich ist. Und dann sagen wir: Okay, eine
verschlüsselte Nachricht entspricht jetzt der Funktion
Chiffre mit Punkt verschlüsseln und dann in Klammern
Nachricht Die
Punktkodierungsmethode hier
konvertiert also den Klartext
oder die Zeichenfolge in Byte, okay konvertiert also den Klartext
oder die Zeichenfolge Und jetzt
nimmt die Punktverschlüsselung die verschlüsselte Nachricht entgegen. Ich werde es dann verschlüsseln und eine verschlüsselte
Version erzeugen. Und natürlich
entspricht die
Ausgabe der verschlüsselten Nachricht
auf dem Punktestand Und dann besteht der letzte Schritt darin die Nachricht tatsächlich zu
entschlüsseln Also Chiffre Dot
Decrypt genau hier. Wir nehmen die verschlüsselte
Nachricht und entschlüsseln sie dann, kehren zum
ursprünglichen Format zurück
und dekodieren sie dann genau hier Diese Methode konvertiert
die entschlüsselten Bytes wieder in
ein Und natürlich haben wir
endlich die eigentliche
entschlüsselte Nachricht
ausgedruckt eigentliche
entschlüsselte Nachricht
ausgedruckt Das war's also, danke, dass du dir
das Video angesehen hast. Wir sehen uns in
der nächsten Klasse.
58. Verschlüsselungs- und Entschlüsselungswerkzeug – Projekteinführung: Willkommen zum
nächsten Mini-Projekt. Und hier werden
wir uns
ein Tool zum Verschlüsseln
und Entschlüsseln von Dateien erstellen ein Tool zum Verschlüsseln
und Entschlüsseln von Dateien Es funktioniert nun so, dass dem Benutzer, sobald er das Programm
ausgeführt hat, vier verschiedene Optionen zur Verfügung stehen Sie können auf Ihrem Bildschirm sehen, dass sie entweder
einen Verschlüsselungsschlüssel generieren, die Datei
verschlüsseln, die Datei
entschlüsseln
oder einfach das Programm beenden
können die Datei
verschlüsseln, die Datei
entschlüsseln
oder einfach das Programm beenden Wenn ich
hier also die Option
Nummer eins verwende , um
einen Verschlüsselungsschlüssel zu generieren, können Sie
jetzt sehen, dass
wir mit
der Frage aufgefordert werden , den
Dateipfad einzugeben, um den Schlüssel zu speichern Der Punkt dabei ist, dass wir dem Benutzer die
Möglichkeit geben , entweder
den Standardschlüssel zu
verwenden, den wir selbst erstellen werden oder er könnte
seinen eigenen benutzerdefinierten Schlüssel verwenden. Das ist der Sinn
dieser Frage oder Aufforderung, der der Benutzer
aufgefordert wird, den Dateipfad
anzugeben. Wenn der Benutzer sich
also für den Standardschlüssel entscheidet und ich jetzt die
Eingabetaste drücke,
werden Sie sehen,
dass wir hier eine Datei mit ich jetzt die
Eingabetaste drücke,
werden Sie sehen, dem Namen
Encryption Underscoolk
Dot Key
erstellt haben dem Namen
Encryption Underscoolk
Dot Key
erstellt , die jetzt einen bestimmten
Schlüssel für die Verschlüsselung enthält Wenn ich jetzt zum Programm zurückkehren und
Option Nummer zwei
zum Verschlüsseln
einer Datei eingegeben habe, habe ich hier
eine Beispiel-TX-Datei mit zufälligem Text erstellt hier
eine Beispiel-TX-Datei mit zufälligem Nehmen wir zum Beispiel an, wir wollten diese Datei verschlüsseln. Jetzt gebe ich
den Namen der Datei an, den
Beispielpunkt TXT, und drücke die Eingabetaste Und jetzt können wir einen
Namen für die Ausgabedatei angeben. Also können wir diese Datei verschlüsselt
unter der SCO-Datei Punkt TXT nennen, ok. Und jetzt drücken wir Enter. Und jetzt können wir den Pfad
des zu verwendenden
Verschlüsselungsschlüssels eingeben . Auch hier verwenden wir den Standardschlüssel,
also drücke ich die Eingabetaste.
Jetzt wurde unsere Datei verschlüsselt und in einer
anderen Datei gespeichert, die als
verschlüsselte gespeichert, die als
verschlüsselte
Unterstrichdatei DTXT bezeichnet wird Sie können sehen, dass dies
die Datei genau hier ist. Wenn ich sie jetzt öffne, können
Sie sehen, dass dies
die verschlüsselte Version
unserer DTXT-Beispieldatei ist unserer DTXT-Beispieldatei Wenn ich jetzt zurückgehe und mit Option Nummer drei weitermache, um eine Datei zu
entschlüsseln, okay? Und jetzt lassen Sie uns die Datei entschlüsseln
, die wir gerade verschlüsselt haben, okay? Also werde ich die verschlüsselte
Underscore-Datei mit Punkt TXT verwenden. Das ist die Datei
, die wir gerade gemacht haben. Das ist die neu verschlüsselte Datei Also drücke ich jetzt Enter. Und wie lautet der Name
der Ausgabedatei? Wir können entschlüsselt sagen,
unterstrichene Datei mit Punkt TXT. Wir drücken die Eingabetaste und dann erneut die
Eingabetaste, um die Standardtaste zu
verwenden Und jetzt haben wir die Datei
entschlüsselt
und an eine neue Datei namens
Decrypted Underscore
File Dot Text gesendet Decrypted Underscore
File Und wenn ich es hier öffne, können Sie
jetzt sehen, dass wir genau
den gleichen Text wieder erhalten haben genau
den gleichen Text Das
Programm funktioniert also im Grunde so, dass
wir eine Datei bereitstellen, in diesem Fall
wird sie gerade als TXT gesampelt Wir werden es
mit dem Verschlüsselungsschlüssel verschlüsseln , den wir generiert haben Wir werden es in einer Datei
namens verschlüsselter NscoFLDO-Text
speichern und dann versuchen, die Datei
zu entschlüsseln und den Inhalt dann im
verschlüsselten Osco FL Do-Text zu
speichern Und wie Sie jetzt sehen können , funktioniert es einwandfrei. Also werde ich Ihnen genau zeigen wie wir diese
spezielle Art von Tool entwickeln können. Ich werde
das gesamte Projekt
in drei verschiedene Themen unterteilen . Also das erste,
wir werden
einen Verschlüsselungsschlüssel erstellen , dann
das zweite Video, wir werden sowohl die
Verschlüsselungs- als auch die
Entschlüsselungsschlüssel erstellen , die Funktionen Und dann, endlich, in
Aufgabe Nummer drei, werden
wir die Benutzeroberfläche hinzufügen Lassen Sie uns loslegen, ohne weitere
Zeit zu verschwenden.
59. Aufgabe 1: Erstelle den Verschlüsselungsschlüssel: In Ordnung, also fangen wir an. Und das allererste,
was wir tun werden,
ist,
die benötigte Bibliothek zu importieren, und das wird
natürlich
der Kryptografie-Punkt Furnt sein der Kryptografie-Punkt Also werde ich
hier reinkommen und sagen von und dann Kryptografie Punkt Furnt
und jetzt Netz importieren. Okay. Jetzt wollen wir
eine Funktion schreiben, mit der wir
unseren Verschlüsselungsschlüssel generieren und speichern können . Lassen Sie uns also weitermachen und eine Funktion
erstellen. Ich nenne das
Definition und sagen wir Generate Underscore Key,
und jetzt in Bracket Das wird also
der Name unserer Funktion sein
, mit der wir unseren Verschlüsselungsschlüssel
generieren Die Sache ist nun, wann immer
Sie Ihre Schlüssel generieren, wann immer Sie diese Funktion
verwenden, können
wir tatsächlich eine
bestimmte Art von Parameter hinzufügen, nämlich den Dateipfad. Wir können den
Namen unserer Datei erstellen. Also, was ich jetzt tun werde ist, Datei zu sagen und jetzt Pfad zu unterstreichen Okay, wird jetzt gleich sein, und jetzt können wir
den Namen der Datei hinzufügen In diesem Fall werde
ich jetzt in Codes Verschlüsselung, Unterstrich, Schlüssel, Punkt, Schlüssel sagen So möchten Sie
die Datei für Ihren
Verschlüsselungsschlüssel speichern die Datei für Ihren
Verschlüsselungsschlüssel Es wird der
Name und dann der Punktschlüssel sein. Und ich werde am Ende meine Kolumne
hinzufügen . Sehr,
sehr wichtig. Nun, um den
eigentlichen Schlüssel selbst zu generieren, können
Sie sehen, dass wir uns die Informationen bereits
gegeben haben. Ich sage:
Taste ist gleich und jetzt
fernt, jetzt Punkt,
Unterstrich generieren, und jetzt Also
genau das hier werden wir verwenden, um den eigentlichen Schlüssel zu
generieren Wir werden
diese Methode verwenden, bei der es sich um den Farn
handelt, um den Schlüssel zu generieren, und wir werden ihn
in einer Variablen namens Schlüssel speichern. Lassen Sie uns nun
die eigentliche Datei selbst erstellen. Also werde ich jetzt
reinkommen und ich sage mit, okay, W und jetzt offen. Also werden wir unsere Datei
erstellen, und jetzt
füge
ich in Klammern den Dateipfad hinzu, okay? Und jetzt Komma und
jetzt der richtige Modus. Also wird es WB sein, und jetzt werde ich
S K in der Partiturdatei sagen Das hier
öffnet also eine Datei in
einem sogenannten Binärmodus Jetzt fragen Sie sich vielleicht,
was genau WB ist. Es ähnelt dem
Schreibmodus, der nur W sein wird, mit
dem wir bereits vertraut sind, aber in WB schreiben
Sie Daten in
einem Binärformat
statt in Klartext Das bedeutet also im Grunde,
dass Daten als
Rohbytes und nicht
als Zeichen geschrieben werden Rohbytes und nicht
als Zeichen Jetzt
fragst du dich vielleicht, okay, was genau ist der Sinn?
Was ist der Vorteil? Nun, wenn Sie
Binärdaten in Ihrem
regulären Textmodus schreiben , der W sein wird, versucht das Programm ,
die Bits als Zeichen zu interpretieren, was sehr oft zu Kodierungsfehlern,
Datenbeschädigung oder vielleicht
sogar zum Verlust der Datenintegrität
führen kann Datenbeschädigung oder vielleicht
sogar zum Verlust der Datenintegrität Daher wird die Verwendung von WB immer dann
empfohlen, wenn
Sie
mit Verschlüsselung, Bilddateien
oder anderen Daten arbeiten , die nichts mit Text zu tun haben, um
sicherzustellen, dass die Daten
korrekt und
ohne Änderungen in
ihrem ursprünglichen Bite-Format gespeichert werden korrekt und
ohne Änderungen in
ihrem ursprünglichen Bite-Format gespeichert ohne Änderungen in
ihrem ursprünglichen Bite-Format Ordnung, jetzt müssen wir den Schlüssel
in die Datei schreiben Also werde ich jetzt
herkommen und ich werde
Schlüssel zur Partiturdatei sagen, und jetzt die Methode write, und was geben wir
jetzt ein? Wir übergeben den
eigentlichen Schlüssel selbst. Also das hier, wir
schreiben den Schlüssel in die Datei und dann ist es fertig, aber wir können auch einfach
etwas zum Ausdrucken schreiben. Also sagen wir einfach drucken. Und jetzt können
wir in Klammern eine Zeichenfolge verwenden. Und ich werde Codes sagen. Nehmen wir an, der
Verschlüsselungsschlüssel wurde ebenfalls gespeichert, und jetzt können wir den
Dateipfad als Unterstrichpfad hinzufügen, und schon ist er da Wir haben also erfolgreich
die Funktion zur Generierung
unseres Verschlüsselungsschlüssels erstellt die Funktion zur Generierung
unseres Verschlüsselungsschlüssels Aber jetzt schreiben wir auch
eine weitere Funktion, um den
Verschlüsselungsschlüssel aus der Datei zu laden. Also werde ich hier reinkommen. Ich werde sagen, definiere den
Unterstrichschlüssel beim Laden und füge
jetzt in Klammern einen Dateipfad hinzu Und jetzt
entspricht das natürlich dem Verschlüsselungsschlüssel und
dem
Unterstrich-Schlüssel mit Punktschlüssel Von hier aus sage
ich
Breite und
jetzt öffnen, um Breite und
jetzt öffnen die Datei in den Punktepfad
einzufügen Und jetzt wollen wir lesen. Wir wollen aus der Datei lesen. Also, was glauben Sie, werden
wir verwenden? Wir werden
RB anstelle von WB verwenden. Also werden es jetzt Codes sein. Es wird RB sein. Lassen Sie mich direkt dort mein Koma hinzufügen und dann die
Klammer schließen und jetzt als Schlüssel in der Partiturdatei. Hatte eine Kolumne. Und jetzt endlich, um den
Schlüssel aus der Datei zu lesen, können
wir einfach Schlüssel ist
gleich sagen, und dann Schlüssel,
Unterstrich, Datei, Punkt,
die Lesemethode, und jetzt in Klammern, und jetzt können wir einfach unseren Schlüssel
zurückgeben Die Funktion, die wir
gerade hier erstellt haben, der
Load-Underscore-Schlüssel,
liest einfach den in der Datei gespeicherten
Verschlüsselungsschlüssel und gibt ihn zurück, und das
ist natürlich der Schlüssel, der sowohl
für die Verschlüsselung
als auch für die Entschlüsselung benötigt wird . Jelly nächstes Video, in dem
wir jetzt anfangen werden
, Funktionen zum Verschlüsseln einer Datei und auch zum
Entschlüsseln der Datei
zu
schreiben einer Datei und auch zum
Entschlüsseln der Datei
zu
60. Aufgabe 2: Erstellen der Verschlüsselungs- und Entschlüsselungsfunktionen: Willkommen zurück. Im
vorherigen Video haben wir also erfolgreich
den Verschlüsselungsschlüssel erstellt
und ihm den Dateipfad der
Verschlüsselung mit dem Punktschlüssel auf dem Punktschlüssel zugewiesen Und wir haben auch eine einfache
Funktion zum Laden des Schlüssels geschrieben. Lassen Sie uns nun die
Funktionen schreiben, mit denen wir unsere Dateien tatsächlich
verschlüsseln, aber auch entschlüsseln Übrigens, mir ist gerade hier in Zeile
neun
aufgefallen, dass ich
meinen Doppelpunkt nicht am Ende hinzugefügt Also bitte, wenn Sie das nicht
getan haben, tun Sie das bitte auch. Und dann
habe ich auch in Zeile fünf einen weiteren Doppelpunkt vergessen, also füge bitte die Spalten zu Zeile fünf und Zeile neun hinzu,
okay , also
schreiben wir eine Funktion, um unsere Datei zu
verschlüsseln Also werde ich
hier runterkommen und sagen wir definieren. Und nennen wir die
Funktion Datei verschlüsseln, verschlüsseln, unterstreichen, Denk jetzt darüber nach, okay? Unsere Funktion, weil
wir eine Datei verschlüsseln werden, benötigen
wir drei
verschiedene Parameter, okay? Der erste Parameter
ist die eigentliche Datei selbst, die wir
verschlüsseln werden Nennen wir diese Datei also die
Eingabe für die Partiturdatei. Okay? Jetzt müssen
wir auch eine Datei erstellen, die
die verschlüsselte Version enthält. Nennen wir diese Datei also die
Ausgabe der SCO-Datei. Okay. Und dann brauchen
wir endlich den
eigentlichen Schlüssel, mit dem wir
die Eingabedatei verschlüsseln werden, richtig Also lass mich am Ende meinen
Doppelpunkt hinzufügen. Das erste, was wir jetzt tun
werden,
ist, unser Frente-Objekt
mit dem bereitgestellten Schlüssel zu erstellen Also werde ich sagen,
Fernet ist jetzt gleich F, Fernet und jetzt werden
wir in Klammern die Taste R hinzufügen Okay. Von hier aus wollen
wir also die Eingabedatei lesen. Okay? Das wird natürlich
der nächste Schritt sein, die Eingabedatei, die wir verschlüsseln möchten,
tatsächlich zu öffnen Also sage ich mit
Öffnen und jetzt in Klammern, ich sage die
Eingabe in der Partiturdatei,
und jetzt, welchen Modus
wir mit dem binären
Lesemodus wählen werden, also R B, okay Und jetzt
sage ich eine Datei und jetzt werden wir den Inhalt der Datei
lesen und diesen
Inhalt an eine andere Variable übergeben . Nennen wir die
Variable also Original. Ich werde sagen, Original wird
jetzt gleich was sein? Der Dateipunkt wurde gelesen , weil wir
den Inhalt der Datei lesen wollen, und lassen Sie uns genau dort unsere
Klammern hinzufügen. Okay, uns geht es super.
Es geht uns super. Jetzt müssen wir die Datei verschlüsseln. Okay?
Übrigens, ich habe vergessen, die Spalte
hier in Zeile 16
hinzuzufügen. Lassen Sie uns also genau dort eine
Spalte hinzufügen. Okay, jetzt, wo wir die Datei
geöffnet haben, okay, wir wollen sie jetzt verschlüsseln Also werde ich sagen,
nennen wir das verschlüsselt. Dies wird die
Variable sein, in
der die tatsächliche verschlüsselte Version gespeichert wird. Ich würde also sagen,
verschlüsselt entspricht jetzt Furnt Dot Encrypt Jetzt in Klammern
, weil wir bestanden haben, Datei Punkt in die
Variable Original eingelesen Ich werde jetzt
hier reinkommen und einfach Read Null sagen. Was ist
dann das
Letzte, was wir tun werden? Wir müssten den
verschlüsselten Inhalt in eine Datei schreiben. Also sage ich Breite
offen, und jetzt in Klammern, die Ausgabe beim Aufrufen der Datei, und jetzt wird der Modus richtig binär
sein, also WB Und jetzt sage ich als Datei in unserem Doppelpunkt genau dort Und alles, was wir jetzt tun
müssen, ist
Datei mit Punkt rechts zu sagen , weil
wir unsere Datei verschlüsseln, und jetzt in Klammern,
was soll das sein Es wird verschlüsselt werden. Also werde ich verschlüsselt sagen. Das wird also den
verschlüsselten Inhalt in die Datei schreiben. Und natürlich können wir auch einfach
eine gedruckte Erklärung hinzufügen, Sie können auch „Drucken“ sagen. Und ja, wir können
diese eine Druckdatei verschlüsseln und in der Ausgabedatei speichern
. Von hier aus
müssen wir also jetzt
die Funktion erstellen, der wir die Datei entschlüsseln
können Es
wird also im Grunde eine
Umkehrung dessen sein , was wir gerade getan haben Also sieh dir das an
, damit ich herkomme. Und lassen Sie uns unsere Funktion
decrypt für die Score-Datei nennen. Und dann benötigen
wir, genau wie
bei der Verschlüsselung ,
drei Parameter, die Eingabedatei, die
Ausgabedatei sowie den Schlüssel Also werde ich,
wie Sie sehen können, die Eingabedatei, die
Ausgabedatei und dann den Schlüssel hinzufügen wie Sie sehen können, die Eingabedatei, . Und jetzt sage
ich, wie üblich, Fernet ist gleich, Großbuchstabe Fernet
und dann Backeds-Taste Das wird also der Schlüssel sein, den wir
verwenden werden
, um unsere Datei zu entschlüsseln Was wir jetzt tun wollen, wir wollen den Inhalt
der verschlüsselten Datei lesen Also werde ich mit einer neuen Leitung hierher kommen
. Ich werde sagen, mit offen,
und was öffnen wir jetzt? Wir öffnen die
Eingabe in der Partiturdatei, und welchen Modus R B nun? Ich sage
Datei S und Doppelpunkt. Also, was wollen wir jetzt tun? Wir wollen entschlüsseln. Also werde ich sagen, dass
verschlüsselt Encrypted
hier dem Datei-Punkt-Read entspricht, wir übergeben
den Inhalt der verschlüsselten Datei an eine Variable
namens encrypted, weil wir
jetzt weitere Variable
namens decrypted
erstellen
werden, und das wird jetzt Fernet entsprechen Jetzt übergebe ich decrypt in Klammern verschlüsselt. Also genau hier
werden wir den
Inhalt unserer Datei entschlüsseln Und jetzt, was ist der letzte Schritt? Wir möchten die entschlüsselten
Informationen in einer neuen Datei speichern. Jetzt sage ich einfach mit Öffnen und jetzt in Klammern
die Ausgabe-Unterstrichdatei, und jetzt WB eine Datei, Doppelpunkt,
und jetzt einfach Dateipunkt rechts,
und jetzt entschlüsselt, also schreiben
wir eine
Verbindung zu Und dann können wir endlich einfach die üblichen
Print-Anweisungen hinzufügen Wir können also
etwas wie Drucken, Klammern F, sagen, Datei entschlüsselt und in der Ausgabedatei
speichern Ich denke, okay, ich
denke, das ist in Ordnung. Und da ist es. Okay. Lassen Sie mich diesen Punkt sogar
verbessern. Ich kann Datei sagen. Okay? Und jetzt coole Zahnspangen und dann die Eingabedatei Okay. Und jetzt sage ich entschlüsselt und in der Ausgabedatei gespeichert Ich denke, das ist besser, und da ist es Also erstellen wir wieder
Funktionen, um unsere Dateien sowohl zu verschlüsseln
als auch zu entschlüsseln Für die Verschlüsselungsfunktion benötigen
wir drei Parameter Die Eingabedatei, die
wir verschlüsseln werden, die Datei, die wir erstellen werden,
ich
werde die
verschlüsselten Informationen speichern, das ist die Ausgabedatei und dann den Schlüssel für die
eigentliche Verschlüsselung Also haben wir diesen Schlüssel
genau hier erstellt, indem wir gesagt finden ist endlich
und dann Und jetzt haben wir
die Originaldatei geöffnet
und den Inhalt
der Datei in
unserer Variablen namens original gespeichert, indem wir in
unserer Variablen namens gesagt haben, dass Datei mit
Punkt gelesen gleich
Original Und jetzt, um die eigentliche
Verschlüsselung selbst durchzuführen, sagten
wir, verschlüsselt ist
gleich freno encrypt und jetzt in Klammern Original
und jetzt mit open, weil wir
die verschlüsselten Informationen in
einer neuen Datei speichern wollen , der Ausgabedatei, wir haben die Datei genau
hier in den Zeilen 19, 20 und 21 erstellt, und dann haben wir
mit der Entschlüsselungsfunktion
so ziemlich das genaue Gegenteil gemacht . Also Jome das nächste Video bewusst, wir werden
weitermachen und jetzt
die Hauptfunktion für
die Benutzerinteraktion erstellen .
61. Aufgabe 3: So fügst du die Benutzeroberfläche hinzu: Kommen Sie zum letzten Teil des
Programms, in dem wir die
Hauptbenutzerinteraktion erstellen werden. Wir werden dem Benutzer
vier verschiedene Optionen zur Verfügung stellen . Vielleicht möchten sie eine verschlüsselte Schlüsseldatei
generieren, eine entschlüsselte Datei,
vielleicht sogar einfach beenden Und je nachdem
, welche Option sie wählen, müssen
wir dann etwas
tun Also lass uns anfangen, richtig? Also werde ich sagen, definiere Main. Dies wird der Name
unserer Schnittstelle sein, und wir können eine
allgemeine Willkommensnachricht ausdrucken. Das ist nicht notwendig, aber
hey, lass uns das einfach machen. Willkommen beim Verschlüsselungs- und
Entschlüsselungstool. Okay. Okay. Jetzt werden wir
die While-Schleife erstellen , die die vier Optionen
durchläuft. Ich werde sagen, während
und jetzt wahrer Doppelpunkt. Und jetzt lassen Sie uns die Optionen
ausdrucken. Also werde ich mich für die gedruckte Version entscheiden. Und jetzt Nummer eins:
Generieren Sie einen Verschlüsselungsschlüssel. Okay. Und jetzt machen wir
mit Option Nummer zwei weiter, die darin besteht,
einfach
eine Datei zu verschlüsseln . Option Nummer drei
wird das sein, was verschlüsselt wird Datei. Und jetzt die letzte Option, die langweiligste
Option, beenden Sie das Programm. Okay, da ist es. Da wir nun
die vier Optionen haben, lassen Sie uns den
Benutzer auffordern,
uns mitzuteilen , welche Option er verwenden
möchte. Also werde ich jetzt
hierher kommen und mit der
Variablen oder Option weitermachen. Okay? Also sage ich Option
und jetzt gleich und jetzt Eingabe. Lassen Sie uns den
Benutzer bitten, uns mitzuteilen welche Option Sie mit dem
Fragezeichen wählen
möchten, okay? Also lass uns den Benutzer fragen
: Hey, was möchtest du tun? Jetzt müssen wir die IL-Anweisungen
für jede einzelne Option
erstellen . Lassen Sie uns also mit dem
ersten hier anfangen. Also werde ich sagen, wenn die
Option gleich eins ist, was wollen wir ganz einfach
machen, wir können unseren Schlüssel generieren. Also kann ich
jetzt hierher kommen und einfach sagen, Unterstrichtaste generieren, und jetzt in Klammern, wie heißt
der Schlüssel Das ist Verschlüsselung,
Unterstrich-Schlüssel, Punktschlüssel. Wir können die Funktion also
sofort ausführen, oder? Und das wird
einwandfrei funktionieren. Aber ich möchte dir etwas
zeigen, okay? Das ist nicht nötig. Aber was wäre, wenn wir dem Benutzer
die Möglichkeit
geben wollten , tatsächlich
seinen eigenen benutzerdefinierten Schlüssel zu verwenden und nicht nur den Standardschlüssel
, den wir bereits erstellt haben. Also geben wir dem
Benutzer zwei Optionen, okay? Sie können entweder
den Standardschlüssel verwenden, wir bereits haben, oder Sie können uns den Pfad zu
Ihrem eigenen Verschlüsselungsschlüssel mitteilen. Nun, wie würden wir das machen? Nun, ich habe
die Zeile hier schon geschrieben, okay? Also lass mich das einfach nehmen, schneiden. Ich werde hier
reinkommen und dann einfügen. Und lass mich dir erklären
, was hier passiert. Also müssen
wir das in den
Unterstrichpfad
der Variablendatei übergeben . Und jetzt Eingabe Fragen wir den Benutzer also, hey, geben Sie den Dateipfad ein,
um den Schlüssel zu speichern. Nun, hier drüben, wo es heißt Standardverschlüsselung unter dem Schlüssel immer noch
Teil der Zeichenfolge ist. Ich weise den Benutzer nur
darauf hin, dass hey, wenn Sie uns nicht Ihren eigenen benutzerdefinierten Schlüssel zur Verfügung stellen,
wir
den Standardschlüssel verwenden werden, bei dem es sich um
die Verschlüsselung
mit wir
den Standardschlüssel verwenden werden, bei dem es sich um dem Schlüsselpunktschlüssel handelt. Nun, das ist sehr wichtig, wo es heißt, oder Verschlüsselung
mit Schlüsselpunktschlüssel. Jetzt, genau hier,
sagen wir Python, dass, hey, für den Fall,
obwohl dem Benutzer
die Möglichkeit gegeben
wurde,
seinen eigenen benutzerdefinierten Schlüssel zu verwenden,
falls er unseren eigenen
Standardschlüssel verwenden möchte, ihn verwenden sollte obwohl dem Benutzer
die Möglichkeit gegeben
wurde ,
seinen eigenen benutzerdefinierten Schlüssel zu verwenden, . Also hier haben wir oder gesagt und jetzt
den Namen unseres Standardschlüssels. Alles, was wir
hier tun müssen, ist, nur
die Standardoption zu entfernen und dann einfach die Datei
im Scorepfad zu
übergeben. Und da hast du's. Also das ist Option Nummer
eins, alles geklärt. Gehen wir zu
Option Nummer zwei über. Ich werde hier
reinkommen und sagen,
L F, Wahl ist gleich zwei, Doppelpunkt Also hier drin möchten wir
die Datei verschlüsseln. Denken Sie jetzt daran, dass
wir drei Parameter benötigen, um die Datei zu
verschlüsseln wir drei Parameter benötigen Zunächst müssen wir den Benutzer bitten
,
uns die Datei mitzuteilen, die er verschlüsseln
möchte. Dabei handelt es sich um die Eingabedatei Und dann auch, wo der verschlüsselte Inhalt gespeichert werden soll Wie wird der
Name der Ausgabedatei lauten? Und drittens, welchen Schlüssel möchten sie für die Verschlüsselung verwenden
? Also werde ich jetzt
herkommen. Lassen Sie uns die
Variableneingabe bei der Punkteauswahl weitergeben. Oh, vergib mir. Es sollte die
LI-Option sein. Keine Wahl. Ich habe mich hinreißen lassen,
Option, keine Wahl. Also Eingabedatei eingeben. Verzeihen Sie mir, geben Sie die
Unterstrichdatei ein. Ich werde Gleichwertiges sagen. Und jetzt lassen Sie uns
den Benutzer auffordern,
uns den Namen der Dateien mitzuteilen uns den Namen der Dateien Ich werde sagen, geben Sie
den Pfad der
zu verschlüsselnden Datei ein, damit ich diese Nachricht
entfernen Geben Sie also den Pfad
der zu verschlüsselnden Datei ein. Okay? Also lassen Sie uns
den Benutzer dazu auffordern. Und dann wird
die Ausgabe in der Sco-Datei der Eingabe entsprechen. Lassen Sie uns nun
den Benutzer auffordern,
uns den Namen des Apple FS mitzuteilen . Ich werde sagen, gib den
Namen der Ausgabedatei ein. Spalte. Und jetzt, endlich, was ist mit dem Schlüssel? Ich werde den Schlüssel
zum Zielfernrohrpfad sagen. Okay, es wird
der Eingabe entsprechen. Und jetzt können wir sagen, geben Sie den Pfad des
Verschlüsselungsschlüssels ein. Andernfalls
wird die Standardeinstellung verwendet, okay? Also werde ich die
String-Anweisung hier vereinfachen. Ich werde
den Namen des Standardkindes nicht angeben. Ich glaube nicht, dass das nötig ist. Also alles, was wir
jetzt tun
müssen , ist nur, auch die Verschlüsselung oder zu sagen. Unterstreichen Sie die Taste mit dem Punkt. Und da hast du es, richtig? Also eine Sache
, die wir hier tun müssen,
ist, Fehler
zu berücksichtigen, okay? Was ist,
wenn der Benutzer vielleicht
die falsche Eingabedatei angegeben die falsche Eingabedatei oder der Name der
Ausgabedatei falsch ist oder vielleicht sogar der
Schlüssel nicht korrekt Was sollte passieren? Lassen Sie uns also jetzt die Option
anbieten, dem Rechnung zu tragen Also werde ich sagen, versuchen Sie es. Denken Sie daran, und jetzt ist Taste
gleich Lade-Unterstrichtaste. Und jetzt in Klammern
der Schlüsselpfad, okay? Und jetzt werden die wichtigsten Teile der Partiturdatei
verschlüsselt Und jetzt in Klammern, was
sind die drei Parameter? Wir haben die Eingabe in
der Partiturdatei, wir haben die Ausgabe,
in der Partiturdatei und jetzt haben wir auch den Schlüssel. Das sind also die
drei Parameter. Und wenn es einen Fehler gibt,
lassen Sie uns diesen generieren. Ich werde sagen,
außer Ausnahme. Okay, als E. Und jetzt können wir unsere Pfeilnachricht
ausdrucken. Also werde ich die F-Zeichenfolge
verwenden und dann bei der Verschlüsselung etwas
wie Pfeil sagen. Okay, Doppelpunkt und jetzt
können wir unsere farbigen Klammern verwenden , um anzugeben, was der
spezielle Fehler ist, und los geht's Wir haben also erfolgreich Option Nummer
zwei mit einem Benutzer
erstellt , der den Pfad der
Datei, die verschlüsselt werden soll, den Namen der Ausgabedatei und dann auch den Schlüssel angibt Und wir haben auch eine Fehlerbehandlung hinzugefügt
. Fantastisch. Jetzt werde ich mir nur
diesen Codeblock schnappen, okay? Und ich werde
es einfach einfügen, weil ich darüber nachdenke, okay? Die
Verschlüsselung und der Verschlüsselungsprozess sind fast identisch. Es ist genau das Gegenteil, oder? Also werde ich den
ganzen Codeblock kopieren und ich werde hierher kommen und jetzt werde ich ihn einfügen. Okay? Beachten Sie jetzt jedoch, dass der Einzug
nicht korrekt Stellen Sie also sicher, dass Ihr
Einzug korrekt ist,
wenn
Sie genau das
Gleiche tun wie ich Ihr
Einzug korrekt ist,
wenn
Sie genau das Stellen Sie sicher, dass alles richtig ausgerichtet
ist, und das sollte in Ordnung sein Okay, alles was wir
jetzt tun müssen , ist die
Optionen hier zu ändern, also Option Nummer
drei auf Nummer zwei. Eingabedatei, ich würde
sagen, geben Sie den Pfad der zu
der die Datei entschlüsselt werden soll Okay. Ausgabedatei. Geben Sie den Namen
der Ausgabedatei ein. Das ist in Ordnung. Geben Sie den Pfad
des Verschlüsselungsschlüssels ein. Ansonsten, okay, denken
Sie daran, dass der Verschlüsselungsschlüssel genau
dasselbe ist wie der
Entschlüsselungsschlüssel, sodass wir den Text hier nicht
ändern müssen Sie können es ändern,
wenn Sie möchten, aber ich werde es einfach so
lassen, wie es ist Und schließlich, okay, auch hier
drüben, wir müssen das nur ändern und schon ist die
Fehlerbehandlung intakt. Und noch eine Sache, die wir ändern
müssen
, ist hier drüben, wo die Verschlüsselungsdatei
steht Hier drüben sollte es eine Entschlüsselungsdatei
sein, okay? Sie möchten also sicherstellen, dass Sie
jedes Mal, wenn Sie
Code kopieren und einfügen und Text ändern
müssen,
sicherstellen, dass Sie ihn richtig
durchgehen Andernfalls könnten
Probleme auftreten. Okay, jetzt
müssen wir nur noch die vierte Option hinzufügen. Also werde ich hier
reinkommen und sagen,
dass Option gleich vier Wir können Xs im Programm drucken. Und jetzt werden wir auch
die Break-Anweisung haben,
denn denken Sie daran, dass,
obwohl wir dem Benutzer vier
Optionen zur Verfügung gestellt
haben, er vielleicht ziemlich albern wird und sich entscheidet,
Option Nummer fünf
oder sechs oder sieben oder eine
andere Option zu wählen oder sechs oder sieben oder eine
andere Option , die es noch nicht einmal gibt Also müssen wir auch
das berücksichtigen. Also sage ich Pause und gebe dann
die endgültige Erklärung ab. Und jetzt können wir einfach „
Drucken“ sagen und dann dem Benutzer sagen, er eine gültige Option wählen soll. Und da hast du es.
Und da ist es. Und jetzt müssen wir nur noch die Hauptfunktion ausführen, und da ist sie. Hoffentlich sollte das
Programm funktionieren. Lassen Sie mich jetzt weitermachen und das Programm
ausführen,
und los geht's. Okay, lassen Sie uns das testen. Ich werde zuerst mit Option Nummer eins beginnen und die Eingabetaste drücken. Ich verwende die
Standardeinstellung, also drücke ich
erneut die Eingabetaste . Und da
hast du's. Fantastisch. Sie können also jetzt sehen,
dass
wir den Verschlüsselungsschlüssel haben , der
vom Programm erstellt wurde. Lassen Sie uns nun versuchen, eine Datei
zu verschlüsseln. Also werde ich jetzt
hierher kommen und lassen Sie uns eine
D-TXT-Beispieldatei erstellen Lassen Sie uns hier etwas Text hinzufügen. Dies ist ein Beispieltext
, den wir
verschlüsseln und auch entschlüsseln Okay. Also lass uns sehen. Ich werde
jetzt weitermachen und zum Programm gehen. Lassen Sie uns jetzt mit Option
Nummer zwei fortfahren. Lassen Sie uns also versuchen,
unsere Beispiel-TXT-Datei zu verschlüsseln. Ich werde die
Eingabetaste drücken. Und jetzt, wie wird der
Name der Ausgabedatei sein? Nennen wir das die
verschlüsselte Aufrufdatei Punkt TXT. Lass uns gehen. Wir werden
den Standardschlüssel verwenden. Ich werde die
Eingabetaste drücken. Und da hast du's. Also lass uns einen Blick darauf werfen. Wir haben den unter
ScoefLed verschlüsselten Text, und da ist er Dies ist die verschlüsselte Version
unserer Beispieltextdatei. Lassen Sie uns nun versuchen,
die verschlüsselte Datei zu entschlüsseln und sehen, ob wir denselben Text
zurückbekommen Ich werde mich für
Option Nummer drei entscheiden. Geben Sie den Pfad
der zu entschlüsselnden Datei ein.
Sie wird
unter dem Punkt TXT verschlüsselt Und das wird der
Name der Ausgabedatei sein. Wir können es entschlüsselt nennen,
underscoFle dot TXT. Wir werden den Standardschlüssel
verwenden. Und das Oh, oh, oh, oh, tut mir leid, wir haben
eine Fehlermeldung. Da steht: Keine solche Datei, Dicture verschlüsselt mit
Underscoflt Was habe ich falsch gemacht? Wir haben Oh, siehst
du, was ich gemacht habe? Meine Datei heißt
verschlüsselt, nicht verschlüsselt. Ich entschuldige mich. Ich brauche
eine neue
Brille Ich entschuldige mich. Versuchen wir noch einmal, das
zu gewinnen. Also
Option Nummer drei. Also ist die Datei hier verschlüsselt. Ah, los geht's mit der Datei Punkt TxD. Jetzt der Name der Ausgabedatei, ich nehme entschlüsselt Ich habe eine Datei, Punkt TXT. Standardtaste, und los geht's. Okay,
schauen wir uns jetzt die entschlüsselte Datei an
und Sie können sehen, dass sie funktioniert Zuallererst haben wir den Beispiel-TXT-Code
verschlüsselt. Wir haben eine verschlüsselte Datei,
die Sie jetzt sehen können, und dann haben wir
diese Datei entschlüsselt, um genau die gleichen
Texte
zurückzubekommen, die Sie gerade sehen können funktioniert einwandfrei Versuchen wir Option Nummer
vier, um das Programm zu beenden. Okay, ich habe das Programm beendet. Lassen Sie uns das Programm noch
einmal ausführen und mit
Option Nummer sieben fortfahren. Und es heißt, bitte
wählen Sie eine gültige Option und los geht's. Also Whoa, wir haben uns auch erfolgreich eine Ver- und
Entschlüsselung Es war eine Menge, aber
hoffentlich haben Sie
einige neue Konzepte gelernt, hoffentlich haben Sie
einige neue Konzepte gelernt wie
z. B. die Verwendung der Modi „
Binär schreiben“ und „Binär lesen Sie haben auch gelernt,
wie Sie
dem Benutzer die Möglichkeit geben können dem Benutzer die Möglichkeit , seinen eigenen benutzerdefinierten Schlüssel
oder den Standardschlüssel zu verwenden. Und hoffentlich hast du in diesem Geldprojekt
viel gelernt. Vielen Dank fürs Zuschauen, und natürlich
sehen wir uns in der nächsten Klasse.
62. Oop-Abschnitt – Einführung: Ordnung, also willkommen
zum vielleicht letzten Abschnitt dieses
Kurses Und hier
sprechen wir über die OOP,
die objektorientierte Programmierung.
Klingt nach einem Schluck Klingt sehr kompliziert,
aber mach dir keine Sorgen. Ich werde hier alle
Grundlagen behandeln. Das wird also ein großes, großes,
großes Thema sein , denn ob Sie es
glauben oder nicht, wenn Sie OOP beherrschen, können
Sie einige wirklich
tolle Programme schreiben, okay? In diesem Abschnitt werden wir also lernen, was Objekte sind. Wir werden auch über
Unterricht sprechen, okay? Was ist also die Beziehung
zwischen einem Objekt und einer Klasse? Und natürlich wirst du etwas
über Methoden lernen. Ich werde Ihnen
viele Beispiele geben. Es wird auch ein paar
Programmierübungen geben. Sie werden auch
einige sehr wichtige Konzepte
wie Verkapselung,
Vererbung und
sogar Polymorphismus lernen wie Verkapselung, Vererbung und
sogar Polymorphismus Oh, was genau ist Polymorphismus? Das klingt sehr
kompliziert, oder? Es ist nicht so kompliziert, wie es sich anhört. Mach dir darüber keine Sorgen. Es wird also ein sehr,
sehr interessantes Thema sein, und ich freue mich sehr, Ihnen etwas über OOP
beizubringen. also wie immer,
ohne weitere Zeit zu verschwenden Lassen Sie uns also wie immer,
ohne weitere Zeit zu verschwenden, gleich
loslegen
63. Einführung in OOP: Kommen Sie zum brandneuen Abschnitt , in dem wir uns mit
objektorientierter Programmierung,
auch bekannt als OOP, befassen werden objektorientierter Programmierung,
auch bekannt als OOP, befassen . Okay, hier werden
wir uns einigen fortgeschrittenen
Aspekten der Programmierung befassen Aber keine Sorge,
ich werde hier sein, um es Ihnen auf die
einfachste Art und Weise zu
erklären Also, was genau ist OOP? Was Sie vor sich sehen, ist im Grunde eine Bibliothek, oder? Du hast alle möglichen Bücher. Sie haben Bücher
über Anthropologie, Archäologie, Biologie,
Chemie, Mathematik und so weiter Stell dir vor, du wärst der Bibliothekar. Sie waren die Person, die für all diese Bücher
verantwortlich war. Im Idealfall
bräuchten Sie natürlich ein System, um
diese Bücher zu verwalten, oder? Sie müssen wissen,
wo Sie die Bücher ablegen müssen. Sie müssen die
Eigenschaften jedes Buches kennen, wie, Sie wissen schon, den
Titel des Buches, den Autor des Buches. Und auch, ob
die Bücher verfügbar sind oder nicht, vielleicht sind sie entgratet,
du weißt schon, solche Sachen Stellen Sie sich vor, wir hätten
eine Klasse namens Buch eingerichtet, okay? Und wie ich schon sagte, kann
dieser Kurs
verschiedene Merkmale für jedes
Buch definieren verschiedene Merkmale , wie
den Titel des Buches, den Autor, das Genre, die Farbe
des Einbandes. Aber neben den physischen
Eigenschaften des Buches können
wir auch
über die Dinge sprechen
, die wir mit dem Buch machen können. Vielleicht kannst du dir das Buch ausleihen. Und wenn wir können, für wie lange können
wir uns das Buch ausleihen? Vielleicht können wir sogar
das Buch beißen und so weiter. Okay, denk an all
diese Attribute unter dem Klassenbuch. Okay? Nun, Dinge wie der
Titel, der Autor, das Genre, Dinge, die das Buch
physisch beschreiben, können
wir sie
Attribute nennen, oder? Wir haben in diesem Kurs
bereits über Attribute gesprochen. Aber dann
werden Methoden, Methoden beschreiben
, was wir
eigentlich mit jedem
Buch machen können . Kannst du Junge? Kannst du beißen? Im Grunde die Buchklasse definiert
die Buchklasse also sowohl die Attribute als
auch die Methoden. Mit anderen Worten, die Buchklasse ist wie eine
allgemeine Beschreibung
dessen , wie ein Buch
aussehen könnte und was wir
tatsächlich mit dem Buch machen können. Aber wir beziehen uns noch nicht auf
ein bestimmtes Buch. In Ordnung. Nun, jedes einzelne
Buch in der Bibliothek ist ,
was wir als
Objekt der Buchklasse bezeichnen Also noch einmal, die
Buchklasse wird
uns eine allgemeine Beschreibung
der Eigenschaften und
Methoden jedes Buches geben uns eine allgemeine Beschreibung
der , während die Bücher selbst,
die einzelnen Bücher, als
Objekte der Buchklasse bezeichnet
werden. Die
Objektattribute von Buch A könnten also zum Beispiel der
Titel Python-Programmierung sein. Der Autor könnte Jack sein, und dann
könnte die Farbe Blau sein, oder? Und dann schauen
wir uns Buch B an. Der Titel könnte
Cyber One on One sein. Die Autorin ist Alice
und die Farbe ist rot. Dies sind individuelle
Attribute jedes Buches, und die Attribute
haben ihre eigenen Werte. Der Wert des
Attributs Farbe für Buch A ist
beispielsweise blau, rechts usw. den Methoden können wir
zum Beispiel auch sagen, dass Buch A
eine Methode namens Borrow hat Sobald
das Buch
ausgeliehen wurde, muss
die Bibliothek die Datensätze
aktualisieren, um anzuzeigen, dass das Buch nicht
mehr
ausgeliehen werden kann Stellen Sie sich auch vor, Buch B in der Vergangenheit ausgeliehen
worden, aber jetzt wurde es zurückgegeben Wir können dann Buch
B wieder als verfügbar markieren. Das sind also Methoden, das
sind Attribute. Um Ihnen eine kurze Zusammenfassung zu geben Die Klasse ist quasi
die allgemeine Beschreibung des Buches, in dem die Attribute
und Methoden definiert sind Das Objekt ist eine Instanz. Im Grunde ein bestimmtes
Buch in einer Bibliothek, ein bestimmtes Objekt unter
der Klasse, die Buchklasse. Attributen handelt es sich um physische
Beschreibungen der einzelnen Bücher, wohingegen Methoden, die auch als Aktionen
bezeichnet werden, gut geeignet sind im Grunde die
Aktionen, die an jedem Buch
ausgeführt werden können . Also ein Video von Jerman Vernick in dem wir uns einige Beispiele ansehen
64. Erstellen eines Grundkurses: Wir werden
jetzt einen Code erstellen, der auf
dem vorherigen Beispiel
basiert, das ich Ihnen in Bezug auf
die Bibliothek, die Bücher und
die
mit jedem Buch verbundenen
Attribute und
Methoden gegeben habe Bücher und
die
mit jedem Buch verbundenen
Attribute und Methoden Als Erstes müssen
wir also
das Klassenbuch definieren. Also sage ich Klassenbuch und so würden wir
die Klasse mit dem Namen Buch
ganz einfach erstellen . Die Sache ist die,
wir müssen
die Attribute angeben , die
mit jedem
Objekt des Buches
verknüpft werden sollen . Okay? Also, um das zu tun, werde
ich das Bußgeld sagen. Und jetzt, darin,
Underscore, Underscore. Und jetzt, innerhalb der Klammern, werden wir hier
angeben, welche Attribute mit den einzelnen Büchern verknüpft werden Normalerweise fängt man
mit etwas an, das man Selbst nennt. Okay? Das ist in der objektorientierten
Programmierung sehr, sehr verbreitet, okay? Selbst ist also eine Möglichkeit, sich auf
jedes einzelne Objekt der
Klasse zu beziehen , mit der wir es zu tun haben. In diesem Fall wird
es im Moment jedes
einzelne Buch sein. Sie beginnen also immer mit
sich selbst und jetzt mit dem eigentlichen Attribut. Also nehme ich Titel und Autor und fügen noch einen hinzu.
Sagen wir Genua. Okay? Warum nicht? Genua, Colon. So weit, so gut.
Okay. Jetzt müssen wir
jedem unserer Attribute Variablen zuweisen. Also werde ich damit beginnen
, Self Dot Title zu sagen. Siehst du, wie das jetzt
funktioniert? Self-Punkt-Titel entspricht Titel. Können Sie sich nun vorstellen, dass der
nächste Self-Punkt-Autor
gleich Autor ist? Und dann wiederum entspricht Self Dot
Gena dem Genre. So weit, so gut. Ich werde
noch ein Attribut hinzufügen. Es ist technisch gesehen kein
Attribut , das wir bisher definiert haben, aber es wird nützlich sein,
sobald wir anfangen,
die Methoden zu entwickeln , die wir auf das Buch
anwenden werden, okay? Und das heißt, wir wollen
angeben, ob ein Buch
ausgeliehen werden kann oder nicht Also sage ich
Self Dot Available. Ordnung,
sagen wir, Self ist okay, ist in der Partitur verfügbar, okay? Wir wollen das gleich am
Anfang so
initialisieren , dass es wahr ist, okay? Also ganz am Anfang alle Bücher
ausgeliehen werden, okay? Jetzt haben wir die
Attribute, Titel, Autor, Gena definiert. Wir haben auch
eine der Methoden hinzugefügt, einen der Parameter,
die wir in unseren Methoden verwenden werden, nämlich ob
das Buch verfügbar ist oder nicht Lassen Sie uns nun die
eigentlichen Methoden selbst definieren. Und der, mit dem
wir uns
hier befassen werden , wird der Kredit sein Also werde ich „leihen“
sagen und jetzt in Klammern „Ich selbst“, okay Wir erstellen eine Methode, die wir auf das Objektbuch anwenden können Nehmen wir also an,
was sollte passieren, wenn das Buch tatsächlich verfügbar ist? Also werde ich sagen, ob es, wenn selbst
darauf beziehe, was das Buch ist, tatsächlich erhältlich ist?
Was machen wir? Denken Sie daran, dass
wir, sobald
das Buch ausgeliehen werden kann, die
Aufzeichnungen in der Bibliothek aktualisieren müssen, um darauf hinzuweisen, dass das
Buch nicht mehr
verfügbar ist , weil es jetzt
nur ausgeliehen wurde, oder? Also sagen wir,
Self Dot ist verfügbar, sollte nicht bedeuten Falsch, weil es nicht
mehr verfügbar ist. Okay? Schau dir Zeile 11 noch einmal an. Das liegt daran, dass das
sehr, sehr wichtig ist, okay? Genau hier, wir machen das
zum allerersten Mal, jemand möchte sich dieses Buch
ausleihen, vielleicht nicht zum
ersten Mal, aber das Buch ist derzeit erhältlich.
Was sollte also passieren? Wir sollten sagen, okay, wir sollten die Aufzeichnungen aktualisieren, um anzuzeigen, dass das Buch nicht mehr verfügbar
ist, und uns dann etwas
ausdrucken lassen, okay? Sagen wir drucken. Und jetzt verwende
ich in Klammern
die F-Zeichenfolge, weil ich
auf den eigentlichen Titel
des
ausgeliehenen Buches verweisen möchte auf den eigentlichen Titel
des
ausgeliehenen Buches verweisen des
ausgeliehenen Buches Also werde ich meine College-Zahnspange öffnen und Self-Punkt sagen Was für ein Punkttitel. Okay. Und jetzt können wir
eintippen, was auch immer es ist, wir wollen es uns ausgeliehen haben Okay? Bei den
Schlusscodes. Und da ist es. Zwei Dinge sollten also passieren, wenn das Buch
ausgeliehen werden kann Zuallererst müssen wir die Aufzeichnungen
aktualisieren,
um darauf hinzuweisen, dass
das Buch nicht mehr
verfügbar ist , weil es
jetzt ausgeliehen wurde Und dann sollten wir die Nachricht
ausdrucken dass das Buch ausgeliehen
wurde Ese, wofür ist die
Aussage hier? Warum geben wir se an? Wir müssen se angeben, weil
in Zeile 11, wo es heißt: „ Wenn Self
gerade zu diesem Zeitpunkt verfügbar ist“, das Programm davon aus, dass das Buch derzeit verfügbar ist. Aber was wäre, wenn in einem Szenario, in
dem der Bibliotheksbenutzer ein
Buch ausleihen
möchte, das
eigentlich gar nicht verfügbar
war eigentlich gar nicht verfügbar Das ist es, wofür die Ls-Aussage
hier stehen wird. Also, falls das Buch ursprünglich nicht
verfügbar war, einfach drucken, drucken, drucken. Und dann können wir einfach sagen, es tut uns leid. Dieses Buch ist
derzeit nicht verfügbar. Und ich habe vergessen, das in Anführungszeichen zu
setzen. Leider ist dieses Buch
derzeit nicht verfügbar. Natürlich können wir
auch die F-Zeichenfolge
und den Selbsttitel verwenden , um auf
den tatsächlichen Namen des Buches zu verweisen, aber das ist nicht notwendig. Aber ich möchte nur sagen,
Entschuldigung, dieses Buch ist derzeit
nicht verfügbar. Okay. Fantastisch. Lassen Sie uns nun eine andere Methode
definieren , nämlich die
Rückgabe des Buches. Wir können uns das Buch also ausleihen,
aber wir können es auch zurückgeben. Also werde ich sagen, definiere die
Rendite für das Notenbuch selbst. Also haben wir die
Funktion der Methode
Return On score
Book und dann self angegeben . also in diesem Fall jetzt passieren, Was sollte also in diesem Fall jetzt passieren, wenn das
Buch zurückgegeben wurde? Jetzt sagen wir, dass
Self Dot ist verfügbar jetzt dem Wert
Wahr entsprechen
sollte , weil das Buch jetzt verfügbar
ist. Und lassen Sie uns
gleich weitermachen und
eine Nachricht ausdrucken und sagen,
lassen Sie uns auch darauf verweisen. Also sage ich F-String und dann wurde der Name des
Buches zurückgegeben. In Ordnung? Also lass uns das versuchen. Lass es uns in die Tat umsetzen, okay? Also werde ich den
ganzen Weg hierher kommen. Nehmen wir an, der Buchunterstrich A entspricht jetzt dem eigentlichen
Objekt namens Und jetzt lassen Sie
uns zunächst den Namen und
den Titel des
Buches angeben , also sagen wir Python eins zu eins. Okay? Was kommt als Nächstes, der Autor? Nennen wir die Autorin also Alice. Okay? Und was wird dann
das Genre sein? Sagen wir Programmieren, oder? Programmieren. Okay? Und jetzt lassen Sie uns ein anderes Objekt erstellen. Dieses Objekt wird in der Partitur
durch Buch dargestellt, B ist gleich, und jetzt wieder Buch, und jetzt in Klammern, und jetzt in Klammern, sagen
wir Cyber
Zwei oh eins, okay? Und dann wird der Autor
hier
Jack sein und was wird dann
das Genre sein? Sagen wir einfach Technik,
Technologie, richtig? Technologie sollte das Genre sein. Und da ist es. Also werde ich den ganzen Weg hierher
kommen. Und jetzt rufen wir
die Methoden auf, okay? Wir haben jetzt alles
an seinem Platz. Lassen Sie uns unsere Methoden nennen,
die natürlich ausleihen und dann zurückgeben Ich kann also sagen, zuerst Buch, unterstreichen Sie einen Punkt „
Leihen In Ordnung? Also zuerst werden
wir uns das Buch ausleihen Und dann lass mich das Programm ausführen. Siehst du
gerade, es heißt: Okay, Python eins oh eins wurde
geliehen, weil hier drüben wird
es online 11
anzeigen Es wird gleich zu Beginn
darauf hinweisen, dass, okay, das Buch verfügbar ist Es wurde jetzt ausgeliehen, also müssen wir die
Aufzeichnungen aktualisieren, um zu sagen, dass es falsch ist Und jetzt werden wir sagen, dass
das Buch ausgeliehen wurde. Aber zum jetzigen Zeitpunkt ist
das Buch nicht verfügbar, oder? Lassen Sie uns also
die L-Aussage ins Visier nehmen. Es sollte jetzt gedruckt werden. Leider ist
dieses Buch
derzeit nicht verfügbar, wenn ich die Methode erneut ausführe. Was ist, wenn jetzt jemand anderes
reinkommt und sich das Buch
ausleihen möchte , das
bereits nicht verfügbar ist Was wird passieren? Ich
werde das Programm ausführen. Und jetzt siehst du es
sagen, es tut mir leid, dass dieses Buch derzeit nicht verfügbar
ist. Okay. Aber was ist, wenn
ich das Buch jetzt zurückgebe? Was wird es
sagen? Es wird sagen, dass Python eins zu eins zurückgegeben
wurde. Und jetzt, wenn ich die
Return-Methode erneut ausführe, tut es mir leid, die Borrow-Methode
erneut, noch einmal Wollte es
sagen? Es wird heißen, dass Python 11 ausgeliehen wurde Sie können also jetzt sehen,
dass es einwandfrei funktioniert. Um Ihnen eine
kurze Zusammenfassung zu geben, mussten
wir zunächst eine Klasse
namens Book erstellen. Jetzt müssen
wir
die Attribute definieren, müssen
wir
die Attribute definieren die
mit jedem Buch verknüpft sind Und das haben wir getan, indem wir gesagt haben, definiere die
Punktzahl in der Partitur und dann die Parameter oder
Attribute in Klammern Und dann haben wir
jedem Attribut
einen Wert zugewiesen , sodass Selbst oder Titel
gleich Titel sind, Self Dot Autor
gleich Autor Self Dot Genre Gena entspricht Und dann haben wir hier auch eine
Methode entwickelt, angibt, ob
wir uns das Buch ausleihen können oder nicht Das ist also im Grunde
ein boolesches Attribut. Wir sagten, okay, Self Dot ist am Anfang
verfügbar
sollte gleich true sein Und jetzt haben wir zwei
verschiedene Methoden entwickelt. Die erste hier
wäre die Ausleihe. Was passiert also, wenn
ein Buch ausgeliehen wird? Wenn es ursprünglich verfügbar war, aktualisieren
wir die Datensätze und sagen, dass Self is available nicht mehr
verfügbar ist. Es ist also falsch Und dann sollten wir den Titel
ausdrucken, auf dem steht, dass dieses Buch
leider ausgeliehen
wurde Buch jedoch Wenn das Buch jedoch ursprünglich bereits
ausgeliehen wurde, sollten
wir es einfach ausdrucken Leider ist dieses Buch
derzeit nicht verfügbar Und dann die zweite Methode, was passiert, wenn das
Buch zurückgegeben wird Wir sollten jetzt unsere
Aufzeichnungen erneut aktualisieren, um anzuzeigen, dass Self is
available jetzt wahr ist, und wir können den Namen des Buches ausdrucken , in
dem steht, dass es zurückgegeben
wurde. Und schließlich lernen
wir, wie man einzelne Objekte
in einzelnen Büchern
erstellt. Wir können einfach sagen, dass
Buchunterstrich A gleich Buch ist, und dann müssen
wir in Klammern die
Werte für die Attribute eingeben Und dann haben wir ein
weiteres Buch geschrieben, Buch B, das Cyber
to One Jack Technology ist Und dann nannten wir die Methoden, und
das war so ziemlich alles. Also danke, dass du dir das
Video angesehen hast. Wir sehen uns in
der nächsten Klasse.
65. Erstellen eines einfachen Kurses Teil 2: Bevor wir
zu einer neuen Lektion
in objektorientierter Programmierung übergehen , möchte
ich Ihnen noch
ein Beispiel geben ,
damit Sie wirklich verstehen, was
wir tun. Lassen Sie uns also eine
andere Klasse erstellen. Okay? Lassen Sie uns etwas tun, das
mit Cybersicherheit zu tun hat. Nehmen wir zum Beispiel an,
wir wollten
eine Klasse namens User erstellen , okay? Und die Benutzerkonten werden unterschiedliche Attribute
haben, wie den Benutzernamen, die Rolle, okay? Und dann lassen Sie uns auch eine Methode
erstellen. Sagen wir zum Beispiel,
was kann der Benutzer tun? Der Benutzer kann sich anmelden. Okay? Also lass uns das machen. Also werde ich diesen
ganzen Code entfernen. Und ganz oben werde
ich einfach Benutzerklasse
sagen. Okay? Also, wie
erstellen wir unseren Benutzer? Wir sagen Klasse und dann
Benutzerdoppelpunkt. Und was machen wir jetzt? Wir müssen
die Attribute definieren, die jedem Benutzerkonto zugeordnet
werden. Also werde ich sagen, definiere Unterstrich darin. Zur Partitur Und jetzt in Klammern,
was haben wir? Wir haben uns selbst, weil
wir auf jedes
einzelne Benutzerkonto
verweisen müssen . Also sage ich selbst,
und dann werden die Attribute
Benutzername sein , und lassen Sie uns
einfach mit der Rolle weitermachen? Noch eins. Rolle. Kalt
an und das war's. Was wird als Nächstes
zu tun sein? Als Nächstes müssen wir
nun jedem
unserer Attribute
Variablen zuweisen . Also werde ich sagen, Self
Dot Use a Name ist gleich, benutze einen Namen. Ziemlich
einfach Und dann sollte Self Dot Roll gleich welcher Rolle
sein. Da ist es. Okay, wir haben also die Attribute
definiert. Also, was ist mit den Methoden? Lass uns nur eine
Methode namens Log in erstellen, okay? Ein Benutzer kann sich also tatsächlich anmelden. Also werde ich
Tod sagen und mich dann einloggen. Und dann in Klammern,
was wird es sein? Es wird ich selbst sein. Es selbst. Dickdarm. Und was sollte nun passieren, wenn sich ein
Benutzer angemeldet hat? Lassen Sie uns eine Willkommensnachricht ausdrucken. Also werde ich
die F-String-Codes verwenden, und dann können wir sagen,
Willkommen, und dann lassen wir unseren Python den Rest
der Informationen genau
dort eingeben . Also willkommen. Und dann Eigenbenutzername. Und da ist es, das ist
alles, was wir tun müssen. Und jetzt, zu guter Letzt, lassen Sie uns ein Objekt erstellen, im Grunde ein Benutzerkonto, und
dann rufen wir unsere Methode auf. Kunst? Also ich sage
admin für den Score-Benutzer, das kann
unser erstes Konto das für einen Admin sein wird. Es wird
gleich welchem Benutzer sein. Und jetzt
müssen wir in Klammern die Werte
der
Attribute username und roll eingeben . In diesem Fall wird der Benutzername im
Moment also Alex sein. Okay? Nutzername ist Alex. Sorry Encodes, Alex,
und dann ist die Rolle von Alex offensichtlich die
eines Administrators Also Administrator. Okay. Und dann rufen
wir zum Schluss unsere Methode auf. Es wird also Admin
Scouser Dot Log in Brackets sein. Und wenn dieses Programm funktioniert, sollte
es
so etwas wie heißen: Willkommen Alex Lass uns rennen. Und da hast du's. Willkommen, Alex. Das war also
ein weiteres Beispiel dafür, wie
man eine Klasse erstellt, wie man die Attribute
für jedes Objekt in dieser Klasse definiert . Und dann haben wir auch eine Methode
für jedes einzelne Objekt
erstellt . Und dann haben wir natürlich ein aktuelles Objekt
erstellt und dann schließlich die dem Objekt
zugeordnete Methode
aufgerufen . Hoffentlich haben Sie jetzt ein
besseres Verständnis von OOP. Danke, dass du dir das
Video angesehen hast. Wir sehen uns in der nächsten Klasse.
66. Verkapselung (1080p): Eines der grundlegenden
Konzepte der objektorientierten
OOP-Programmierung ist die
sogenannte Kapselung, was sich im Grunde darauf bezieht, bestimmte Daten geheim zu halten
, sodass sie nur auf bestimmte Weise abgerufen
oder geändert werden können Nun, das ist in der
Cybersicherheit sehr nützlich, weil es uns
ermöglicht, sensible
Daten wie Passwörter zu schützen, okay? Als Beispiel könnten
wir eine Klasse und
Objekte schreiben oder
erstellen, könnten
wir eine Klasse und
Objekte schreiben oder
erstellen die das Passwort
eines Benutzers
privat speichern und dann nur eine Möglichkeit
bieten, zu überprüfen, ob das eingegebene Passwort tatsächlich korrekt
ist. Lassen Sie mich Ihnen also zeigen, wie wir Daten mithilfe von
OOP kapseln können. Ich werde
genau die gleiche Klasse behalten, okay? Also Klassenbenutzer, ich werde die
attributive Rolle in Passwort ändern Okay? Und dann werde
ich hier
natürlich unsere
Selbstpunkt-Rolle in Passwort ändern, und das
wird dann auch unserem Passwort entsprechen . Die einzige Möglichkeit, Python
mitzuteilen, dass, Hey, dieses spezielle Attribut, wir wollen, dass es privat ist. Das sind keine öffentlichen Informationen. Dies ist
nur für den Benutzer privat. Und das können wir tun, indem
wir hier vor das P für das Passwort setzen und dann doppelte Unterstriche
hinzufügen Also das hier, die doppelten Unterstriche werden Python
anzeigen, dass, Hey, das ist ein
privates Attribut Wir wollen die Informationen hier zusammenfassen
. Lassen Sie uns nun
eine Methode erstellen , mit der wir überprüfen
können, ob die vom Benutzer
eingegebene Eingabe
tatsächlich mit dem tatsächlichen
Passwort für diesen Benutzer übereinstimmt oder nicht tatsächlich mit dem tatsächlichen
Passwort für diesen Benutzer übereinstimmt Also, was ich jetzt
tun werde, ist , unsere Methode zu definieren und sie authentifizieren zu nennen, okay? Also definiere authentifizieren Und jetzt in Klammern nehme
ich mich
selbst und Passwort, okay? Und wir tun
das, weil sich self hier auf den Benutzer
bezieht, dessen Passwort wir tatsächlich überprüfen
wollen, und dann auf das Passwort selbst,
das wir überprüfen, okay? Und das ist jetzt der Schlüssel. Wir müssten zurückkehren
und jetzt Osco selbst eintippen, das Passwort
entspricht jetzt dem Passwort Wir wollen also überprüfen, ob das
Passwort, das für
den Benutzer gespeichert ist
, mit dem Passwort identisch ist, das als Eingabe
angegeben wurde Genau das wird das
hier tun, Zeile acht. Wenn das Passwort also übereinstimmt, Zeile acht wahr zurück, aber wenn
es keine Übereinstimmung gibt, wird falsch zurückgegeben. Okay? Jetzt müssen wir also unsere Benutzerobjekte erstellen
und sicherstellen, dass der Einzug bei der
Erstellung von
Benutzerobjekten natürlich außerhalb liegt Es sollte sich auf
demselben Einzug
wie die Klasse selbst befinden, okay? Mach es nicht innerhalb der Klasse, sondern draußen.
Es muss passen, okay? Also hier drüben
werde ich nicht sagen, dass Benutzer gleich ist, und jetzt Benutzer, also sagen wir, wir
müssen einen Benutzernamen angeben Lass uns einfach mit dem Gast gehen, okay. Lass uns einfach mit dem Gast gehen.
Etwas ganz Einfaches, Gast. Und jetzt zum Passwort, ich nehme
S und sage dann SOD,
Fish, eins, zwei, drei, okay? Also das ist das
Passwort, das wir
für unseren Benutzergast erstellt haben , okay? Ordnung. Lassen Sie uns nun versuchen, den Benutzer mit
verschiedenen Passwörtern zu
authentifizieren, okay? Versuchen wir also,
das richtige Passwort und dann
das falsche Passwort zu verwenden , okay? Also, wie werden
wir unsere Methode nennen? Ich werde Drucken sagen. Und jetzt in Klammern,
Benutzer-Punkt authentifizieren. Also rufen wir gerade
die Methode auf unseren Benutzer zu authentifizieren Und in Klammern
möchten wir das Passwort angeben, das
wir überprüfen möchten Also, das Passwort
ist jetzt hier drin ,
lass mich das richtige nehmen. Es wird derselbe SOD sein, Fisch eins, zwei, drei, richtig Und dann Brackets, okay? Wenn ich das Programm jetzt starte, und oh, Zeile 12 ist
eine Fehlermeldung. Oh, wir sollten hier eine
zusätzliche Klammer haben. tut mir leid. Lass mich
versuchen, es noch einmal laufen zu lassen. Und da hast du's. Jetzt heißt
es also wahr, weil
das Passwort hier, StFish 123, dasselbe ist wie das tatsächliche Passwort, das
wir dem Benutzer gegeben haben Jetzt werde ich einfach
diese Zeile kopieren , okay, kopieren, einfügen Und jetzt lassen Sie uns versuchen,
ein anderes Passwort zu verwenden. Also nehme ich einfach die
Hauptstadt A, BC, eins, zwei, drei und okay, das war's. Also lass mich jetzt weitermachen. Führen Sie das Programm erneut aus, und
jetzt können Sie sehen, dass es falsch
ist, weil unsere Methode überprüft
hat, dass ABC 123
nicht gleich SotFish 123 ist Auf diese Weise können wir Daten
mithilfe der objektorientierten
Programmierung
kapseln . Alles, was wir tun müssen,
um anzugeben, dass ein bestimmtes Attribut
privat ist, das wir
kapseln möchten , ist,
die doppelten Unterstriche vor dem eigentlichen Attributnamen zu die doppelten Unterstriche vor dem eigentlichen Daten
mithilfe der objektorientierten
Programmierung
kapseln. Alles, was wir
tun müssen,
um anzugeben, dass
ein bestimmtes Attribut
privat ist, das wir
kapseln möchten, ist,
die doppelten Unterstriche vor dem eigentlichen Attributnamen zu setzen. Also D's, danke, dass du dir das Video angesehen hast. Wir sehen uns in
der nächsten Klasse.
67. Vererbung: Ein sehr wichtiges Konzept der objektorientierten Programmierung
wird das Konzept
der Vererbung sein. Und genau wie in der
englischen Sprache wissen
wir, dass Vererbung
bedeutet, wenn, Sie wissen schon, etwas von
einer Person zur anderen weitergegeben wird, oder? In Python
können wir also tatsächlich
spezielle Versionen einer Klasse erstellen spezielle Versionen einer Klasse ohne Code neu schreiben
zu müssen Wir können grundsätzlich eine
untergeordnete Klasse erstellen, die
Attribute und Methoden
von einer übergeordneten Klasse erben kann Attribute und Methoden
von einer übergeordneten Also ich möchte dir hier ein
Beispiel geben, okay? Da wir es
mit dem Klassenbenutzer zu tun haben, natürlich in Systemen
und Netzwerken haben
wir
natürlich in Systemen
und Netzwerken unterschiedliche
Berechtigungsstufen, oder? Ein normaler Benutzer kann möglicherweise auf bestimmte Arten von Dateien
zugreifen
und diese Dateien dann drucken, während ein Admin-Benutzer genau die gleichen Dinge
tun kann wie ein normaler Benutzer. Aber weil sie
ein Admin-Benutzer sind, werden
sie zusätzliche Rechte haben,
wie
zum Beispiel sagen zu können, dass sie
diese Dateien bearbeiten können, oder? Also, was ich
jetzt tun werde, ist,
eine Klasse für den normalen Benutzer zu erstellen eine Klasse für den normalen Benutzer aber dann werde ich eine
weitere Klasse erstellen, den Admin-Benutzer, der die Methoden
vom regulären Benutzer
erbt Also hier drüben
haben wir einen Klassenbenutzer, und jetzt definiere ich
ein grundlegendes Attribut, und das wird
der Benutzername sein, okay? Der nächste Schritt besteht also darin,
einfach zu sagen Selbstpunkt-Benutzername
gleich gleich ist, und dann natürlich der Benutzername Jetzt möchte ich hier
eine Methode speziell
für unseren Benutzer erstellen . Also werde ich definieren sagen, und sagen wir, ein normaler
Benutzer kann sich anmelden, oder? Sie können sich anmelden. Also
werde ich sagen, logge dich ein. Und jetzt sage
ich in Klammern Ich. Okay? Und wenn sie sich dann
einloggen, lass uns einfach etwas tun. Sagen wir, druckt und dann hat sich der
Eigenbenutzername angemeldet. Nehmen wir an, er hat hier etwas Platz
, hat sich angemeldet. Okay. Bisher haben wir
hier die Benutzerklasse mit
dem
Attribut username erstellt . Wir haben auch eine
Methode namens Log in zugewiesen,
die im Grunde den Namen des
Benutzers ausgibt, der sich angemeldet hat. Ich werde
jetzt jedoch eine weitere Klasse erstellen , die
nicht nur das Attribut
username von der Benutzerklasse erbt , sondern auch die Methode login Wie werde ich das machen?
Ich werde herkommen und dann die
Absicht erkennen, dass ich ganz draußen bin Ich sage jetzt Klasse
und gebe den
Namen dieser neuen Klasse Also werde ich Admin sagen. Und dann können wir als Beispiel sogar
Admin-Benutzer sagen. Lassen Sie uns eigentlich einfach bei Admin
bleiben, okay? Also admin, und jetzt in Klammern sage
ich Benutzer. Dickdarm. Also genau hier in Zeile neun haben
wir eine neue
Benutzerklasse namens
admin user erstellt , die das Attribut, den
Benutzernamen und dann die Methode zur
Anmeldung von der Benutzerklasse erbt Benutzernamen und dann die Methode zur
Anmeldung von der Benutzerklasse Ich gehe noch einen Schritt
weiter und füge jetzt
eine zusätzliche Methode hinzu,
da es sich um einen Admin-Benutzer handelt , der zusätzliche Dinge tun
kann Also werde ich sagen,
definiere, lass uns
das Zugriff auf die sogenannten
Logs nennen , weil sie Admin sind, sie können auf die Logs zugreifen. Also
sage ich selbst, ruf an. Und jetzt drucken wir einfach
print in Klammern. Ich kann die F-String verwenden und sagen wir so
etwas wie den Selbstpunkt. Der Benutzername greift auf die Protokolle zu. Und da ist es. Und da hast du's. Wir sind fertig. Also werde
ich jetzt unseren Admin-Benutzer erstellen. Also werde ich
sagen, dass Admin gleich ist, und jetzt in Capital Admin-Benutzer Und dann
geben wir in Klammern den Benutzernamen admin an. Okay? Und jetzt lassen Sie
uns die Methoden ausführen. Also werde ich
Admin-Punkt Login-Klammern sagen. Und lassen Sie uns auch
die zweite Methode ausführen, nämlich Admin Dot, Access Underscore
Logs. Und hier ist sie Lassen Sie uns jetzt sehen, ob das
tatsächlich funktionieren würde. Lass uns rennen. Und oh, ich habe noch einen
Arrow-Admin. Oh, ich entschuldige mich. Es sollte Admin hier drüben sein. Ich habe mich mitreißen lassen. Admin ist gleich Admin und dann
verwenden sie den Namen Admin Ich entschuldige mich. Lassen Sie mich
das Programm noch einmal ausführen Und los geht's, in Ordnung,
also der Administrator hat sich angemeldet, und jetzt
greift der Admin auf die Protokolle zu, und das ist im Grunde alles. Wir mussten also nicht angeben
, dass der Admin-Benutzer, die Klasse admin,
den Parameter oder das
Attribut Benutzername
oder die Methode zur Anmeldung haben wird den Parameter oder das
Attribut Benutzername . Alles, was wir tun mussten, war Python mitzuteilen, dass, Hey, dieser neue Klassenadministrator
tatsächlich
die Attribute und Methoden
der ursprünglichen Benutzerklasse erbt die Attribute und Methoden
der ursprünglichen Benutzerklasse Und das ist Vererbung für dich. Danke, dass du dir das
Video angesehen hast. Wir sehen uns in der nächsten Klasse.
68. Polymorphismus: Ein anderes Konzept innerhalb von OOP ist das Konzept des Polymorphismus, das im Grunde
dieselbe Aktion, aber unterschiedliches Verhalten bedeutet dieselbe Aktion, aber unterschiedliches Verhalten Die Sache mit Polymorphismus
ist, dass er
Klassen erlaubt, Methoden
mit exakt demselben Namen zu haben,
sich dann Klassen erlaubt, Methoden
mit exakt demselben Namen zu haben, aber unterschiedlich zu verhalten. Wenn wir uns zum Beispiel immer noch mit
der Benutzerklasse befassen, können
wir verschiedene
Benutzertypen haben, die sich
auf unterschiedliche Weise anmelden auf unterschiedliche Weise Lassen Sie uns als Beispiel
unterschiedliche Regeln verwenden. Also werde ich eine Klasse für
den normalen Benutzer und dann eine
Klasse für den Admin-Benutzer
erstellen , und dann werden
sie einzigartige Möglichkeiten
haben sich tatsächlich anzumelden. Also schau dir das an, okay. Ich werde jetzt
hier reinkommen und einen normalen Benutzer für die Klasse erstellen. Okay. Und jetzt definiere ich ganz einfach die Methode, Anmeldung und das Selbst, okay? Beachten Sie, dass ich
keinerlei Attribute übergeben habe. Ich gehe einfach direkt
zur Methode über, okay? Ich werde jetzt einfach sagen,
dass ich jetzt
drucken sage. Ich würde einfach sagen , dass sich ein
regulärer Benutzer angemeldet hat. Okay? Nun, sieh dir das an, ich werde
eine weitere Klasse erstellen und das nennen wir
den Admin-Benutzer. Okay, ruf an und jetzt nochmal, definiere und jetzt genau
dieselbe Methode, melde dich selbst an. Aber jetzt wird es
eine andere
Drucknachricht sein , weil ich jetzt sagen
werde , dass der Administrator
sich angemeldet hat. Und lass mich das einfach schließen und da ist es. Nun zum
eigentlichen Polymorphismus, ich werde ihn nutzen,
lassen Sie uns Benutzer so zuweisen, dass er normalen Benutzern
entspricht Lassen Sie uns hier unsere
ersten Objekte
für den normalen Benutzer erstellen für den normalen Lassen Sie uns auch ein Objekt
für den Admin-Benutzer erstellen ,
und natürlich nenne
ich dieses Objekt Admin-Benutzer, und das ist es auch Also haben wir Objekte für
den normalen Benutzer
und den Admin-Benutzer erstellt den normalen Benutzer
und den Admin-Benutzer Nennen wir sie jetzt. Also werde ich sagen, dass sich der
Benutzer einloggt. Brackets und jetzt auch
Admin-Punkt Log N. Und los geht's. Lassen Sie uns nun versuchen, das
Programm auszuführen, und da ist es, ein normaler Benutzer hat sich angemeldet, Administrator hat sich angemeldet. Das ist also das Konzept des Polymorphismus, bei dem man zwei verschiedene
Klassen haben kann Mit genau derselben Methode, aber diese Methode verhält
sich unterschiedlich,
je nachdem, welches
bestimmte Objekt
oder Klassenobjekt diese Methode
aufruft Die hier verwendete Methode
ist offensichtlich die Login-Methode. Sie gilt sowohl für
den normalen Benutzer
der Klasse den Benutzer des Klassenadministrators, aber sie wird sich unterschiedlich
verhalten da sie je nachdem,
welches Klassenobjekt
tatsächlich angemeldet ist,
eine andere Nachricht ausgibt je nachdem,
welches Klassenobjekt
tatsächlich angemeldet ist,
eine andere Nachricht . Das ist also Polymorphismus für dich. Gleiche Aktion, anderes Verhalten. Danke, dass du dir das
Video angesehen hast. Wir sehen uns in der nächsten Klasse.
69. Vorschau des endgültigen Projekts: Also willkommen zum letzten Projekt, unserem letzten Python-Projekt. Und gemeinsam
werden wir uns
ein sehr leistungsfähiges
Benutzerregistrierungssystem aufbauen . Jetzt haben wir bereits etwas
Ähnliches gebaut, aber es wird noch viel weiter verbessert
werden. Jetzt habe ich den Code versteckt. Ich möchte noch nicht, dass du den Code
siehst. Also werde
ich das Programm ausführen
, damit Sie
sehen können, worum es geht. Wir haben also das
Benutzerregistrierungssystem, drei Hauptoptionen:
Registrieren, Anmelden oder Beenden. Also werde ich versuchen, mich zu registrieren und einen Benutzernamen einzugeben Lass uns mit Alex gehen, okay? Und ich werde das überprüfen, okay? Ich werde
ein ziemlich mächtiges Passwort verwenden. Aber jetzt sieh dir das
an, okay? Es heißt, das Passwort ist
nicht stark genug. Das Passwort muss mindestens
acht Zeichen lang sein. Wir haben also ein Tool zur
Passwortprüfung. Aber sieh dir das an, okay. Ich werde mich wieder
registrieren, okay? Lass mich reinkommen und eins drücken. Geben Sie diesmal einen anderen
Benutzernamen ein. Lass mich mit Boris gehen, okay? Und jetzt sieh dir das an. Okay, ich
nehme Bis 123. Boris. Das ist also ziemlich lang. Das sind mehr als
acht Zeichen. Ich drücke Enter. Aber dann heißt
es Passwort, es ist
nicht stark genug. Das Passwort muss
mindestens ein spezielles Symbol enthalten. Unser Passwort-Checker-Tool
wird also nach
vier Hauptkriterien suchen Es wird
sicherstellen, dass das Passwort mindestens acht
Zeichen lang
ist, einen
Großbuchstaben, eine Zahl
und auch ein spezielles Symbol hat , okay Also werde ich erneut versuchen, mich
zu registrieren, okay? Dieses Mal werde ich den
Benutzernamen Alice verwenden. Und jetzt lass uns mit einem
echten Passwort beginnen. Ich nehme Alice eins,
zwei, drei mit dem Hinzufügen-Symbol . Und los geht's, es heißt, Benutzer war erfolgreich, und jetzt werde ich
versuchen, mich einzuloggen. Okay? Schau dir das an.
Du wirst das lieben, ich melde mich als Alice an. Okay? Und jetzt Passwort, Alice, eins, zwei, drei,
mit dem Hinzufügen-Symbol. Und jetzt war die Anmeldung erfolgreich,
aber schauen Sie sich das an. Wir haben ein Post-Login-Menü. So können unsere
angemeldeten Benutzer auf
ein Anmeldemenü zugreifen , in dem sie ihre Protokolle
einsehen oder sich
einfach abmelden können . Also, ich als Alice, wenn ich meine Logs sehen will, drücke
ich auf eins und los geht's. Im Moment steht da, dass
die Logs für die Benutzerin Alice sind. Alice hat sich an diesem Tag erfolgreich
registriert, und dann hat sich Alice auch
erfolgreich angemeldet. Wir werden also im Grunde
ein Auditsystem
implementieren ,
das jeden
Benutzer und jede
Aktivität auf dem System verfolgt . Schauen Sie sich das auch an, wir werden also die
TXT-Datei des Benutzers haben , in der alle Benutzernamen
und die entsprechenden
Passwörter
gespeichert werden der alle Benutzernamen
und die entsprechenden
Passwörter
gespeichert , aber schauen Sie sich das an. Die Passwörter
werden gehasht. Sie werden nicht im Klartext
sein. werden wir
eine Hashing-Funktion implementieren Sicherheitsgründen werden wir
eine Hashing-Funktion implementieren
, um die Passwörter
zu hashen Sie können also
gleich sehen, dass
wir auch
etwas Hashing implementieren werden,
aber das ist nicht so , wir werden
auch
eine Audit-Log-Datei erstellen , die alle Logs auf dem System verfolgt alle Logs auf dem System Sie können jetzt also das
Registrierungsfeld für Alex, Registrierungsfeld für Boris, Ale hat sich erfolgreich
registriert und dann Ale auch erfolgreich
angemeldet Das wird also ein umfassendes, fortschrittliches
Registrierungssystem mit einem Tool zur Passwortprüfung Außerdem wird
das
gesamte Passwort gehasht werden sowie
eine zusätzliche Also hier ist die Sache, okay? Ich werde dir
ein Textdokument mit
einigen nützlichen Tipps
und Hinweisen zur Verfügung stellen ein Textdokument mit
einigen nützlichen Tipps , falls du versuchen
willst, dieses Programm ganz
alleine zu schreiben, okay? Anhang zu diesem Video werde
ich Ihnen eine Textdatei
mit Im Anhang zu diesem Video werde
ich Ihnen eine Textdatei
mit
allen nützlichen Hinweisen und Tipps zur Verfügung stellen. Ich werde dir den
allgemeinen Denkprozess erklären. Und wenn Sie sich dafür entscheiden, das
nicht
zu tun, wenn Sie nur mit mir zusammenarbeiten wollen, habe ich
das gesamte Projekt in
acht Mini-Projekte aufgeteilt . Also werde ich es
Schritt für Schritt aufschlüsseln . Wir werden
die Funktionen nacheinander, eins nach dem anderen,
eins nach dem anderen hinzufügen . Und ich hoffe, dass die Art und Weise, wie ich
an die Aufschlüsselung
dieses Projekts herangegangen bin, es für
Sie einfacher macht , es
zu verstehen und auch zu verfolgen. Wenn Sie also Fragen
haben,
vielleicht versuchen Sie, das Programm ganz alleine zu erstellen und Sie stecken irgendwo fest, können
Sie sich
jederzeit an mich wenden, und ich werde versuchen, Ihnen zu helfen und Ihnen auf jede erdenkliche
Weise zu helfen. Ich freue mich also sehr
, mit
Ihnen am Aufbau dieses
Benutzerregistrierungssystems zu arbeiten . Lassen Sie uns beginnen, ohne weitere
Zeit zu verschwenden.
70. Teil 1 So erstellst du die Benutzeroberfläche: Okay, lassen Sie uns beginnen. Und als Erstes werden
wir die erstellen, die es Benutzeroberfläche erstellen, die es
dem Benutzer
ermöglicht,
aus den Registrierungs -,
Anmelde- und Austrittsoptionen zu wählen , okay? Nennen wir diese Funktion also
die Hauptfunktion. Also werde ich sagen, definiere die
Hauptklammern, den Doppelpunkt. Und jetzt sagen wir, obwohl es wahr ist. Okay, solange das
Programm läuft, lassen Sie uns die Menüoptionen anzeigen. Also sage ich
zuerst, druckt,
und wir können sagen, Nummer eins, lass mich
meine Codes direkt dort hinzufügen. Also werde ich Option
Nummer eins sagen, Punkte registrieren. Okay. Lass uns die Spalte schließen. Und dann drucken wir Option Nummer zwei
aus
, nämlich Einloggen. Und dann Option Nummer
drei, sehr, sehr, sehr langweilige Option,
einfach beenden. Okay? In Ordnung. Weißt du, lass uns ganz oben eine weitere Erklärung
ausdrucken ,
quasi eine Willkommensnachricht. Lassen Sie uns also drucken,
sagen wir, Willkommen
im Benutzerregistrierungssystem. Okay. Und da hast du's. In Ordnung, wir haben
also alle
Optionen vorbereitet. Lassen Sie uns nun den Benutzer auffordern, uns eine Option
zur Verfügung zu stellen. Für welche spezielle Option
werden sie sich entscheiden wollen? Ich rufe
die Variablenauswahl auf, um die bestimmte Option zu speichern. Also werde ich Eingaben sagen
und dann lassen Sie uns sagen, was möchten Sie tun? Okay. Und da ist
es. In Ordnung. Sobald der Benutzer seine Option
angegeben hat, müssen
wir Szenarien erstellen die jedem von ihnen
zugewiesen sind. Also fange ich hier mit der allerersten
an und sage, wenn unsere Wahl
Option Nummer eins entspricht, werden
wir, sagen
wir, die
Registrierung ausdrucken sagen
wir, die
Registrierung Ausgewählt. Okay. Offensichtlich
wird vorerst nichts anderes passieren. Wir werden die eigentliche
Funktionalität später hinzufügen. Aber lassen Sie uns
mit der nächsten Option fortfahren. Also sage ich LIF, Wahl ist gleich
und dann Option Nummer zwei. wir einen Doppelpunkt hinzu. Also,
was wird hier passieren? Wir können „Drucken“ sagen
und dann können wir
sagen, dass „Anmelden“ ausgewählt ist „Okay“. Und jetzt fügen wir
Option Nummer drei hinzu, AF-Auswahl entspricht Option
Nummer drei und einen Doppelpunkt Wir können einfach „Drucken“ sagen und das System verlassen Okay? Und ich denke,
das sollte in Ordnung sein. Denken Sie also daran,
dass Sie auch
die Break-Anweisung hinzufügen müssen ,
falls der Benutzer beschließt, eine
Option zu wählen, die nicht existiert. Also komme ich rein und
sage Pause und jetzt Pause, gib in unserer Spalte etwas anderes ein und jetzt können wir drucken. Sagen wir, ungültige Auswahl, bitte versuchen Sie es erneut.
Okay, das gefällt mir. Ungültige Auswahl,
bitte versuchen Sie es erneut. Und da ist es. Okay, lassen Sie uns
jetzt weitermachen, um das Programm auszuführen. Also werde ich mal Haupt
sagen und jetzt Klammern, und mal sehen, was passiert. Lass uns weitermachen und das Programm
ausführen. Und dann gehst du, okay, lass uns Option Nummer eins versuchen. Okay? Register ausgewählt.
Option Nummer zwei, Anmeldung ausgewählt,
Option Nummer drei. Das System wird verlassen.
Okay, so weit, so gut, dass wir die erste
Komponente unseres Programms hinzugefügt haben Wir haben die
Benutzeroberfläche hinzugefügt. Im nächsten Video werden
wir nun beginnen , jede Option nacheinander anzugehen, beginnend mit der
Registrierungsfunktion.
71. Teil 2 So fügst du die Benutzerregistrierungsfunktion hinzu: Komm zurück. Kommen wir nun zur ersten Hauptfunktion
des Programms, mit der sich
der Benutzer registrieren kann. In Ordnung? Also lass uns hier ganz nach oben gehen und
die Benutzeroberflächenfunktion ganz nach unten
schieben, und dann kommen wir hier hoch. Eigentlich füge ich einfach
eine Notiz hinzu und sage Registrierungsfunktion. Okay. Okay, wie nennen
wir die Funktion? Sagen wir, registrieren Sie den
Underscore-Benutzer, richtig? Benutzer registrieren, Klammern Fügen wir einen Doppelpunkt hinzu Okay, also wollen wir den
Benutzernamen und ein Passwort des Benutzers akzeptieren. Lassen Sie uns sie also
dazu auffordern. In Ordnung. Also sage ich,
Benutzername ist gleich und
jetzt Eingabe und Klammern, sagen
wir, einen Benutzernamen Doppelpunkt. Okay. Und dann lassen Sie uns sie auch nach
dem Passwort fragen. Also Passwort ist gleich, Eingabe und dann in Klammern, Passwort
eingeben, Doppelpunkt, und los geht's Ordnung, also
jetzt, sobald der Benutzer den Benutzernamen
und das Passwort
eingegeben hat , möchten
wir sie in einer Datei
speichern Wir können die Datei als Beispiel user
dot TXT nennen, okay? Wir werden also sagen ,
mit und jetzt öffnen. Okay? Denken Sie daran, wir benötigen diese
Funktion, um unsere Datei zu erstellen. Lassen Sie uns nun den
Namen der Datei hinzufügen. Ich nenne
es Users Dot TXT. Und jetzt lassen Sie uns
den Anfügemodus aktivieren. Also werde ich A sagen. Okay.
Und was dann als Datei? Dickdarm. In Ordnung. Und jetzt können wir
die richtigen Funktionen verwenden. Ich sage Datei, Punkt rechts. Und jetzt können
wir in Klammern unsere F-Zeichenfolge verwenden und dann
coole Klammern und den Benutzernamen hinzufügen Lassen Sie uns das schließen, und dann
können wir auch einen Doppelpunkt hinzufügen, um das Passwort
vom Benutzernamen zu trennen Also macht Cole wieder eine Klammer und dann können wir unser Passwort
hinzufügen Und dann können
wir zur Sicherheit den umgekehrten
Schrägstrich und dann N machen ,
sodass jede Benutzerinformation einer
separaten Zeile gespeichert wird Jeder Benutzeranmeldenachweis
wird in
einer separaten Zeile gespeichert ,
und da Okay, alles, was wir
jetzt tun müssen, ist, eine einfache Nachricht
auszudrucken , in der etwas wie Drucken steht,
und dann können wir sagen, dass die
Benutzerregistrierung erfolgreich war Okay. Und da ist es. Okay, wie integrieren wir jetzt unsere Registrierungsfunktion in
die Hauptfunktion selbst? Was wir jetzt
tun werden, ist dass
wir den ganzen
Weg hierher kommen und sagen, Wahl gleich eins ist, dann können wir das entfernen Okay, wir brauchen
diese gedruckte Erklärung nicht mehr. Und wir
rufen einfach die Funktion auf. Und die Funktion, die
wir hier erstellt haben, war , der Underscore-Benutzer registriert Genau hier sage ich einfach Underscore-Benutzer
registrieren und dann Klammern Und dann ist es da. Hoffentlich sollte das funktionieren. Lass uns
jetzt weitermachen und es testen. Also werde ich das Programm ausführen. Okay? Nummer eins, wir
wollen uns registrieren, drücken Sie Enter. Geben Sie den Benutzernamen ein. Ich
gehe mit Alex. Passwort. Ich gehe einfach wieder
mit Alex, okay? Nur für einen Test. Tritt ein und okay. Die Benutzerregistrierung
war erfolgreich, und wir haben hier eine
Punkttextdatei für Benutzer Und wenn ich es öffne, großartig, du kannst es sehen, sagt Alex Alex So fantastisch. Sie können jetzt
sehen, dass es tatsächlich
so weit so gut funktioniert. Nehmen Sie an der nächsten Lektion teil
, in der wir jetzt
die Funktion erstellen , mit der sich unsere Benutzer anmelden
können.
72. Teil 3 So fügst du die Anmeldefunktion hinzu: Nun, komm zurück. Lassen Sie uns nun die Funktion hinzufügen, mit der sich unsere Benutzer anmelden
können. Also sage ich definieren, und lassen Sie uns mit dem Login
weitermachen . Das Ergebnis ist
dann der Benutzername. Lassen Sie uns eine Spalte hinzufügen.
Lassen Sie uns tatsächlich eine Notiz hinzufügen, okay? Und wir können einfach
Login-Funktion sagen. Und da hast du's. In Ordnung. Damit sich der Benutzer anmelden kann, benötigt
er den
Benutzernamen und das Passwort Lassen Sie uns also zunächst
sagen, dass Benutzername gleich ist, und dann Klammern Codes Ihren Benutzernamen eingeben Doppelpunkt. Okay. Und
dann können wir auch das Passwort
hinzufügen, gleich Eingabe, Klammern, Ihr Passwort eingeben und los geht's. In Ordnung Um zu
überprüfen, ob der Benutzername
und das Passwort existieren, müssen
wir nun überprüfen, ob der Benutzername
und das Passwort existieren, die Punkt-TXT-Datei für unsere Benutzer öffnen Also sage ich bei Öffnen und jetzt in Klammern, wie lautet
der Name der Datei? Es ist der Benutzerpunkt TXT. Und in welchem Modus
arbeiten wir dann? Wir nehmen den Lesemodus. Weil wir aus der Datei
lesen wollen, und ich
sage als Datei, Doppelpunkt. Lassen Sie uns nun
eine Variable namens
users erstellen , die die Funktion
Dateipunkt mit roten Linien akzeptiert. Denn denken Sie daran, dass
wir Zeile für Zeile von
jedem Benutzer im
Punkttext der Datei
lesen müssen Zeile von
jedem Benutzer im
Punkttext der Datei
lesen . Ich sage also, Benutzer
entspricht Datei, Punkt, Zeilen und jetzt Klammern,
und da ist es Jetzt müssen wir also überprüfen, ob die Anmeldeinformationen der Entität
mit einem gespeicherten Datensatz übereinstimmen Also, was werden wir tun? Wir werden eine Viererschleife
erstellen. Also werde ich vier sagen. Lassen Sie uns die Variable
user in users verwenden. Okay? Also, was
wollen wir jetzt überprüfen? Wir wollen nach dem
Benutzernamen und dann nach dem Passwort suchen. Also können wir hier zwei
Variablen erstellen. Wir können das in der Partitur gespeicherte
Okay, den Benutzernamen und dann das Komma verwenden, wir können auch das in der Partitur gespeicherte
Passwort Let erstellt zwei
Variablen,
die den gespeicherten Benutzernamen und
dann das gespeicherte Passwort darstellen die den gespeicherten Benutzernamen und
dann das gespeicherte Passwort Und jetzt, wie würden
wir überprüfen, ob wir zuerst
überprüfen müssen, ob der Benutzername
korrekt ist und dann
auch das Passwort. Aber jetzt sieh dir das
an, okay? Die Benutzer finden Textilien so, wie sie sind. Wir haben Alex und
dann den Doppelpunkt ALC. Also müssen wir einen
Weg finden, wie wir den Benutzernamen
vom Passwort
trennen können ,
und wir wissen, dass es der
Doppelpunkt ist, der sie
trennt, okay? Also können wir die Split-Funktion verwenden , um den
Benutzernamen und das Passwort zu trennen. Wir können aber auch
die Strip-Funktion verwenden. Denken Sie an die Strip-Funktion. Wir verwenden das, um
alle weißen Zeichen
oder Leerzeichen zu entfernen , solche
Dinge. Okay? Also lass uns wieder hier rein gehen. Also, was
wir jetzt tun werden,
ist, Benutzer zu sagen, und lassen Sie uns jetzt
die Strip-Funktion hinzufügen , um alle erforderlichen
Leerzeichen aus dem Benutzernamen zu entfernen, okay, unsere Klammern, und jetzt füge ich die Split-Funktion hinzu. Und nach was teilen wir den Benutzernamen und das Passwort auf Es wird der Doppelpunkt sein, und los geht's Also werden wir den Benutzernamen
und das Passwort durch den Doppelpunkt
aufteilen . Also von hier aus können wir das
jetzt überprüfen. Wir können sagen, ob der
Benutzername mit dem gespeicherten
Unterstrich-Benutzernamen
identisch ist
und welches Passwort dem Unterstrich-Passwort entspricht .
Was wollen wir tun? Wir wollen drucken und „Einloggen“ sagen. Erfolgreich und los geht's. Fantastisch, auch großartig.
Und von hier aus können
wir
vorerst einfach zurückkehren, okay. Später werden wir
zusätzliche Funktionen hinzufügen. Aber lassen Sie uns vorerst einfach zurückkehren und zum
Anfang des Programms zurückkehren. Also werden wir die Funktion
nach einer erfolgreichen Anmeldung
beenden . Und natürlich können wir auch drucken, falls
etwas nicht richtig
gelaufen ist. Wir können neun Klammern drucken. Wir können einfach
mit n oder einem Passwort „ungültig“ sagen. Und da hast du es. Lassen Sie mich hier einfach etwas Platz
hinzufügen und los geht's. Okay, ich hoffe,
das sollte funktionieren. Lassen Sie mich es
in die Hauptfunktion integrieren. Was wir jetzt
tun wollen, ist dass
dort die
AF-Wahl Nummer zwei steht, wir können die
Print-Anweisung entfernen und jetzt einfach den Namen
der Funktion hinzufügen,
das heißt Login für den
Score-Benutzer und jetzt Klammern, und da ist es. Okay. Ich drücke die Daumen. Lassen Sie uns das Programm ausführen. Und lass uns sehen. Ich melde mich
gleich an, weil wir den
Alex-Benutzernamen und das Passwort
bereits erstellt haben . Der Benutzername ist also Alex. Das Passwort ist Alex,
und los geht's. Fantastisch, die Anmeldung war erfolgreich. Lassen Sie uns versuchen zu sehen, ob wir einen anderen Benutzernamen
akzeptieren
, der nicht existiert. Also gehe ich mit Log In und lass uns mit Philip gehen. Passwort eingeben, sortieren,
fischen und los geht's. Da steht
ein ungültiger Nutzername oder Passwort, also funktioniert es, super,
genial, super. Also haben wir
die Registrierungsfunktion erfolgreich hinzugefügt. Wir haben auch
die Login-Funktion erfolgreich hinzugefügt. Schließen Sie sich mir jetzt
im nächsten Video dem wir das Programm
voranbringen werden, indem wir den
Passwort-Checker
vorstellen, der sicherstellt, dass das erstellte Passwort
bestimmte Sicherheitskriterien erfüllt Wir sehen uns dann.
73. Teil 4 Hinzufügen des Passwortstärke-Checkers: Nun, komm zurück. Jetzt müssen wir
das Passwort-Checker-Tool implementieren. So weit, so gut, unsere Benutzer, sie können
Konten registrieren, sie können sich anmelden Wir möchten jedoch sicherstellen , dass die Passwörter
, mit denen sie ihre Konten ursprünglich
erstellt haben, tatsächlich stark genug sind. Und wir haben eine Liste von Kriterien. Wir möchten sicherstellen
, dass das Passwort mindestens acht Zeichen lang
ist. Es enthält einen Großbuchstaben. Es enthält eine Zahl und
mindestens ein Sonderzeichen. Nun, die Symbole sind das, was ich
hier geschrieben habe, wie Sie sehen können. Ich habe sie alle aufgelistet. Ich werde also ganz oben stehen,
okay, lass uns weitermachen. Lassen Sie mich das zuerst schneiden, ich werde das kürzen. Also
müssen wir eine Bibliothek importieren,
die die Bibliothek für
reguläre Ausdrücke sein wird. Also ganz oben sagen
wir Import
und dann R E. Okay? Lassen Sie mich einfach
eine Notiz hinzufügen, in der
Import für reguläre
Ausdrücke steht . Okay? In Ordnung. Lassen Sie uns jetzt eine Notiz hinzufügen, und ich werde sagen,
Passwort-Passwort-Checker-Funktion Okay. Ich denke, das ist in Ordnung. Funktion zur Passwortprüfung. Okay, lassen Sie uns
den Namen der Funktion erstellen. Also nenne ich es Define, und dann können wir sagen, ist im Punktestand stark
im Punkte-Passwort. Okay? Wie wär's damit? Und
jetzt akzeptieren
wir natürlich drinnen eine Variable, nämlich das
eigentliche Passwort selbst. Okay? Und lassen Sie uns
Doppelpunkt hinzufügen. Da hast du's. Ordnung. Fangen wir
an, die Kriterien hinzuzufügen. Das allererste
Kriterium
wird hier die Länge des Passworts sein. Wir können also sagen ob und
jetzt die Funktion len, die die Länge
des Passworts darstellt. Okay? Also, wenn es weniger als
acht ist, fügen wir unseren Doppelpunkt hinzu. Was werden wir sagen?
Wir geben Falsch zurück. Okay, wir geben Falsch
zurück. Eigentlich falsches F, falsches Komma. Und dann können wir so
etwas wie ein Feedback geben. Teilen Sie dem Benutzer mit, dass, Hallo, Ihr Passwort mindestens acht
Zeichen lang
sein muss .
Also lass uns das machen. Okay. Beachten Sie also jetzt
zwei Dinge, die passiert sind. Zuallererst
geben wir falsch zurück, was bedeutet, dass das Passwort nicht
stark genug ist, und dann geben wir auch Feedback Behalte das im Hinterkopf, es wird
sehr, sehr wichtig sein. Lassen Sie uns zu
den nächsten Kriterien übergehen. Also werde ich
hierher kommen und dann sagen ob
wir
mit dem RE-Modul suchen wollen und jetzt keine RE-Suche Lassen Sie mich nur sichergehen, dass ich
das richtig eingegeben habe, Research. Und jetzt wollen
wir in Klammern suchen
,
ob die Zeichenfolge Großbuchstaben
enthält. Okay? Also sagen wir Suchen
und jetzt Roy jetzt Codes, einzelne Codes,
fügen wir unsere Klammern hinzu. Wonach suchen wir?
Wir suchen nach A bis Z. Also das hier ist eine Methode, die die Bibliothek für reguläre
Ausdrücke verwendet.
Wir wollen
unser Passwort durchsuchen, um zu überprüfen ob zwischen A
und Z ein
Großbuchstabe steht.
Also A bis Z, dann Komma und
dann im Passwort Okay? Also können wir
Fur False zurückgeben und warum False? Weil wir gesagt haben, wenn nicht. Wenn das Programm also das Passwort
durchsucht und keinen Großbuchstaben von A
bis Z findet , wird es nicht der Fall sein. Also geben wir Falsch zurück und können dann ein
gewisses Feedback geben. Ich kann also sagen, dass das Passwort mindestens einen
Großbuchstaben
enthalten
muss mindestens einen
Großbuchstaben
enthalten Okay? Und lassen Sie mich
den Punkt genau dort hinzufügen und los geht's. Okay, können Sie jetzt versuchen, den Code für die Suche zu
schreiben, um zu
sehen, ob eine Zahl 0-9 im Passwort enthalten
ist Okay? Wir können sagen, wenn nicht, suchen wir. Okay. Und dann in Klammern
R und jetzt in einzelnen Codes werde
ich eine neue
Klammer öffnen, jetzt 0-1 bis neun Und jetzt suchen wir
nach dem Passwort. Wir wollen wissen, ob das
Passwort eine Zahl 0-9 hat. Und wenn nicht, geben
wir natürlich false zurück Und dann können wir sagen, dass das Passwort mindestens eine Ziffer enthalten
muss. Lassen Sie mich tatsächlich Ziffern
in Zahlen umwandeln. Okay. Und da hast du's. Also haben wir die
Länge des Passworts überprüft. Wir haben überprüft, ob
es einen Großbuchstaben enthält. Wir haben überprüft, ob
es mindestens eine Zahl enthält. Lassen Sie
uns zu guter Letzt überprüfen, ob es ein spezielles Symbol
hat. Also das letzte, sagen
wir,
wenn nicht, die Punktsuche. Und jetzt
stehen in Klammern einzelne Codes. Und jetzt öffnen wir
die wichtigsten Klammern. Und jetzt werde ich
alle Sonderzeichen einfügen. Oh, es gibt
tatsächlich
eine ganze Reihe von ihnen, okay? Also
werde ich das hinzufügen. Jetzt Komma und jetzt Passwort. Okay, füge einen Doppelpunkt hinzu. Und jetzt, wenn wir das nicht haben, werde
ich Falls zurückgeben. Okay. Und dann Codes, ich sage, das Passwort muss
mindestens ein spezielles Symbol enthalten. Lassen Sie mich das
Zeichen in ein Symbol ändern. Simba kodiert, und da ist es. Okay, wir haben also
die vier Hauptkriterien überprüft. Was ist jedoch, wenn das Passwort , das erstellt wurde, tatsächlich gut
ist? Es ist ein sicheres Passwort. Deshalb
werde ich
hierher kommen und die Wahrheit
zurückgeben. Okay? Ich gebe true zurück
und wir können sogar etwas
ausdrucken, das
besagt, dass das Passwort sicher ist. Und da hast du's. Okay. Um Ihnen eine kurze Zusammenfassung dessen zu geben, was
wir hier gemacht haben, haben
wir die Bibliothek mit regulären
Ausdrücken importiert,
weil wir eine
bestimmte Funktionsmethode verwenden wollen, nämlich
die
Suchfunktion, um
das Passwort zu durchsuchen wir die Bibliothek mit regulären
Ausdrücken importiert weil wir eine
bestimmte Funktionsmethode verwenden wollen, und nach bestimmten Kriterien zu suchen Also überprüfen wir zunächst
die Länge des Passworts. Ist es weniger als acht? Wenn es weniger als acht sind, geben Sie false zurück und
geben Sie dann Feedback, dass das Passwort mindestens
acht Zeichen lang sein muss. Und jetzt wollen
wir herausfinden, ob zwischen A und Z ein
Großbuchstabe
steht. Also verwenden wir die Methode
E-Punktsuche, und dann in Klammern R Codes und dann die Klammern A
bis Z und dann Passwort. Und dann geben wir
das Feedback, und dann haben wir
dasselbe getan, um nach mindestens einer Zahl zu
suchen , und dann haben wir
dasselbe getan, um nach
mindestens einem speziellen Symbol zu suchen . Und schließlich, wenn alle
vier Kriterien erfüllt sind, geben wir true zurück, und dann würden wir sagen, dass
das Passwort stark ist. wir nun
die Kriterien für die Stärke
des Passworts aufgelistet haben , müssen
wir es nun in
die
Registrierungsfunktion
integrieren und
sicherstellen , dass das Passwort vor der Registrierung des
Benutzerkontos den
Test tatsächlich besteht. Nachdem wir den Benutzer also
gebeten haben, den Benutzernamen und
das Passwort anzugeben, bevor wir die Dotexti-Datei
des Benutzers öffnen , um die Anmeldeinformationen
zu speichern,
wollen wir den Passwort-Checker vorstellen Also kann ich eine
Variable namens is valid erstellen. Wir werden überprüfen, ob das Passwort tatsächlich gültig ist. Außerdem haben wir
mit dem
Feedback oder der Nachricht gearbeitet .
Sie können die
Variable ändern, wenn Sie möchten, aber ich
bleibe beim Feedback. Ich sage, ist gültig,
unterstreiche das Feedback und übergebe sie an
die Funktion, die wir früher erstellt Die Reichweite eines
Passworts ist ein sicheres Passwort, ein
Unterstrich und dann in Klammern ein Passwort. Okay. Jetzt können wir sagen,
ob es nicht gültig ist, also ob nicht gültig ist. Wenn das von ihnen
angegebene Passwort also nicht stark genug ist, können
wir es einfach ausdrucken
und dann sagen, dass
das Passwort nicht zu viel Platz beansprucht. Das Passwort ist nicht
stark genug. Okay. Und was können wir dann noch tun? Wir können das
Feedback ausdrucken und sagen: „Hey, dein Passwort benötigt
mindestens eine Zahl, oder dein Passwort muss
mindestens einen Gas-Großbuchstaben enthalten . Ich kann also hierher kommen, eine weitere gedruckte Erklärung
hinzufügen und das Feedback
einfach weiterleiten. Und da hast du's. guter Letzt
werden wir einfach
zurückkehren und los geht's. diese Weise können wir das Passwort-Checker-Tool
implementieren Wir haben die
Kriterien, Länge, Zahl,
einen Großbuchstaben und ein Symbol aufgelistet ,
und jetzt, wo Sie die
Registrierungsfunktion haben, haben
wir hinzugefügt: Okay, wenn das
Passwort nicht gültig ist,
sagen Sie, dass es nicht stark
genug ist, und
geben Sie dann auch das Feedback Andernfalls kehren Sie einfach zurück. Lassen Sie uns jetzt überprüfen,
ob es funktioniert. Hoffentlich sollte es.
Also lass uns rennen. Okay, ich werde mich registrieren. Benutze einen Namen, sagen wir, Bob. Passwort, ich nehme
die Großbuchstaben LISA N sechs,
eins, zwei, drei, B V. Es ist Enta und Awesome. Es heißt, das Passwort ist
nicht stark genug. Das Passwort muss
mindestens ein spezielles Symbol enthalten. Okay, ich öffne das Punkttextil des
Benutzers
und stelle sicher, dass,
okay, sichergehen , dass Bob
nicht erstellt wurde Fantastisch. Lass uns zurückgehen. Und jetzt wollen wir versuchen,
ein echtes Konto zu erstellen. Also lass uns Alice anrufen. Passwort, P O P drei,
vier, SDR und dann
das Hinzufügen-Symbol Ich denke, das sollte stark genug
sein. Da hast du's. Okay,
toller Nutzer. Ist erfolgreich. Und jetzt, wenn ich zurück zu meiner
Benutzer-TXT-Datei gehe, hast du's. Jetzt haben wir Alice und ihr
Passwort. Also herzlichen Glückwunsch. Wir haben unser Programm,
unsere Software, um jetzt auch
einen Passwort-Checker erweitert unsere Software, um jetzt auch
einen Passwort-Checker Begleiten Sie mich im
nächsten Video, in dem wir weitermachen und auch lernen werden, wie wir unsere Passwörter
verschlüsseln können .
Wir sehen uns dann
74. Teil 5: So hasst du die Benutzerpasswörter: Nun, komm zurück.
Lassen Sie uns jetzt unserem Programm
eine weitere
Sicherheitsfunktion hinzufügen. Und hier werden wir Hashing
einbeziehen. Wir werden
Pwords hashen , indem wir SHA zwei,
fünf, sechs
verwenden , den sicheren
Hash-Algorithmus mit
natürlich einer
Datengröße von 256 Bit Um das zu tun, müssen
wir also eine weitere Bibliothek
importieren Und diese wird
die Hash-Bibliothek sein. Lassen Sie mich
hier einfach einen Knoten hinzufügen und ich importiere auch für das Hashing. Und da hast du es Ordnung. Nun fügen wir hier ganz oben
die Funktion hinzu, um das Passwort tatsächlich
zu hashen. Lassen Sie mich einfach eine
Node-Funktion zum Hash-Passwort hinzufügen. Den Namen der Funktion kann
ich definieren sagen
und wir können uns für ein
Hash-Passwort entscheiden. Jetzt werden
wir natürlich
innerhalb der Klammern mit dem Passwort-Parameter arbeiten und dann habe ich meine Spalte eingegeben. Ich werde mir das mal ansehen,
um das Passwort zu hashen Du kannst einfach Return Now sagen, der Name der
Funktion selbst
im Hashlib-Modul ist Hashlib Jetzt Punkt Sha zwei, fünf, sechs. Jetzt in Klammern, was
hashen wir? Es ist das Passwort Jetzt verwende ich
die Methode Code,
öffne ein neues Klammerpaar, schließe die vorherigen Klammern und
jetzt Punkt, schließe die vorherigen Klammern und jetzt
endlich können wir Hex Digest wieder
schließende Klammern hinzufügen lassen, und da ist es Das ist eine bestimmte Zeile
, die du dir merken kannst. Dies ist die Funktion
, die Passwörter mithilfe
des
Hashlib-Moduls tatsächlich Passwörter mithilfe
des
Hashlib-Moduls Alles, was wir
jetzt ganz einfach tun müssen, ist, es in die eigentliche
Registrierungsfunktion zu integrieren Lassen Sie uns ganz zum Schluss kommen,
wo das Passwort erfolgreich
war,
hier, wo es heißt Feedback
drucken, zurückkehren, kurz bevor wir anfangen, das Passwort an die
Benutzer zu schreiben oder der Datei eine SMS zu schicken, lassen Sie uns es jetzt hashen. Nach der schriftlichen Erklärung werde
ich eine
kleine Notiz hinzufügen und wir können sagen: Hash das Passwort Ordnung. Also, was wir jetzt machen wollen,
ist sehr, sehr einfach, wir können eine Variable namens
Hash-Underscore-Passwort erstellen, und dann können wir
das tatsächliche Passwort übergeben ,
das wir gerade gehasht haben Ich sage Hash auf dem
Punkte-Passwort und jetzt in Klammern, ganz einfach Passwort
und da ist es Alles, was wir ganz
einfach tun müssen , ist, wo wir das Passwort
schreiben. Anstelle des
ursprünglichen Passworts müssen
wir jetzt
das Hash-Passwort schreiben Hier heißt es Datei oder
schreibe F, Benutzername. Jetzt werden
wir hier statt Passwort das in die Variable ändern, die Score-Passwort
gehasht ist, und da haben wir
erfolgreich Hashing hinzugefügt Lassen Sie uns sehen, ob das tatsächlich
funktionieren würde. Ich werde
jetzt weitermachen und das Programm ausführen. Lassen Sie uns registrieren. Ich werde hier einen
neuen Namen hinzufügen. Ich werde diesen, sagen
wir, David nennen . Okay, Passwort. Ich nehme hier ein sehr
sicheres Passwort, SOD, Fish,
SOD,
Fish, und dann 234 bei,
und dann sterisches
Symbol, los geht's SOD,
Fish , und dann 234 bei, und dann sterisches
Symbol, Lassen Sie uns jetzt die
Benutzer von Textifle
und C and Wonderful öffnen .
Da hast du's Da ist die Hash-Version
von Davids Passwort, das SOT Fish
, 234 at
und das Asterics-Symbol ist Wunderbar, wir haben
Hashing zu unserem Programm hinzugefügt. Es wird immer weiter
fortgeschritten, und jetzt fahren wir mit der nächsten
Lektion fort, in der wir dann unser Audit um Feature CU
erweitern Deshalb wollte ich Ihnen nur ein kurzes Update geben
. Ja, wir haben gerade
die Hashing-Funktion hinzugefügt. Wenn wir sie testen, stellen
Sie jedoch möglicherweise fest, dass
sie nicht funktioniert Also, wenn ich jetzt
hierher gehen und einen
neuen Benutzer registrieren wollte und ich sagen würde, nennen
wir den neuen
Benutzer Victor, richtig? Victor. Und dann habe ich ein Passwort
hinzugefügt, Victor 123, und dann VC und dann das Werbesymbol,
und ich drücke Enter. Es heißt, dass die
Benutzerregistrierung erfolgreich war. Wenn ich allerdings nochmal versuche mich als Victor
einzuloggen, so habe ich den Usernamen. Und wenn ich jetzt das
Passwort Victor 123,
Vc eintippe, werden Sie
sofort sehen , dass dort
ein ungültiger Benutzername oder ein ungültiges Passwort steht. Aus irgendeinem Grund kann die
Login-Funktion also nicht erkennen, ob der Benutzername mit
dem Passwort übereinstimmt. Und das ist einer
der Gründe, warum Sie
Ihren Code wirklich testen möchten , wenn Sie neue Funktionen
hinzugefügt haben. Mir wurde also klar
, dass hier in Zeile 60, wo es heißt, wo wir die Login-Funktion
haben, steht, dass, wenn der Benutzername gespeicherten Benutzernamen und das Passwort dem gespeicherten Passwort
entspricht, wir dem Benutzer ermöglichen können,
sich erfolgreich anzumelden Sie können jetzt sehen
, dass das nicht
funktionieren wird , denn während der Code gerade geschrieben
wird, vergleicht er das Passwort mit
dem Klartextformat und nicht mit der verschlüsselten Version oder
der Hash-Version Deshalb
haben wir das Problem. Also sollten wir jetzt
reinkommen und sagen,
einen Namen eingeben und jetzt betonen wir das
Hash-Unterstrich-Passwort Und jetzt in Klammern, Passwort. Also das hier, wir sagen jetzt dem Programm und Python, dass, hey, vergleiche das Hash-Passwort des Benutzers und nicht
die einfache Version Also sollte es jetzt funktionieren. Wenn ich zurückgehen und ein neues Konto
für den Benutzer
erstellen würde. Lassen Sie uns
das Programm tatsächlich beenden, okay? Und ich werde es noch einmal
von vorne ausführen. Lassen Sie mich jetzt einen neuen Benutzer
registrieren, den Benutzer Mac
und dann Mac eins,
zwei, drei am Mac
anrufen , um das Passwort zu
erhalten Und jetzt versuchen wir erneut, uns als Mac
anzumelden. Also werde ich Mac sagen. Und jetzt Mac eins, zwei, drei bei Mac. Und jetzt können Sie sehen, dass der Login tatsächlich erfolgreich
war. Dies ist also noch einmal eine Erinnerung daran, dass Sie
jedes Mal, wenn
Sie neue Funktionen und neue Codezeilen
hinzufügen, testen sollten, bevor Sie Ihrem Programm immer mehr Codezeilen
hinzufügen. Bitte
aktualisieren Sie also die Zeile, in der es heißt: Wenn Sie den
Nemicol-Startbenutzernamen und das Passwort verwenden, möchten
Sie sicherstellen, dass es sich um die Hash-Version des
Passworts handelt, die wir vergleichen Danke fürs Zuschauen,
und natürlich sehen wir uns in
der
75. Teil 6: Hinzufügen des Audit-Tools: Willkommen zurück. Also eine wirklich coole Funktion
hinzufügen, werden wir jetzt eine wirklich coole Funktion
hinzufügen, nämlich
das Audit-Tool
, mit dem wir alle Aktivitäten
auf unserem System
verfolgen können , angefangen bei Benutzern über die
Anmeldung bis hin zur Erstellung von Konten
und dergleichen Also lass uns weitermachen und das machen. Und damit das passiert, müssen
wir eine spezielle
Bibliothek und ein spezielles Modul importieren, das Datum und Uhrzeit
sein wird. Also werde ich
hier reinkommen und ich
sage aus der Tagesbibliothek. Lassen Sie uns das
Tagesmodul importieren. Okay? Und ich kann hier
eine Notiz hinzufügen, in der die Eingabe von Datum und Uhrzeit
steht. Okay. Lassen Sie uns nun unsere Funktion
erstellen, und wo können wir sie platzieren? Wissen Sie was? Platzieren wir die Funktion kurz vor der
Registrierungsfunktion, okay? Also werde ich
hier
ganz unten reinkommen , die Notiz hinzufügen und wir können das
die Funktion
zum Protokollieren von Benutzeraktivitäten nennen . Gesetz über Aktivitäten. Ich habe das nicht
richtig buchstabiert, Activts. Okay. Okay, ich
nenne diese Funktion definiert und protokolliere dann das Underscore-Ereignis Das wird der
Name der Funktion sein. Und dann wird
der Parameter natürlich Event sein. Okay. Füge einen Doppelpunkt hinzu, und gut. Also hier wird die
Magie passieren. Lassen Sie uns das tatsächliche Datum und die
Uhrzeit in eine Variable
namens Zeitstempel übergeben . Okay? Ich würde sagen,
Zeitstempel ist gleich. Und jetzt werden
wir
eine Funktion aus dem
Tagesmodul verwenden eine Funktion aus dem
Tagesmodul Diese Funktion heißt jetzt
Datetime Dot. Okay? Also das ist die
Funktion, die das tatsächliche Datum und
die Uhrzeit abruft, okay? Aber jetzt füge ich hier eine
Methode hinzu Punkt STR FT. Diese Methode hier werden
wir verwenden, um Datum und Uhrzeit tatsächlich
zu formatieren
. Also, ob
wir das Jahr, den Monat,
den Tag oder
vielleicht nur den Monatstag anzeigen möchten. Und dann die Uhrzeit, vielleicht
wollen wir die Stunde,
die Minute, die Sekunde, solche
Dinge anzeigen . Also werden wir diese Methode
verwenden, die STR FT-Methode. Und jetzt müssen
wir in Klammern angeben, wie Datum und
Uhrzeit formatiert werden sollen Also drinnen werde ich meine Mäntel
hinzufügen. Also lass es uns so machen, okay. Wir werden das Jahr, den Monat und
den Tag anzeigen . Das wird für das Datum sein. Und dann
zeigen wir für die
Uhrzeit einfach die Stunde, Minute
und dann die Sekunde an. Und das?
Okay? Hört sich gut an. Um das zu tun, verwende ich das
Prozentsymbol und jetzt Y. Das steht für das Jahr und
dann können wir Minus und dann Prozent hinzufügen,
und dann M für den Monat
und dann wieder Minus, und dann wieder Minus, Prozent für was für den
Tag, der D sein wird. Okay? Und jetzt ein Leerzeichen und jetzt die
tatsächliche Zeit selbst, ich gehe
wieder zurück, Prozent, H für die Stunde, okay? Und jetzt können
wir statt des Minus den Doppelpunkt verwenden, weil ich denke, dass es meiner Meinung
nach besser ist , Doppelpunkte zu verwenden, wenn
man es
mit der tatsächlichen Zeit zu tun , Doppelpunkte zu verwenden, wenn
man es
mit der tatsächlichen Zeit Wir können Doppelpunkt verwenden und dann für die Minute und
dann wieder Doppelpunkt und dann Prozent oder S, und los geht's Das ist das Format,
Ihr Monatstag
und dann die Stunde, Minute und Sekunde, und ich denke, das sollte in Ordnung sein. Jetzt müssen wir
jetzt damit beginnen,
all diese Aktivitäten
zu protokollieren. Okay, was wir
tun werden , ist für die
Registrierungsfunktion, wenn der Benutzer sich registriert hat, müssen
wir das Ereignis protokollieren, okay? Jetzt müssen wir
rüber kommen und mit
Öffnen sagen , weil wir
eine Textdatei erstellen wollen , die das Audit-Protokoll
darstellt. Also ich sage mit Open. Und dann nennen
wir in Klammern das Datei-Audit. Auf dem Punkteprotokoll. Unterstreichen Sie den Protokollpunkt TXT. Das wird also der
Name der Protokolldatei sein. Und was wollen wir dann tun? Wir wollen es anhängen, okay? Also werde ich den
A-Modus einstellen und als was dann? Als Loggen Sie sich in die Partiturdatei und fügen Sie dann einen Doppelpunkt hinzu. Und was wollen wir dann tun? Wir wollen in
die Log-Datei schreiben. Ich sage Log in der
Score-Datei. Punkt rechts. Und jetzt können
wir in Klammern unsere F-Zeichenfolge verwenden, und dann können wir
einfach einen Doppelpunkt hinzufügen, und dann füge ich meine
Klammer, die doppelten Klammern, Zeitstempel und dann das Ereignis hinzu,
und das sollte Da hast du's. Also werden wir eine
Datei namens Audit Log dot TXT erstellen. Und wenn wir in die Datei schreiben, werden
wir einen Zeitstempel
schreiben Und dann auch das Ereignis. Also vielleicht hat
der Benutzer am 6. Januar 2024 um 17:30 Uhr
und 14 Sekunden, so
etwas in der Art,
weißt du, also genau das haben
wir hier gemacht. so
etwas in der Art,
weißt du, also genau das haben
wir hier gemacht Fantastisch, großartig, großartig.
Jetzt müssen wir sicherstellen, dass jede Aktivität tatsächlich protokolliert
wird. Also hier unten wird
die erste Aktivität die Registrierung
sein, richtig? Also lass uns nachsehen.
Weißt du eigentlich was? Wir können sogar protokollieren, wenn das Passwort nicht stark
genug war. Wie wär's damit? Okay? Das können wir auch protokollieren. Also genau hier drüben, wo das Print-Feedback
steht, kann
ich jetzt einfach herkommen, eine neue Zeile
hinzufügen und das Unterstrich-Ereignis
protokollieren sagen Und jetzt können
wir in Klammern einfach
Registrierungsfeld für den Benutzernamen sagen Okay. Mir gefällt das.
Was denkst du? Ich denke, das ist in Ordnung.
Registrierungsfeld für den Benutzernamen. Die Registrierung war also nicht erfolgreich, weil das
Passwort nicht stark genug war. Das gefällt mir. Also haben wir da drüben
abgesperrt. Lassen Sie uns nun das
Ereignis in einem Szenario protokollieren dem die Registrierung
tatsächlich erfolgreich war .
Und wo ist das? Wir haben es hier in Zeile
56, die besagt,
dass die Benutzerregistrierung erfolgreich
war. Direkt darunter können
wir jetzt unser
Log-Underscore-Ereignis hinzufügen Und jetzt können
wir in Klammern einfach F sagen und dann lass uns Mäntel tragen und
dann können
wir in unseren Collie-Zahnspangen sagen, benutze Okay. Und dann verwende einen Namen, der erfolgreich
registriert wurde. Wie wäre es damit? Und da hast du's. Okay. Also, was
müssen wir noch protokollieren? Wir müssen uns anmelden, wenn sich auch Benutzer angemeldet
haben. Und das haben wir hier unter der Login-Funktion, wo
es heißt, dass die Anmeldung erfolgreich war. Also hier drin werde
ich eine neue Zeile erstellen, und jetzt können wir das Ereignis protokollieren,
also das Unterstrich-Ereignis protokollieren Und dann können
wir in Klammern F,
Zeichenkette sagen und dann unsere
Mäntel und Klammern hinzufügen. Also benutze einen Namen, okay? Also, lassen Sie mich hier
etwas Platz schaffen. Benutze einen Namen, der erfolgreich
angemeldet wurde. Und da hast du es. Gibt es noch etwas
, das wir protokollieren müssen? Okay, wo der
ungültige Benutzername oder das ungültige Passwort steht, können
wir dieses
Ereignis auch hier anmelden. Also protokollieren wir alles,
alles, okay? Also protokollieren wir Ereignis F und dann können wir unsere Codes hinzufügen, und dann können wir sagen, dass der
Anmeldeversuch für den Benutzer fehlgeschlagen ist, und dann mit dem
Benutzernamen und los geht's. Okay. Mir gefällt das bis jetzt Müssen wir
noch etwas protokollieren? Wir können uns auch bei
der dritten Option anmelden. Wenn der Benutzer das System tatsächlich
verlässt, ist das nicht notwendig, aber wissen
Sie, wir könnten
es genauso gut tun Wo also „Drucken“ und „System
verlassen“ steht, können
wir das auch protokollieren Lassen Sie mich das eigentlich einfach
vor der Druckabrechnung machen. Option Nummer drei, lassen Sie uns
einfach das Underscore-Ereignis protokollieren. Und dann können wir einfach so
etwas wie Systemausgang sagen. Okay. Und da hast du's. Okay, ich denke, das sollte
funktionieren. Das sollte funktionieren. Und ich werde
jetzt weitermachen und das Programm ausführen, okay und lass uns sehen. Ich werde
ein neues Konto registrieren, also werde ich mit
Nummer eins fortfahren und die Eingabetaste drücken. Lassen Sie uns einen Benutzernamen hinzufügen. Also werde ich mit Tracy gehen. Okay? Und das Passwort, Tracy 21, OP, Hashtag Und da hast du's. Okay, großartig. Also war es erfolgreich. wir zunächst
sicher, dass wir unter
dem D TXT des Benutzers Tracy haben Das ist das
Hash-Passwort. Und jetzt der andere Dc TXT, los geht's. Fantastisch, großartig. Fantastisch. Tracy, erfolgreich registriert. Und natürlich können Sie das Format hier
sehen,
2024, am zehnten Tag im
November um 9:01 Deshalb haben wir auch
die Protokollfunktion erfolgreich hinzugefügt. Vielen Dank, dass Sie
sich das Video angesehen haben. Wir sehen uns in
der nächsten Klasse.
76. Teil 7 So fügst du die Funktion „Ansichtsprotokolle“ hinzu: Komm zurück. Lassen Sie uns also eine weitere Funktion
hinzufügen. Und dieses Mal wird es
eine Funktion für unsere angemeldeten Benutzer sein . Wir möchten, dass sie ihre eigenen persönlichen Logs
einsehen können. Das wird also in zwei Schritten geschehen. Zunächst müssen wir
eine Funktion erstellen , mit der
sie ihre Protokolle einsehen können. Und dann müssen
wir zweitens ein Post-Login-Menü erstellen. Unsere angemeldeten Benutzer haben also ein separates Menü , in dem sie das Protokoll einsehen können. Das wird also aus zwei Teilen bestehen. Lassen Sie uns zunächst
die Funktion erstellen, die es
ihnen ermöglicht, das Protokoll einzusehen. Also werde ich das direkt unter der
Haupt-Login-Funktion machen. Lassen Sie mich hier einfach eine Notiz hinzufügen,
in der es heißt: Funktion, Entschuldigung, Funktion zum Anzeigen von Protokollen. Okay? Ich werde diese Funktionsansicht unter den
Anrufprotokollen aufrufen. Und natürlich
werden wir
den Parameter user name übergeben . Okay, füge meinen Doppelpunkt hinzu. Okay, lassen Sie uns zunächst eine allgemeine
Nachricht
ausdrucken, die so etwas wie,
Sie wissen schon, Logs für den Benutzer
und dann, Sie wissen schon, für
den bestimmten Benutzer sagt Sie wissen schon, Logs für den Benutzer und dann, Sie wissen schon, für
den bestimmten Benutzer Also werde ich „Drucken“ sagen. Okay? Und dann
haben wir eine F-Zeichenfolge und dann haben wir Codes. Und dann füge ich
meinen umgekehrten Schrägstrich N hinzu, und dann können wir Logs, vier sagen Benutzer, und dann
haben wir unsere Klammern und dann können wir den Benutzernamen
haben Okay, nicht nötig,
aber es ist nett, es zu haben. Okay, jetzt öffnen
wir das Audit-Log D TextIfle,
weil es von dort kommt, werden
wir die Logs einlesen Also werde ich sagen, jetzt
geöffnet und jetzt in Klammern,
was ist der Name der Datei Es ist ein Prüfunternehmen
namens Log TXT. Und jetzt wollen
wir natürlich den Lesemodus haben. Okay, weil wir aus der Datei
lesen werden und
in unserer Spalte
als Log On
Score-Datei angeben werden. Okay, jetzt
gehen wir die
Logs und die Datei durch. Lassen Sie uns sie also in
eine Variable namens logs übergeben. Und jetzt Log Underscore mit roten Punkten in der
Datei. Okay. Und da ist es. Okay. Jetzt
müssen wir also
eine Art Vierer-Schleife erstellen , die jedes
einzelne Protokoll durchläuft . Und wonach genau
suchen wir? Wir suchen
nach Protokollen, die einem bestimmten Benutzernamen
entsprechen. Also werde ich jetzt
hier reinkommen, richtig? Und ich werde Benutzerprotokolle sagen,
okay, Unterstrich-Logs
wird gleich sein,
und jetzt sieh dir das an Ich werde hier bei
meinen Klammern anfangen. Ich werde Log Dot Strip sagen und der Grund, warum ich
die Strip-Funktion verwende, ist dass
ich alle
unnötigen Leerräume
oder Ränder aus den Benutzernamen entfernen möchte , also
sage ich Log oder Strip. Und jetzt
sage ich vier Log-In-Logs. Also suchen wir nach
jedem einzelnen Protokoll in unseren Protokollen. Und
wonach suchen wir? Wir suchen, ob der
Benutzername im Protokoll steht. Wir suchen also nach einem
ganz bestimmten Benutzernamen in unseren Protokolldateien. Wenn wir nun also tatsächlich eine Übereinstimmung für
das Protokoll mit dem
Benutzernamen
finden , was tun wir dann? Also werden wir sagen, wenn unsere Spalte durch
User-Undercool-Logs
hinzugefügt wird
, und jetzt sage ich vier
Log-in-User-Underscoe-Logs ,
was wollen wir tun? Wir wollen einfach drucken. Also sage ich „Drucken“ und
dann „Loggen“, und los geht's. Und natürlich
müssen wir eine Bedingung schaffen. Was ist, wenn kein Protokoll gefunden wurde? Wir können einfach etwas anderes sagen, und jetzt können wir drucken. Wir können sagen, dass keine Logs gefunden wurden. In Ihrem Konto, denn denken Sie daran, dass dies
für den angemeldeten Benutzer ist, und los geht's. Also nur um dir eine
kurze Zusammenfassung zu geben, oder? Wir haben die Funktion
als View-DOS-Anrufprotokolle definiert und den Benutzernamen übergeben Und jetzt haben wir eine
allgemeine Nachricht ausgedruckt, in der es heißt, Sie wissen schon, Logs für den Benutzer. Und dann der
Benutzername. Und dann haben wir das andere
Protokoll
geöffnet, die Textdatei. Wir werden
daraus als Protokolldatei lesen
und dann eine Variable
namens logs erstellt, die
tatsächlich die Methode verwendet Zeilen für jede
einzelne Protokolldatei zu
lesen. Und jetzt haben wir hier
unsere vier Schleifen erstellt , die
jedes einzelne Protokoll
in den Protokollen durchgehen und dann
prüfen , ob es eine Übereinstimmung mit
diesem Benutzernamen gibt. Wenn es nun tatsächlich eine
Übereinstimmung gibt, können
wir einfach das
Protokoll für diesen bestimmten Benutzer ausdrucken. Andernfalls sagen wir einfach in ihrem Konto
keine Protokolle gefunden wurden. Da ist es also.
Wir haben erfolgreich eine Funktion
für Videoprotokolle
erstellt. Begleiten Sie mich im nächsten Video
, in dem wir
das Post-Login-Menü
für unsere angemeldeten Benutzer erstellen werden.
77. Teil 8 So fügst du das Anmeldemenü für Beiträge hinzu: Nun, komm zurück. werden
wir
die Funktion erstellen, die das Post-Login-Menü
für unsere angemeldeten
Benutzer mit Optionen
anzeigt . Lassen Sie uns das also
direkt über der Funktion tun , um die Protokolle
anzusehen. Also genau hier. Ich werde Funktion sagen, um das Post-Login-Menü
anzuzeigen. Okay. Okay, also wie immer, nennen
wir das, sagen
wir, auf dem Punktestand posten,
Einloggen im Punktemenü Ich denke, das ist ein guter Name. Und natürlich werden
wir drinnen einen
Perimeter-Benutzernamen mit einem Doppelpunkt eingeben Okay, wir werden also eine While-Anweisung
erstellen. Also, während der Benutzer tatsächlich
angemeldet ist, lassen Sie uns jetzt die Optionen für ihn
ausdrucken. Zuallererst werde
ich also eine normale Nachricht ausdrucken . Also kann ich
etwas sagen wie Einloggen, tut
mir leid,
Post-Login-Menü, rechts, Beitrag, Dash, Login-Menü. Okay, und lassen Sie mich
mein umgekehrtes N hinzufügen , sodass
es in der neuen Zeile steht Okay, jetzt können wir die Optionen
ausdrucken. Es wird
nur zwei davon geben. Okay? Option Nummer eins wird also darin
bestehen, einfach meine Logs anzusehen. Denken Sie daran, dass dies personalisiert ist. Es ist für den angemeldeten Benutzer. Und dann Option Nummer zwei,
naja , abmelden, schätze ich Und da ist es. Also müssen wir
den Benutzer fragen , für welche Option
er sich entscheiden möchte. Also werde ich sagen, Wahl ist
gleich und dann Eingabe, und dann können wir so
etwas sagen wie, weißt
du, was würdest
du gerne tun? Fragezeichen. Okay. Also müssen wir
jetzt die IL-Anweisungen
für jedes Szenario erstellen. Also werde ich mich für die erste entscheiden wenn die Wahl gleich eins
ist, was wir tun wollen, wir
wollen die Logs einsehen, und natürlich verwenden sie einen Namen Also
rufen wir die Funktion auf,
die den Benutzernamen der Logs anzeigen heißt, also sehr, sehr einfach Und dann können wir sagen,
ob die Wahl gleich zwei ist. Und was
wollen wir dann hier machen? Nun, wir können einfach
eine Nachricht ausdrucken , in der steht, dass wir erfolgreich
abgemeldet wurden. Aber vergiss dann nicht,
dass wir jede Aufgabe protokollieren wollen. Also werden wir hier die
Log-Event-Anweisung hinzufügen. Also das Ereignis protokollieren, und dann
können wir etwas wie
Fstring sagen und dann können wir sagen, dass der Benutzer eine
Klammer und einzelne Codes hat, der
Benutzername abgemeldet Benutzername Und da hast du es. Und vergessen Sie natürlich
nicht, dass wir
die Break-Anweisung für den
Fall benötigen die Break-Anweisung für den
Fall , dass der angemeldete
Benutzer aus
irgendeinem Grund die Option drei,
vier, fünf oder eine andere
Option
wählt , die es nicht gibt. Also sagen wir
Pause und dann können
wir einfach eine Nachricht
ausdrucken, können
wir einfach eine Nachricht
ausdrucken die besagt, dass die Auswahl ungültig ist. Bitte versuchen Sie es erneut. Und da ist es. Okay, wir haben jetzt
erfolgreich die Funktion
erstellt, die das Post-Login-Menü
anzeigt. Wie verknüpfen wir es jedoch tatsächlich mit
der Login-Funktion? Denn sobald sich der Benutzer angemeldet hat, wollen
wir diese Funktion aufrufen. Also, was machen wir? Wir gehen zur Haupt-Login-Funktion über. Und jetzt schauen wir uns den Code an. Wo hat sich der Benutzer angemeldet? Hier steht,
Anmeldung erfolgreich. Also genau hier, wo es
heißt, dass der Login erfolgreich war, werde
ich jetzt
hierher kommen und jetzt unsere Funktion aufrufen. Also hier sage ich Post Underscore-Login,
Unterstrich-Menü Und natürlich fügen
wir in Klammern den
Benutzernamen hinzu und los geht's Das ist es also. Ich denke, wir haben unseren Code erfolgreich
geschrieben. Lass es uns jetzt testen. Ich werde den Code ausführen, okay? Und ich werde mich
zuerst einloggen, weißt du was? Ich werde
etwas anderes versuchen, okay? Ich registriere gerade einen neuen Benutzer. Okay? Und ich werde diesen Benutzer Boris
nennen. Okay? Und
dann gibt es Bois eins, zwei, drei mit dem Werbesymbol. Okay? Also lass Boris sich jetzt einloggen. Also Boris und dann Boris eins, zwei, drei, mit dem Anzeigensymbol. Und los geht's, ja, wir können
sehen, dass Bois jetzt das
Post-Login-Menü hat und Bois seine Logs einsehen kann, aber wenn wir auf
eins drücken, dann haben Sie es, Logs for user bodies. Die Leichen haben sich um 8:10 Uhr 35 erfolgreich
registriert. Und dann hat er sich um 8:10 45 erfolgreich
angemeldet. Und wenn wir uns unsere Benutzer mit
dem Punkt TXT ansehen, dann haben wir's. Wir haben Körper mit
seinem Hash-Passwort. Und dann haben
wir hier den Alex erfolgreich registriert. John hat sich erfolgreich angemeldet. Offensichtlich sind dies Tests,
die ich außerhalb des Bildschirms durchgeführt habe. Aber Sie können
jetzt sehen, dass das Programm tatsächlich erfolgreich funktioniert. Es gibt noch ein paar andere
Tests, die wir durchführen können. Wir können sichergehen
, dass, wenn ich
Option Nummer fünf
hier eingegeben habe , okay? Ich habe fünf eingegeben und
die Eingabetaste gedrückt ungültige
Auswahl angezeigt. Bitte versuchen Sie
es Lassen Sie mich jetzt versuchen, mich abzumelden und Sie können sehen, dass es tatsächlich
erfolgreich abgemeldet wurde Und wenn ich
im Hauptmenü die Drei drücke, können
Sie sofort sehen, dass das System verlassen
wurde und das Programm tatsächlich ordnungsgemäß
funktioniert Da ist es also. Herzlichen Glückwunsch. Wir haben
erfolgreich ein ziemlich fortschrittliches
Benutzerregistrierungssystem , mit dem sich
Benutzer registrieren können. Wir haben auch
eine Passwortprüfung implementiert, um sicherzustellen, dass das
Passwort sicher
genug ist . Es besteht aus mindestens
acht Zeichen, einem Opa-Großbuchstaben, einer Zahl und
einem speziellen Symbol Und natürlich haben wir auch
zusätzliche Sicherheitsfunktionen hinzugefügt, um das Passwort zu hashen,
sodass es in einem
Hash-Format gespeichert wird Und natürlich haben wir auch
ein Post-Login-Menü für die angemeldeten
Benutzer erstellt , in dem sie dann ihre eigenen persönlichen Logs
einsehen können Das war's, es hat Spaß gemacht.
Vielen Dank fürs Zuschauen. Wir sehen uns in der nächsten Klasse.
78. Schlussbemerkung des Projekts: In Ordnung, herzlichen Glückwunsch. Wir haben
das Benutzerregistrierungssystem erfolgreich selbst
aufgebaut , und ich wollte
Ihnen nur noch ein paar Tipps geben Sul für den Fall
, dass Sie das Programm vielleicht weiter verbessern oder hier und da ein paar Anpassungen vornehmen möchten. Anstatt
die Passwörter zu hashen, können Sie
beispielsweise versuchen, sie
zu verschlüsseln. Sie können also versuchen, die
Hashing-Funktion zu entfernen und sie dann
durch die
Verschlüsselungsfunktion zu ersetzen importieren Dazu
müssen Sie natürlich
die Kryptografie-Bibliothek Und dann können Sie sogar
eine zusätzliche Option für
den angemeldeten Benutzer hinzufügen , neben dem
Anzeigen der Protokolle Sie können eine Funktion erstellen, eine einfache mathematische Funktion die eine Art von,
Sie wissen schon, Multiplikation
oder Addition berechnen kann Sie wissen schon, Multiplikation
oder Addition Sie können den Benutzer bitten,
zwei oder drei Zahlen einzugeben, er gibt
sie an, und dann kann die Funktion eine Art von Mathematik
durchführen, sie vielleicht multiplizieren oder addieren,
Sie wissen schon, etwas
sehr, sehr Grundlegendes Sie können das auch als
zusätzliche Option für
den angemeldeten Benutzer hinzufügen . Es gibt also viele verschiedene
Möglichkeiten, wie Sie das Benutzerregistrierungssystem,
das wir gerade erstellt haben
, weiter verbessern oder modifizieren verbessern oder modifizieren können. Seien Sie also kreativ, denken
Sie um die Ecke und
suchen Sie nach Möglichkeiten, wie Sie das Programm
verbessern oder modifizieren können . Und wenn Ihnen
einige sehr interessante Ideen einfallen, würde
ich mich freuen, von Ihnen zu hören. Ich würde mich freuen, wenn auch Sie Ihren Code
teilen würden, Ihren Code
mit der Community
teilen, Ihren Code auch mit
den anderen Kursteilnehmern teilen würden. Das ist so ziemlich
alles für das Projekt. Ich hoffe, Sie hatten viel Spaß beim
Aufbau des Benutzerregistrierungssystems und hoffentlich haben Sie auch eine Menge
gelernt. Also danke fürs Zuschauen. Vielen Dank, dass Sie mit mir
das
Benutzerregistrierungssystem aufgebaut haben. Wir sehen uns in der nächsten Klasse.
79. Schlussbemerkung zum Kurs: Herzlichen Glückwunsch.
Sie sind am Ende dieses Kurses, Python
für Cybersicherheit, angelangt. Und hoffentlich fanden Sie den
Kurs sehr nützlich, informativ, lehrreich,
aber auch unterhaltsam. Und hoffentlich haben
Sie jetzt die Fähigkeiten, einige Programme
mit Python zu schreiben. Wenn Sie nun
Fragen zu den Themen haben , die wir in diesem Kurs
behandelt , stehe ich Ihnen
wie gewohnt
gerne zur Verfügung und antworte Ihnen und helfe
Ihnen auf jede erdenkliche Weise. Zögern Sie nicht,
mich zu kontaktieren. Und wenn Sie
diesen Kurs nützlich fanden, vergessen
Sie bitte nicht, eine schriftliche Bewertung für
den Kurs
abzugeben und
der Welt mitzuteilen , dass Ihnen der Kurs gefallen hat. Das ist es also. Mein Name ist Alex. Es war mir ein Vergnügen.
Wenn Sie an einigen anderen meiner
Cybersicherheitskurse teilnehmen möchten. Hoffentlich sehe ich Sie auch
in diesen Kursen. Aber wenn das auf Wiedersehen ist, lassen Sie mich nur sagen, dass ich
Ihnen alles Gute Ihrer Python-Reise und auch Ihrer Reise als
Cybersicherheitsexperte wünsche.
Ich wünsche Ihnen
nichts als Erfolg und noch
viel mehr
Erfolg für die Zukunft. Also Lassa, vielen Dank, dass
du den Kurs
für Marlin gemacht
hast und wir sehen uns beim nächsten Mal. Tschüss.