Python 101: Der komplette Leitfaden für Anfänger | Alexander O. | Skillshare

Playback-Geschwindigkeit


1.0x


  • 0.5x
  • 0.75x
  • 1x (normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Python 101: Der komplette Leitfaden für Anfänger

teacher avatar Alexander O., Web Developer & Cyber Security Expert

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

    • 1.

      Kurs-Promo

      1:45

    • 2.

      Einführung in Python

      4:53

    • 3.

      Wichtiger Hinweis Arbeiten mit Python

      4:23

    • 4.

      Wie man Thonny verwendet

      4:16

    • 5.

      Arbeiten mit Visual Studio Code

      6:41

    • 6.

      Hallo Welt

      6:31

    • 7.

      Datentypenabschnittseinleitung

      1:21

    • 8.

      Arbeiten mit Strings

      8:53

    • 9.

      Andere Variablentypen

      4:49

    • 10.

      Boolesche Operatoren aktualisiert

      4:13

    • 11.

      Arithmetische Operatoren aktualisiert

      5:33

    • 12.

      Arbeiten mit Zeichenkettenabschnittseinleitung

      1:29

    • 13.

      Grundlegende String-Manipulation

      5:35

    • 14.

      Zeichenfolgenindizierung und -aufteilung

      8:50

    • 15.

      Häufige String-Methoden

      7:19

    • 16.

      Mehr String-Manipulation

      10:58

    • 17.

      Einführung in den Abschnitt Steuerfluss und Schleifen

      1:41

    • 18.

      Intro zu Algorithmen

      5:40

    • 19.

      Falls nicht Aussagen

      11:46

    • 20.

      Einfache Kennwortprüfung

      4:38

    • 21.

      Einführung in Loops

      4:16

    • 22.

      Für und während Loops

      10:01

    • 23.

      Das BREAK-Statement

      13:16

    • 24.

      Ausprobieren außer Aussagen

      7:11

    • 25.

      Statement fortsetzen

      6:42

    • 26.

      Herausforderung beim Programmieren

      17:37

    • 27.

      Einführung in den Abschnitt Funktionen

      1:01

    • 28.

      Funktionen definieren und aufrufen

      3:16

    • 29.

      Parameter und Argumente

      7:15

    • 30.

      Schlagwortargumente

      4:27

    • 31.

      Lokale und globale Variablen

      5:19

    • 32.

      Einführung in den Abschnitt Datenstrukturen

      1:04

    • 33.

      Listen

      7:34

    • 34.

      Verwenden von Schleifen in einer Liste

      2:57

    • 35.

      Wörterbücher

      7:57

    • 36.

      Verschachtelte Wörterbücher

      4:53

    • 37.

      Sätze

      6:57

    • 38.

      Programmieren von Challenge Sets und Schleifen

      5:52

    • 39.

      Challenge Programmieren von Wörterbüchern und Schleifen

      12:31

    • 40.

      Authentifizierungssystemprojekt

      4:22

    • 41.

      Schritt 1 Erstellen der Registrierungsfunktion

      6:18

    • 42.

      Schritt 2 Erstellen der Anmeldefunktion

      7:04

    • 43.

      Schritt 3 Erstellen des Authentifizierungssystems

      8:42

    • 44.

      Einführung in den Abschnitt Dateiverwaltung

      1:17

    • 45.

      Lesen und Schreiben von Dateien

      8:04

    • 46.

      Lesen und Schreiben von Eingaben in Textdateien

      7:54

    • 47.

      Lese- und Schreibmethoden

      9:25

    • 48.

      Behandlung von Dateifehlern

      7:44

    • 49.

      Mehrere außer Blöcke

      3:33

    • 50.

      Das abschließende Statement

      5:03

    • 51.

      Einführung in den Abschnitt Bibliotheken und Module

      0:54

    • 52.

      Einführung in Bibliotheken und Module

      4:32

    • 53.

      Erstellen eines benutzerdefinierten Moduls

      6:14

    • 54.

      So arbeiten Sie mit einem Standardmodul

      3:36

    • 55.

      Kennworterzeugung mit Zufalls- und Zeichenfolgenmodulen

      7:12

    • 56.

      Das Datetime-Modul

      6:54

    • 57.

      Arbeiten mit einer externen Bibliothek

      8:48

    • 58.

      Projektvorstellung für Verschlüsselungs- und Entschlüsselungswerkzeuge

      3:34

    • 59.

      Aufgabe 1 Erstellen des Verschlüsselungsschlüssels

      6:11

    • 60.

      Aufgabe 2 Erstellen der Verschlüsselungs- und Entschlüsselungsfunktionen

      8:35

    • 61.

      Aufgabe 3 Hinzufügen der Benutzeroberfläche

      15:26

    • 62.

      Einführung in den Oop-Abschnitt

      1:08

    • 63.

      Einführung in OOP

      4:52

    • 64.

      Erstellen eines Basiskurses

      12:56

    • 65.

      Erstellen eines Basiskurses Teil 2

      4:09

    • 66.

      Verkapselung (1080p)

      6:02

    • 67.

      Vererbung

      5:52

    • 68.

      Polymorphismus

      3:26

    • 69.

      Endgültige Projektvorschau

      4:48

    • 70.

      Teil 1 Erstellen der Benutzeroberfläche

      4:39

    • 71.

      Teil 2 Hinzufügen der Benutzerregistrierungsfunktion

      4:28

    • 72.

      Teil 3 Hinzufügen der Anmeldefunktion

      6:24

    • 73.

      Teil 4 Hinzufügen des Tools zur Überprüfung der Kennwortstärke

      12:20

    • 74.

      Teil 5 Hashing der Benutzerkennwörter

      8:01

    • 75.

      Teil 6 Hinzufügen des Audit-Tools

      10:12

    • 76.

      Teil 7 Hinzufügen der Funktion Ansichtsprotokolle

      5:28

    • 77.

      Teil 8 Hinzufügen des Post-Login-Menüs

      7:05

    • 78.

      Finaler Projektabschluss

      1:44

    • 79.

      Schlussbemerkung zum Kurs

      1:10

  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Jedes Niveau

Von der Community generiert

Das Niveau wird anhand der mehrheitlichen Meinung der Teilnehmer:innen bestimmt, die diesen Kurs bewertet haben. Bis das Feedback von mindestens 5 Teilnehmer:innen eingegangen ist, wird die Empfehlung der Kursleiter:innen angezeigt.

11

Teilnehmer:innen

--

Projekte

Über diesen Kurs

Python 101: The Complete Beginner's Guide vermittelt Ihnen grundlegende Python-Programmierkenntnisse, die für die heutige Sicherheitslandschaft unerlässlich sind. Dieser speziell auf Cybersicherheits-Enthusiasten und -Experten zugeschnittene Kurs führt Sie von den Grundlagen von Python bis hin zum Erstellen von Skripten, die Sicherheitsaufgaben automatisieren, vertrauliche Daten sicher handhaben und effizient mit Systemressourcen interagieren.

Für wen ist dieser Kurs geeignet?

  • Studenten, die Python-Kenntnisse für Einstiegspositionen erwerben möchten.

  • Aktuelle Sicherheitsanalysten, die ihre Toolkits mit Python zur Automatisierung von Aufgaben erweitern möchten.

  • IT- und Sicherheitsbegeisterte mit wenig oder keinem Programmierhintergrund, die Python im Sicherheitskontext verwenden möchten.

Keine Programmiererfahrung erforderlich – nur die Bereitschaft zum Lernen und Erkunden!

Was du lernen wirst

Durch praktische Übungen, Beispiele aus der Praxis und projektbasiertes Lernen erhalten Sie:

  • Python Grundlagen: Beginnen Sie mit Python Syntax, Variablen, Datentypen, Steuerungsstrukturen und Funktionen.

  • Datenverarbeitung für Sicherheit: Verwalten und verarbeiten Sie Daten mit Pythons Listen, Wörterbüchern und Dateiverarbeitungsfunktionen, die für die Arbeit mit Protokollen, IP-Adressen und Anmeldeinformationen unerlässlich sind.

  • Dateiverwaltung und Automatisierung: Öffnen, Lesen und Schreiben von Dateien, um sich wiederholende Aufgaben zu automatisieren und die Datenverarbeitung zu optimieren.

  • Sichere Programmierpraktiken: Erfahren Sie, wie Sie Kennwörter und Hash-Daten sicher handhaben und vertrauliche Informationen gemäß Best Practices verwalten.

  • Einführung in die objektorientierte Programmierung: Erfahren Sie, wie Klassen und Objekte Sie dabei unterstützen können, modularen, wiederverwendbaren Code für Sicherheitsanwendungen zu erstellen.

  • Praktische Cybersicherheitsanwendungen: Erstellen Sie Skripte zur Lösung sicherheitsrelevanter Aufgaben wie Überprüfen von Anmeldeversuchen, Filtern verdächtiger IP-Adressen und Arbeiten mit Basisverschlüsselung.

Kurs-Highlights

  • Cybersicherheitsprojekte: Wenden Sie Ihre Kenntnisse in Projekten an, die reale Sicherheitsszenarien simulieren.

  • Schritt-für-Schritt-Anleitung: Jedes Modul baut auf dem vorherigen auf, sodass Sie problemlos weiterverfolgen können, selbst wenn Sie neu im Programmieren sind.

  • Praktisches Lernen: Sammeln Sie praktische Erfahrungen mit Übungen, Übungen und Quizfragen, um jede Fähigkeit zu vertiefen.

  • Code und Beispiele: Folgen Sie Beispielen zum Thema Cybersicherheit, um Python so anzuwenden, dass es für Sicherheitsaufgaben sinnvoll ist.

Warum Python für Cybersicherheit?

Python ist eine der vielseitigsten Sprachen im Bereich Cybersicherheit und bietet Flexibilität, Einfachheit und ein umfangreiches Bibliothekssystem, das sich perfekt für Datenanalyse, Automatisierung und Bedrohungserkennung eignet. Ganz gleich, ob Sie Protokolle scannen, Netzwerkverkehr analysieren oder benutzerdefinierte Tools erstellen – Python kann Ihnen helfen, effektiver zu arbeiten und Ihre Sicherheitsrolle zu verbessern.

Nehmen Sie noch heute am Kurs teil!

Machen Sie den ersten Schritt in die Python-Programmierung und entwickeln Sie Fähigkeiten, die Ihre Karriere im Bereich Cybersicherheit unterstützen. Am Ende dieses Kurses sind Sie in der Lage, Python selbstbewusst zu verwenden, um Aufgaben zu automatisieren, Daten zu analysieren und sicherheitsorientierte Skripte zu erstellen.

Melden Sie sich jetzt an und machen Sie sich bereit, die Leistungsfähigkeit von Python für die Cybersicherheit zu nutzen!

Triff deine:n Kursleiter:in

Teacher Profile Image

Alexander O.

Web Developer & Cyber Security Expert

Kursleiter:in


My passion is teaching people through online courses in a fun and entertaining manner.  I have been teaching online for about 3 years now and during this period, I have created over 25 different courses on different platforms including my own personal platform - The Web Monkey Academy.

What would you like to learn?

Would you like to learn how to build and manage your WordPress website? Would you like to learn advanced skills that will make you a true WordPress developer? Would you like to learn how you can establish a successful career as a web developer? Would you like to learn the basics of information and cyber security?

 If you want to do any of these things, just enroll in the course. I'm always improving my courses so that they stay up to dat... Vollständiges Profil ansehen

Skills dieses Kurses

Entwicklung Programmiersprachen Python
Level: Beginner

Kursbewertung

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen auf Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

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.