Python Mastery: Ultimativer Kurs für Fortgeschrittene für 2026 | Arno Pretorius | Skillshare

Playback-Geschwindigkeit


1.0x


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

Python Mastery: Ultimativer Kurs für Fortgeschrittene für 2026

teacher avatar Arno Pretorius, IT Freelancer

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.

      Course Introduction

      2:47

    • 2.

      Denkprozess

      3:55

    • 3.

      Kursressourcen

      0:51

    • 4.

      Zugriff auf Online-Kursressourcen

      1:30

    • 5.

      Python - Installation und Einrichtung - Windows

      4:26

    • 6.

      VS Code - Installation und Einrichtung - Windows

      1:56

    • 7.

      Erste Schritte mit unserem Projekt - Windows

      6:27

    • 8.

      Python - Installation und Einrichtung - MacOS

      2:28

    • 9.

      VS Code - Installation und Einrichtung - MacOS

      1:19

    • 10.

      Erste Schritte mit unserem Projekt - MacOS

      5:25

    • 11.

      Verbessern Sie Ihren Workflow mit Code Runner – [Optional]

      4:44

    • 12.

      Reguläre Ausdrücke

      0:57

    • 13.

      Arbeiten mit regulären Ausdrücken – [Übung]

      10:17

    • 14.

      Drucken mehrerer Werte

      3:37

    • 15.

      Arbeiten mit verschiedenen Ausgaben – [Übung]

      3:35

    • 16.

      Fallaussagen übereinstimmen

      3:08

    • 17.

      Arbeiten mit Übereinstimmungsfallaussagen – [Übung]

      8:26

    • 18.

      Module

      1:43

    • 19.

      Durchsuchen des Python-Modulindexes

      1:22

    • 20.

      Integrieren benutzerdefinierter und integrierter Module – [Übung]

      9:14

    • 21.

      Pakete, Pip und PYPI

      2:03

    • 22.

      Verwenden externer Pakete – [Übung]

      10:55

    • 23.

      Hilfreiche Ressourcen

      1:24

    • 24.

      Zufallszahlen erzeugen

      0:56

    • 25.

      Tiefgehender Einblick in das Zufallsmodul – [Übung]

      16:07

    • 26.

      Erkunden des Secrets-Moduls - [Übung]

      4:01

    • 27.

      Tiefgehender Einblick in das numpy Modul – [Übung]

      14:20

    • 28.

      Dekorateure

      2:10

    • 29.

      Erstellen unseres ersten Dekorators - [Lab]

      8:57

    • 30.

      Arbeiten mit Dekorateuren – [Übung]

      10:32

    • 31.

      Datei-E/A

      6:01

    • 32.

      Dateioperationen durchführen – [Übung]

      11:20

    • 33.

      Abrufen von Datei-Metadaten

      1:09

    • 34.

      Attribute für Metadaten der Ausgabedatei – [Lab]

      4:23

    • 35.

      Parameter und Argumente

      4:51

    • 36.

      Unterscheiden zwischen Parametern und Argumenten - [Übung]

      7:13

    • 37.

      Positions- und Keywordargumente

      5:37

    • 38.

      Positions- und Keyword-Argumente zuordnen – [Übung]

      16:35

    • 39.

      Argumenttypen mischen – [Optionales Labor]

      10:28

    • 40.

      Standardargumente

      4:35

    • 41.

      Arbeiten mit Standardargumenten - [Übung]

      11:53

    • 42.

      Argumente mit variabler Länge

      4:09

    • 43.

      Verwenden von Argumenten mit variabler Länge - [Übung]

      8:50

    • 44.

      Auspacken des Containers

      5:21

    • 45.

      Auspacken von Containern – [Übung]

      13:31

    • 46.

      Lokale und globale Argumente

      2:35

    • 47.

      Analysieren des Umfangs von Argumenten – [Übung]

      4:09

    • 48.

      Verwenden des globalen Schlüsselworts – [Optionales Lab]

      4:29

    • 49.

      Variablen als Argumente senden

      1:48

    • 50.

      Arbeiten mit Variablen als Argumenten – [Übung]

      4:02

    • 51.

      Parameter werden durch Wert oder Referenz übergeben

      1:48

    • 52.

      Parameterwerte und Referenzen erkunden – [Übung]

      12:01

    • 53.

      Der Sternchen-Operator

      1:44

    • 54.

      Anwenden des Sternchen-Operators - Pt. 1 – [Labor]

      16:54

    • 55.

      Anwenden des Sternchen-Operators - Pt. 2 – [Labor]

      6:04

    • 56.

      Lambda-Funktionen

      1:58

    • 57.

      Vorgänge mit Lambda durchführen – [Übung]

      13:28

    • 58.

      Lambda-Funktionen auf andere Funktionen anwenden

      1:38

    • 59.

      Lambda in andere Funktionen einbetten – [Übung]

      11:05

    • 60.

      Was ist objektorientierte Programmierung?

      1:09

    • 61.

      Klassen und Objekte

      3:32

    • 62.

      Erstellen der ersten Klasse und des ersten Objekts - [Übung]

      7:38

    • 63.

      Detaillierter Einblick in Klassen und Objekte – [Optionales Labor]

      6:12

    • 64.

      Benutzerdefinierte Methoden

      1:45

    • 65.

      Integrieren benutzerdefinierter (Instanz-)Methoden – [Übung]

      9:33

    • 66.

      Arbeiten mit statischen Methoden und Klassenmethoden – [Übung]

      12:28

    • 67.

      Was ist Vererbung?

      1:47

    • 68.

      Verwenden von Vererbung - [Übung]

      12:43

    • 69.

      Abstraktion

      1:51

    • 70.

      Arbeiten mit Abstraktion – [Übung]

      17:07

    • 71.

      Kollektionen

      3:06

    • 72.

      Entdecken Sie das Sammlungsmodul – [Lab]

      15:38

    • 73.

      Itertools

      1:38

    • 74.

      Arbeiten mit Itertools – [Übung]

      18:42

    • 75.

      Kontextmanager

      2:40

    • 76.

      Arbeiten mit Kontextmanagern – [Übung]

      7:50

    • 77.

      Integrierte und benutzerdefinierte Kontextmanager

      1:27

    • 78.

      Erstellen eines benutzerdefinierten Kontextmanagers – [Übung]

      17:31

    • 79.

      Generatoren

      4:13

    • 80.

      Arbeiten mit Generatoren – [Übung]

      7:23

    • 81.

      Effizienz des Generatorspeichers

      2:47

    • 82.

      Flaches und tiefes Kopieren

      0:55

    • 83.

      Verwenden von flachem und tiefem Kopieren – [Übung]

      8:41

    • 84.

      Protokollierung

      1:38

    • 85.

      Protokollierungsmeldungen implementieren – [Übung]

      15:57

    • 86.

      JSON-Dateien

      0:42

    • 87.

      Arbeiten mit JSON – [Übung]

      9:19

    • 88.

      Warteschlangen

      2:43

    • 89.

      Warteschlangen abfragen – [Übung]

      8:13

    • 90.

      Rekursion

      0:41

    • 91.

      Ausführen rekursiver Aufrufe – [Übung]

      11:19

    • 92.

      Verständnisse

      1:54

    • 93.

      Verwenden von Listenverständnissen - [Übung]

      13:09

    • 94.

      Wörterbuchverständnisse verwenden - [Übung]

      15:33

    • 95.

      Threads und Prozesse

      4:36

    • 96.

      Mehrfachverarbeitung

      0:28

    • 97.

      Mehrthreading

      0:35

    • 98.

      Integration von Multiprozessor – [Übung]

      6:28

    • 99.

      Integration von Multi-Threading – [Übung]

      6:31

    • 100.

      Einzelteilprüfungen

      0:56

    • 101.

      Standardgerättests durchführen – [Labor]

      12:14

    • 102.

      Virtuelle Umgebungen

      0:43

    • 103.

      Erstellen einer virtuellen Umgebung – [Übung]

      7:53

    • 104.

      Erstellen eines eigenen Projekts

      0:46

    • 105.

      Vielen Dank!

      0:44

  • --
  • 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.

73

Teilnehmer:innen

1

Projekte

Über diesen Kurs

Was du brauchst:

Dieser Kurs richtet sich an diejenigen, die über grundlegende Kenntnisse von Python verfügen und ihre Fähigkeiten auf die nächste Stufe bringen möchten. Sie sollten bereits wissen, wie Sie mit Variablen, Datentypen, grundlegenden Bedingungen, Schleifen und Funktionen usw. arbeiten.

Wenn Sie Python noch nicht kennen, empfehle ich Ihnen, mit meinem Python: Ultimate Beginners Course für 2025 auf Skillshare zu beginnen. Er behandelt die Grundlagen, die Sie benötigen, bevor Sie in diesen Fortgeschrittenenkurs eintauchen.

In diesem Kurs verwenden Sie Visual Studio Code (VS Code) als Programmiereditor. Es ist kostenlos, leicht und wird von Entwicklern auf der ganzen Welt häufig verwendet. Ich führe Sie durch den Setup-Prozess, einschließlich der Installation von Python und der Konfiguration von VS Code. Sie benötigen lediglich einen Desktop- oder Laptop und eine Internetverbindung.

Was Sie lernen werden:

In diesem Kurs bauen Sie auf Ihren grundlegenden Python-Kenntnissen auf, um fortgeschrittene Programmierkonzepte in dieser vielseitigen und leistungsstarken Sprache zu beherrschen. Der Kurs verbindet Theorie mit praktischer Praxis und bringt Ihnen bei, effizienten und skalierbaren Python-Code zu schreiben und dabei den Schwerpunkt auf praktischen Anwendungen zu legen.

Am Ende des Kurses verfügen Sie über ein solides Verständnis der Python-Konzepte auf mittlerer Ebene, über das Selbstvertrauen, komplexere Anwendungen zu entwickeln, und über ein Verständnis für das Potenzial von Python zur Lösung realer Probleme. mehr

Hier sind die wichtigsten Themen, die Sie in diesem Kurs beherrschen:

  • Reguläre Ausdrücke
  • Drucken mehrerer Werte
  • Übereinstimmender Fall
  • Module
  • Pakete, PIP und PYPI
  • Zufallszahlen erzeugen
  • Dekorateure
  • Datei-E/A
  • Abrufen von Datei-Metadaten
  • Parameter und Argumente
  • Positions- und Keywordargumente
  • Argumenttypen mischen
  • Standardargumente
  • Argumente mit variabler Länge
  • Auspacken des Containers
  • Lokale und globale Argumente
  • Variablen als Argumente senden
  • Parameter werden durch Wert oder Referenz übergeben
  • Der Sternchen-Operator
  • Lambda-Funktionen
  • Lambda-Funktionen auf andere Funktionen anwenden
  • Objektorientierte Programmierung
  • Klassen und Objekte
  • Benutzerdefinierte Methoden
  • Kurs Statische Methoden und Klassenmethoden
  • Vererbung
  • Abstraktion
  • Kollektionen
  • Itertools
  • Kontextmanager
  • Integrierte und benutzerdefinierte Kontextmanager
  • Generatoren
  • Generatoren: Speichereffizienz
  • Flaches und tiefes Kopieren
  • Protokollierung
  • JSON-Dateien
  • Warteschlangen
  • Rekursion
  • Verständnisse
  • Threads und Prozesse
  • Multi-Threading und Multi-Processing
  • Einzelteilprüfungen
  • Virtuelle Umgebungen

Was Sie tun werden:

Während des gesamten Kurses lernen Sie zunächst die theoretischen Grundlagen der wichtigsten Konzepte kennen, gefolgt von praktischen Übungen, mit denen Sie das Gelernte anwenden können. Diese praktischen Übungen helfen Ihnen, Ihr Verständnis zu vertiefen und sicherzustellen, dass Sie bereit sind, komplexere Aufgaben zu bewältigen.

Im Laufe des Kurses arbeiten Sie an einigen Miniprojekten, in denen alle Kenntnisse und Fähigkeiten, die Sie bisher erworben haben, zusammengeführt werden.

Schließlich erstellen Sie im Abschnitt "Projekte und Ressourcen" Ihr eigenes Projekt. Hier nehmen Sie die erlernten Fähigkeiten zur Hand, um etwas Nützliches für sich selbst zu entwerfen und zu bauen, und stellen alles auf eine praktische und personalisierte Weise zusammen.


Vorteile des Kurses:

Dieser Kurs beinhaltet:

  • Mehr als 10 Stunden Video auf Abruf
  • Theoretische Lektionen zum Erlernen grundlegender Konzepte
  • Praktische Übungen zur Anwendung Ihres Wissens
  • Mini-Praxisprojekte mit Lösungen
  • Über 100 Lektionen insgesamt

Über deinen Kursleiter:

Hallo, ich bin Arno Pretorius, ein qualifizierter IT-Lehrer mit Erfahrung im Unterrichten sowohl im Präsenz- als auch im Online-Bereich sowie mit Fachkenntnissen in AWS und Softwareentwicklung. Meine Leidenschaft ist es, Programmieren für jedermann zugänglich und angenehm zu machen, unabhängig von seinem Hintergrund.

Möchten Sie mehr erfahren?

Wenn Ihnen dieser Kurs gefallen hat und Sie in Zukunft möglicherweise weitere Kurse auf dem Laufenden halten möchten, folgen Sie mir bitte auf Skillshare!

Triff deine:n Kursleiter:in

Teacher Profile Image

Arno Pretorius

IT Freelancer

Kursleiter:in

Arno is an IT freelancer and former computer science teacher specialising in web development, cloud computing, and DevOps. He focuses on practical, hands-on teaching that helps learners turn knowledge into real-world projects.

He holds a BSc in Information Technology and a Postgraduate Certificate in Education (PGCE), and is an AWS Certified Solutions Architect and Developer, bringing real-world cloud and industry experience to his teaching.

To stay up to date with his courses you can follow his Skillshare profile to receive the latest updates and announcements.

Vollständiges Profil ansehen

Level: Intermediate

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. Course Introduction: Hallo und willkommen zum Python Mastery Ultimate-Kurs für Fortgeschrittene Ich bin Anna Pretorius, freiberufliche IT-Mitarbeiterin und formelle Informatiklehrerin. Dieser Kurs richtet sich an Lernende, Dieser Kurs richtet sich die die Python-Grundlagen bereits verstehen und bereit sind, ihr Wissen auf sinnvolle und praktische Weise zu erweitern Wenn Sie mit Variablen, Datentypen, Schleifen, Funktionen und Bedingungen vertraut sind, sind Sie bereit für diesen sind Sie bereit Machen Sie sich keine Sorgen, wenn Sie ganz neu sind. Ich empfehle Ihnen, zuerst mit meinem Anfängerkurs zu beginnen. Dann können Sie hierher zurückkehren, sobald Sie Ihr Fundament aufgebaut haben und mit den Grundlagen von Pierson vertraut sind mit den Grundlagen von Pierson vertraut In diesem Kurs werden wir nun mit Visual Studio Code arbeiten, einem der beliebtesten Editoren für die berufliche Weiterentwicklung Ich führe Sie durch die Installation von Python, Einrichtung von Visual Studio Code und die korrekte Konfiguration, sodass Sie mit dem Schreiben und Ausführen von Code vertrauensvoll beginnen können. Von dort aus werden wir uns nun einer Vielzahl von Themen für Fortgeschrittene befassen. Sie werden sich mit Themen wie Modulen, Dateiverwaltung, Dekoratoren, Lambda-Funktionen und fortgeschritteneren Aspekten der objektorientierten Programmierung wie Vererbung und Abstraktion vertraut Dateiverwaltung, Dekoratoren, Lambda-Funktionen und fortgeschritteneren Aspekten der objektorientierten Programmierung machen, und wir werden uns auch mit Paketen befassen weitere Themen behandelt, z. B. Themen zu werden noch viele weitere Themen behandelt, z. B. Themen zu Generatoren, Kontextmanagern, Deep Coping , Rekursion, JSON, ES, Unit-Tests, virtuelle Umgebungen, Multithreading und Multiprocessing. Wie Sie sehen, gibt es eine Menge Inhalt zu behandeln und viel zu bearbeiten, aber machen Sie sich keine Sie sind in guten Händen, und wir werden das gemeinsam durchstehen. Dieser Kurs besteht aus einem ausgewogenen Verhältnis zwischen klaren Erklärungen und praktischer Praxis. Außerdem werden Sie praktische Übungen absolvieren, um echten Code zu schreiben und Mini-Projekte in Angriff zu nehmen, die Ihre Fähigkeiten herausfordern und erweitern sollen. Schließlich werden Sie im Bereich Projekte und Ressourcen alles aus Ihrem eigenen Projekt zusammenstellen und so etwas Praktisches und Personalisiertes erstellen. Am Ende dieses Kurses werden Sie das Selbstvertrauen haben, fortgeschrittenere Anwendungen zu erstellen, saubereren und skalierbareren Code zu schreiben und zu verstehen, wie Python-Zwischenfunktionen in realen Szenarien verwendet werden. Dieser Kurs umfasst nun mehr als 10 Stunden strukturierter Lektionen und es werden mehr als 100 Lektionen behandelt. Er wird Ihnen dabei helfen, die Lücke zwischen Anfängern und erfahrenen Entwicklern zu schließen Vertrauen Sie mir also, Sie sind in guten Händen. 2. Denkprozess: Hallo, Eon. Und willkommen zur nächsten Lektion, die sich auf den Sortierprozess konzentrieren wird. In dieser Vorlesung werde ich Ihnen also nur einige Ratschläge geben, die Sie befolgen können, wenn Sie in diesem Kurs wissen möchten , wie wir unseren Salzprozess strukturieren , wie wir unseren Salzprozess strukturieren können. Lassen Sie uns also weitermachen und loslegen. Also den Prozess sortieren. Bevor wir in den Kurs eintauchen, müssen wir nun unseren Sortierprozess strukturieren. Also möchte ich Ihnen nur ein paar Ratschläge geben . Also lass uns weitermachen und zur Sache kommen. Der erste Ratschlag, den ich Ihnen geben möchte , ist, einen Schritt nach dem anderen zu machen. Machen Sie diesen Kurs also Schritt für Schritt. Bitte bürsten Sie nicht, oder? Nehmen Sie sich Zeit. Wenn Sie eine bestimmte Lektion viel Zeit brauchen, um sie zu meistern, verlieren Sie nicht die Hoffnung. Du wirst es mit der Zeit verstehen. Manche Menschen verstehen verschiedene Konzepte sofort beim ersten Mal. Andere brauchen länger, um bestimmte Konzepte zu verstehen. Und da ich selbst in meinem Leben bestimmte Fächer gelernt habe, habe ich mir natürlich viel Zeit genommen, um bestimmte Bereiche von Konzepten zu verstehen, und in anderen speziellen Themen beherrsche ich fast sofort Für jeden ist es anders. Jeder wird irgendwann vor einer Herausforderung stehen , also lassen Sie sich bitte nicht entmutigen und gehen Sie es langsam und einfach und stetig Ein weiterer Tipp, den ich Ihnen geben möchte, ist, einen Zeitplan festzulegen und sich daran zu halten Jetzt müssen Sie in Ihrem Zeitplan natürlich nicht extrem streng und detailliert sein. Was ich damit meine, Sie müssen es nicht nach Minuten, nach genauen Stunden und nach dem Zeitplan usw. planen Minuten, nach genauen Stunden . Damit meine ich, dass Sie einen Zeitplan haben , der Sie nicht überfordert, aber er wird Sie gerade genug antreiben, um konsequent und diszipliniert zu bleiben und sogar motiviert zu sein, den Kurs abzuschließen Behalte das also im Hinterkopf. Meiner Erfahrung nach würde ich Ihnen empfehlen, einen Zeitplan zu wählen , der für Sie flexibler ist. Ich selbst mag es nicht, starr zu sitzen, und wie kann ich genau sagen , wie viel Zeit, Minuten und Stunden aufgewendet wurden viel Zeit, Minuten und Stunden aufgewendet Ich mag es nicht, diesen Ansatz zu verfolgen. Oder was die Termine angeht, ich halte es gerne flexibler und sage: Okay, ich möchte einen bestimmten Betrag pro Monat für die Arbeit an diesem Kurs ausgeben einen bestimmten Betrag pro Monat für die Arbeit an diesem Kurs und ich möchte nur etwa fünf bis zehn Lektionen beenden. Das wäre also mein Ansatz und wie ich ihn mache. Es würde also davon abhängen, wie Sie es vorziehen. Ich gebe dir nur ein Beispiel. Aber wie dem auch sei, es ist gut, zumindest einen Basisplan zu haben , an den man sich halten kann. Nun, der wichtigste Ratschlag ich Ihnen hier geben möchte, ist der letzte, der darin besteht , positiv zu bleiben und zu wissen, dass es kein Wettlauf um den Abschluss des Kurses ist , sondern eine langsame und stetige Reise, um langfristiges Wissen zu erwerben, um hier die besten Ergebnisse zu erzielen. Das meine ich hier. Sie möchten diesen Kurs nicht überstürzen, sondern sich Zeit nehmen, auch wenn Sie der Meinung sind, dass die Konzepte sehr leicht zu verstehen sind , lassen Sie sich lieber Zeit. Nehmen Sie es regelmäßig vor und arbeiten Sie im Kurs gelegentlich oder regelmäßig daran, je nach Ihren Terminen. Das ist eine sehr wichtige Sache , die ich hier erwähnen möchte. Auch hier werden viele Dinge mit dem Fokus verknüpft, positiv zu bleiben. Auch hier gilt: Wenn es einige Zeit dauert, bestimmte Konzepte zu verstehen, arbeiten Sie sie durch, geben sich Mühe, und Sie werden es schaffen. Bleiben Sie positiv und wissen Sie, dass es einige Zeit dauern wird, aber gehen Sie es langsam an, lassen Sie es ruhig angehen und entspannen Sie sich, während Sie den Kurs absolvieren. Ich habe hier mein Bestes getan, um es während des gesamten Kurses so einfach wie stressfrei zu gestalten. Denken Sie also daran , sich zu entspannen, tief durchzuatmen und den Kurs in aller Ruhe zu absolvieren und sich zu amüsieren. Ordnung, Leute. Also das ist alles, was ich hier in Bezug auf den Denkprozess erwähnen wollte. 3. Kursressourcen: Hallo zusammen. Und willkommen zur nächsten Lektion, die sich auf Kursressourcen konzentrieren wird . Lassen Sie uns also einen Blick darauf werfen. Also gut, du fragst dich wahrscheinlich, okay, wie werden wir programmieren? Als Erstes müssen wir also sicherstellen, dass Python auf unserem Gerät installiert ist . Also egal, ob wir an einem Windows-PC oder an einem MacOS-Gerät arbeiten. Dann werden wir Visual Studio-Code, allgemein als VS-Code bezeichnet, installieren und einrichten allgemein als VS-Code bezeichnet . Dies ist ein Codierungseditor , mit dem wir unsere PysON-Programme erstellen und ausführen können unsere PysON-Programme erstellen und ausführen Ich weiß, das klingt vielleicht ein bisschen stressig und besorgniserregend, aber mach dir keine Sorgen Ich werde es für Sie so einfach wie möglich aufschlüsseln und Ihnen genau zeigen, wie wir mit allem anfangen werden. Also mach dir keine Sorgen. Sie sind in guten Händen. 4. Zugriff auf Online-Kursressourcen: Hallo zusammen und willkommen zur nächsten Lektion, die sich auf den Zugriff auf unsere Online-Kursressourcen konzentrieren wird . Damit meine ich, dass ich Ihnen nur zeigen werde, wie Sie auf die erforderlichen Websites zugreifen können , um PysON herunterzuladen und einzurichten und auch Visual Studio-Code einzurichten Ich werde Ihnen nur zeigen, wie Sie auf die Websites zugreifen können. In den späteren Lektionen werde ich Ihnen tatsächlich zeigen, wie Sie sie installieren und einrichten. Dies ist nur eine Lektion darüber, wie man auf sie zugreift. Sie können also zu Google gehen und einfach PysON Download eingeben, und dann können wir einfach Google-Suche sagen Und auf diesem Link hier werden Sie sehen, dass er PySon herunterladen heißt und Sie möchten darauf klicken Dadurch gelangen Sie zur folgenden Seite hier, bei der es sich um einen Schrägstrich für Python- oder Forward-Slash-Downloads handelt Forward-Slash-Downloads Also werden wir PysON jetzt nicht installieren. Ich möchte dir nur helfen, auf die Website zu gelangen. Als Nächstes werden wir auch Visual Studio Code verwenden. Sie können also in Google weitermachen und Visual Studio Code Download eingeben. Ich schaue mir die Google-Suche an. Und Sie werden hier diesen Link sehen, besagt, dass Sie Visual Studio Code, Mac Linux und Windows herunterladen müssen, damit wir ihn öffnen können. Und hier ist die Seite, die wir benötigen, um einzurichten Visual Studio-Code als unseren Codierungseditor einzurichten. Ordnung, Leute. Das war's für diese Lektion, ganz einfach. Ich möchte Ihnen nur zeigen, wie Sie in den kommenden Lektionen auf diese Websites zugreifen können diese Websites , um später darauf zurückgreifen zu können. 5. Python – Installation und Setup – Windows: Hallo, alle zusammen. Willkommen zur nächsten Lektion, die sich mit der Installation von PySON auf einem Windows-Gerät befassen wird . Lass uns anfangen Als Erstes müssen Sie die folgende Webadresse aufrufen, die sich auf python.org befindet. fordslash lädt Forwardlas herunter folgende Webadresse aufrufen, die sich auf python.org befindet. fordslash lädt Forwardlas Nachdem Sie diese Webadresse eingegeben haben, werden Sie auf die folgende Seite weitergeleitet, wie Wir werden jetzt PySon für Windows herunterladen. Nun zu der Version, die Sie erhalten, wenn Sie auf diese Seite gehen, es muss nicht exakt dieselbe Version sein, also machen Sie sich keine Sorgen, solange sie nicht zu weit entfernt ist Richtig, wir können weitermachen und sehen, wie Pison heruntergeladen wird. Hier ist das Setup für uns , das wir öffnen können Es wird uns durch den Einrichtungsassistenten führen. Wir werden also sicherstellen wollen, dass wir bei der Installation von Pit Ex Administratorrechte verwenden , und wir wollen auch PysonTex zu unserem Pass hinzufügen Dies ist sehr wichtig, nur um sicherzustellen , dass alle unsere Benutzer auf unserem System PysON in jeder Art von Anwendung ausführen können, die die Ausführung von Python ermöglicht Gibt es irgendwelche Einschränkungen? Dann möchten Sie benutzerdefinierte Installation sagen. Okay, stellen Sie sicher, dass alles ausgewählt ist, wie Sie hier sehen können. Dann können wir als Nächstes weitermachen. Und dann willst du sagen, installiere PysON für alle Benutzer hier, in diesem Fall ist es 3.13 Stellen Sie also sicher, dass Sie die folgende Option auswählen, und das wird nur sicherstellen, dass alle Benutzer auf Ihrem Gerät PySon verwenden können Danach können Sie weitermachen und „Installieren“ sagen. Auf Ihrem Bildschirm wird eine Aufforderung angezeigt, und meiner ist derzeit abgeblendet, und Sie möchten nur Ja zu diesem Sicherheitshinweis sagen So können wir sehen, dass das Setup gerade läuft. Es wird also nur einen Moment oder so dauern , bis PySON auf unserem System installiert ist Wir müssen uns also ein bisschen gedulden , bis es eingerichtet und fertig ist Also lass uns dem einen Moment Zeit geben. In Ordnung. Willkommen zurück. Herzlichen Glückwunsch zur erfolgreichen Einrichtung von PySON auf Ihrem Windows-PC Wie wir jetzt sehen können, war das Setup ein Erfolg, gut gemacht Jetzt können wir weitermachen und das schließen und ich werde es einfach minimieren. Um sicherzustellen, dass alles korrekt installiert wurde und keine Probleme auftreten, würde ich Ihnen dringend empfehlen , Ihren PC jetzt neu zu starten. Sie also bitte sicher, dass Sie dies tun. Das ist sehr wichtig. Sie können also einfach zu Ihrem PC gehen und weitermachen und sagen, Neustart, los. Und dann, sobald Ihr PC neu gestartet ist, führe ich Sie natürlich durch den letzten Bestätigungstest, führe ich Sie natürlich durch den letzten Bestätigungstest um sicherzustellen, dass PySon tatsächlich auf Ihrem System installiert wurde und dass der Pass System Mind auf Ihrem PC bestanden hat Das ist also die Hauptsache. Also muss die Umgebungsvariable für PySON geladen und konfiguriert werden Also lass uns weitermachen und das tun. Lassen Sie uns also die PCs neu starten und dann sind wir wieder da, sobald unsere Computer neu gestartet wurden In Ordnung, also willkommen zurück. Ich vertraue also darauf, dass Sie Ihren PC neu gestartet haben. Jetzt müssen Sie nur noch nach der Befehlszeile suchen , um endgültig zu bestätigen , dass PysON auf unseren Systemen korrekt eingestellt auf unseren Systemen korrekt eingestellt ist Sie können einfach CMD eingeben, um es schnell zu finden. Also hier ist unsere Eingabeaufforderung. Und alles, was ich jetzt tun werde, ist, das nur für Ihr Sehvergnügen anzupassen, und ich werde einfach PySon Dash Dash-Version sagen Sie können also weitermachen und das auch eingeben, und dann können wir die Eingabetaste drücken Und wenn alles erfolgreich war, sollte es die PySON-Version ausgeben , die Sie auf Ihrem System installiert haben Und das ist wie eine letzte Bestätigungsprüfung, um sicherzustellen, dass alles reibungslos gelaufen ist und wir startklar sind. In Ordnung. Stellen Sie also sicher, dass Sie das sehen können und dass Sie PysON auf Ihrem Computer installiert haben , und das war's So können Sie PysON auf Ihrem System installieren und auch überprüfen, ob keine Probleme oder Konflikte oder ähnliches gibt und ob es korrekt installiert wurde Ordnung, geh. In dieser Lektion können Sie also weitermachen und PySon auf einem Windows-Gerät installieren PySon auf einem Windows-Gerät 6. VS Code – Installation und Einrichtung – Windows: Hallo, alle zusammen. Und willkommen zur nächsten Lektion, die sich auf das Herunterladen und Einrichten von Visual Studio-Code auf einem Windows-Gerät konzentrieren wird . Lassen Sie uns also anfangen. Als Erstes müssen Sie die folgende URL aufrufen, die Sie als Code hinzufügen können: visualstudio.com flash download. Sie werden dann auf als Code hinzufügen können: visualstudio.com flash download. Sie diese Seite weitergeleitet, auf der Sie Visual Studio-Code für das von Ihnen angegebene Betriebssystem herunterladen können Visual Studio-Code für das von Ihnen angegebene Betriebssystem Nun, es wird auf Windows laufen. Wir können hier die Option für Windows 10 und 11 auswählen , sodass wir darauf klicken können und dadurch die Installationsanleitung für uns und den Setup-Assistenten heruntergeladen werden. Wir können weitermachen und das öffnen. Seien wir einfach geduldig, bis es sich öffnet. Wir wollen die Vereinbarung akzeptieren. Gehen wir zur nächsten Stufe. Es wird in einem Zielordner gespeichert. Gehen wir zur nächsten Stufe. Wir können sehen, dass wir auf diese Weise im Startmenü als Visual Studio-Code als Nächstes darauf zugreifen können . Ich würde empfehlen, dass Sie vorerst einfach ein Desktop-Symbol erstellen . Du kannst das jederzeit entfernen. Wir können „Weiter“ sagen und installieren. Es wird jetzt Visual Studio-Code auf unserem Computer installieren . Jetzt müssen wir nur noch geduldig sein, bis dieser Vorgang abgeschlossen ist . In Ordnung, also willkommen zurück. Wie Sie sehen können, wurde Visual Studio-Code erfolgreich auf unserem Computer installiert, und wir können jetzt Visual Studio Code starten. Wenn diese Option also nicht für Sie im Kontrollkästchen aktiviert wurde , können Sie sie ankreuzen, und Sie können „Fertig stellen“ sehen. Dadurch wird Visual Studio-Code für uns geöffnet . Wir können also sagen, fertig. Und hier sind wir. Also hier sind wir im Visual Studio-Code. Also, gut gemacht. Sie haben Visual Studio-Code erfolgreich heruntergeladen und auf Ihrem Windows-PC eingerichtet . So gut gemacht. 7. Erste Schritte mit unserem Projekt – Fenster: Hallo zusammen und willkommen zur nächsten Lektion, die sich auf die ersten Schritte mit Visual Studio-Code konzentrieren wird . Ordnung. Jetzt wollen wir unser Projekt erstellen, in dem unsere Python-Dateien gespeichert werden. Okay, wie Sie sehen können, haben wir keine Ordner geöffnet oder ähnliches. Also gehen wir zum Desktop, und ich klicke mit der rechten Maustaste und ich sage neu was Ordner bedeutet, und ich gebe diesem Ordner einen passenden Namen. Also werden wir mit unserem Python-Code arbeiten. Ich würde also denken, dass ein einfacher Name hier Mein Projekt heißen würde . Da haben wir's. Jetzt können wir zurück zum Visual Studio-Code navigieren, und Sie können entweder jetzt Ordner öffnen sagen oder Sie können auf das Symbol oben links klicken, zu Datei gehen und dann Ordner öffnen. Dann können wir zu unserem Desktop navigieren und dann mein Projekt auswählen. Hier wird unser PyCon-Code gespeichert. Wir können dann sagen, Ordner auswählen. In Ordnung. Perfekt. Das ist also der Ordner, mit dem wir arbeiten werden, um unsere PySON-Skripte zu speichern Stimmt. Als Nächstes möchten Sie hier Ihren Projektordner markieren oder mit der Maus darüber fahren. Daraufhin werden einige Symbole angezeigt Wir wollen auf Neue Datei klicken, und das wird unsere PySON-Skriptdatei sein Hier fügen wir also unseren gesamten PySON-Code hinzu, und dann werden wir den Code basierend auf den Befehlen ausführen , die in dieser Datei definiert wurden Also nenne ich das vorerst einfach Main Dot Pi. Sie können ihm einen beliebigen Namen geben und die Eingabetaste drücken. Sobald Sie die Eingabetaste gedrückt haben, werden Sie hier gefragt, ob Sie die empfohlene PysoExtension von Microsoft für die PysON-Sprache installieren möchten von Microsoft für die Ich würde Ihnen also empfehlen, dies zu tun. Es wird Sie mit einigen zusätzlichen Funktionen und dergleichen überraschen. Ich würde also empfehlen, das zu installieren. Du kannst also installieren sagen. Es wird also einen Moment dauern, diese Erweiterung im Visual Studio-Code zu installieren . Jetzt müssen Sie nur noch ein bisschen Geduld haben, und sobald es installiert ist, können wir von dort aus weitermachen. Richtig, also willkommen zurück, denn wir können sehen, dass die Python-Erweiterung in Visual Studio-Code installiert wurde , sodass wir dies schließen können Und was wir auch tun können, ist zum Explorer zu wechseln. Und hier können wir weitermachen und die folgende Option umschalten , um unser Skript hier zu maximieren , das zum Beispiel Main Dot Pie genannt wird Und wenn wir unser Verzeichnis sehen wollen, in dem sich unser Projekt und die zugehörigen Dateien befinden, können wir natürlich einfach zurück navigieren. In Ordnung. Also nur etwas, das ich in diesem Zusammenhang auch erwähnen wollte. Richtig. Jetzt wollen wir unseren Python-Code zu diesem Skript hinzufügen, und dann wollen wir dieses Skript ausführen und das Ausgabeergebnis sehen. Lassen Sie uns nun als Erstes loslegen und ein einfaches Programm erstellen. Ich definiere einfach eine Variable, die als Name bekannt ist, und wir sagen gleich und setzen das auf den Wert nein, dann werde ich diese Variable drucken und sie wird mit dem Namen verbundenen Wert ausgeben, der nein ist Nun, es gibt zwei Möglichkeiten, Sie weitermachen und damit beginnen können Nun, den manuellen Weg, werde ich Ihnen zuerst zeigen Sie können weitermachen und auf das fließende Symbol oben links klicken . Dann möchten Sie zum Terminal gehen und Ihr Terminal öffnen. Ordnung, also hier haben wir es. Wir haben unser Terminal hier auf der linken Seite. Und mit dieser Debug-Konsole können Sie weitermachen und das einfach umstellen Und ich empfehle Ihnen, jetzt Ihr Terminal erneut zu öffnen Manchmal dauert die Konfiguration einen Moment. Also würde ich immer weitermachen und einfach sagen: Kill Terminal. Dann werde ich es schließen und dann gehen wir zurück zum Terminal und öffnen es dann wieder. Und los geht's. In Ordnung, jetzt können wir weitermachen und loslegen Nun sollten Sie Ihre PySON-Skriptdatei entsprechend dem Namen ausführen Ihre PySON-Skriptdatei entsprechend dem Namen Das heißt also Min Dot Pie, und wir können das Verzeichnis sehen , das wir hier eingerichtet haben Derzeit betrachtet unser Terminal den Benutzer hier, nämlich Ono, auf dem Desktop im Ordner Mein Projekt, dem Ordner, den wir hier mit dem Namen My Project erstellt haben. Und wie Sie sehen können, ist es auch hier verfügbar, Mein Projekt, und wir haben Min Dot Pi, das sich in diesem Ordner Mein Projekt befindet. Wir wollen den folgenden Code ausführen, der sich in dieser Haupt-Py-Datei befindet. Du willst nur Python eingeben. Und dann können Sie einfach auf den Dateinamen verweisen , der Main Dot Py lautet. Aber alles, was Sie tun möchten, ist PysON main dot pi zu sagen und einzugeben, und dort können Sie sehen, dass es unseren Code für uns Das ist also der einfachste Weg, wie Sie Terminal ausführen Ihren PySON-Code innerhalb von Visual Studio-Code und mit diesem Terminal ausführen können. Richtig. Wir können auch Clear eingeben und das hilft auch, das Terminal zu löschen. Das ist also die erste Art , wie Sie Code ausführen können. Das ist also eine Art manueller Weg, könnte man sagen. Jetzt ist es einfacher, dieses Panel auszublenden. Sie werden jetzt sehen, ob Sie die Python-Erweiterung installiert haben. Sie haben jetzt die Möglichkeit, den Mauszeiger über das folgende Symbol zu bewegen und Ihre Python-Datei auszuführen Das erledigt das per se automatisch für dich. Wir können einfach auf PysonFLE ausführen klicken, indem wir auf dieses Symbol wird das Terminal für uns geöffnet und Sie werden sehen, dass es die Datei ausführt Hier haben wir den Hauptpunktkreis, der ausgeführt und hier ausgegeben wurde, was sich darauf befindet Das ist eine andere Art , wie Sie es tun können . Es gibt zwei Möglichkeiten. Ordnung. Das war's, Leute. So können wir weitermachen und mit Visual Studio-Code beginnen und unsere Grundlagen für unser PySON-Projekt Also können wir jetzt weitermachen und hier nachschauen. In Ordnung. So können wir weitermachen und das in Gang bringen und alles irgendwie an seinen Platz bringen. 8. Python – Installation und Einrichtung – MacOS: Hallo zusammen. Willkommen zur nächsten Lektion, die sich auf die Installation von PySon auf einem macOS-Gerät konzentrieren wird PySon auf einem macOS-Gerät Als Erstes möchten Sie zur folgenden URL wechseln , die sich unter python.org forwardslash Downloads forwardlas befindet Sie möchten sicherstellen, dass Sie zu dieser URL wechseln. Nachdem Sie das eingegeben haben, werden Sie hier auf die folgende Seite weitergeleitet, die sich auf der Python-Downloads-Seite befindet. Dann möchten Sie PysON herunterladen , damit Sie hier auf diese Schaltfläche klicken können Dadurch wird der Setup-Assistent für uns heruntergeladen und wir können ihn wie folgt öffnen Hier ist ein Setup-Assistent. Wir wollen einfach weitermachen, weitermachen, den Zeitplan festlegen und den Bedingungen zustimmen. Dann möchten Sie „ Installieren“ sagen und Ihr Passwort eingeben und diese Software auf Ihrem System installieren. Ordnung. Da haben wir's. Wir können das Folgende hier schließen. Da sind wir. PySon wurde erfolgreich auf unserem Gerät installiert Wir können einfach schließen sagen. Wir können einfach sagen, behalten, das ist in Ordnung. Ich würde Ihnen jetzt empfehlen, zu Ihrem Apple-Symbol zu wechseln und Ihr macOS-Gerät neu zu starten. Dies dient nur dazu , sicherzustellen, dass alles korrekt eingerichtet ist . PysON in Bezug auf Umgebungsvariablen und dergleichen Danach können Sie zu Ihrem Launchpad gehen und nach Ihrem Terminal suchen Sie können einfach Terminal eingeben und es öffnen. Dies ist das CMD-Äquivalent in Windows, um zu bestätigen, dass PysON installiert wurde und welche Version speziell Sie installiert haben. Sie können einfach PysON drei, Leertaste, Strich, Dash-Version und Enter sagen Leertaste, Strich, Dash-Version Da sind wir, wir können sehen, dass die Version, die wir installieren wollten, und die PysON-Installation erfolgreich waren , da wir sehen können, dass die Ausgabe wie Das ist nur eine Bestätigung dafür, dass PySon auf unserem System installiert wurde Okay, das war's für dieses Video. So können Sie sicherstellen, dass Python auf Ihrem macOS-Gerät installiert ist. 9. VS Code – Installation und Einrichtung – MacOS: Hallo, alle zusammen. Willkommen zur nächsten Lektion, die sich auf das Herunterladen und Installieren von Visual Studio-Code auf unseren macOS-Geräten konzentrieren wird . Zuallererst möchten Sie sicherstellen, dass Sie sich hier auf der folgenden Seite befinden, auf die Sie zugreifen können, wenn Sie zur URL und den Code visualstudio.com für den Schrägstrich eingeben . Laden Sie Ihre URL herunter, auf der Sie auf die folgende Seite weitergeleitet werden Als Nächstes möchten Sie fortfahren und es für einen Mac installieren, damit wir weitermachen und es für einen Mac installieren, damit wir weitermachen und auf das folgende Symbol klicken können Dadurch wird der Setup-Assistent heruntergeladen , den wir den Zugriff auf Visual Studio-Code benötigen. Wir müssen ihm nur ein paar Minuten Zeit geben. Wenn der Download aus irgendeinem Grund für Sie nicht startet, können Sie stattdessen auf den direkten Download-Link klicken . Geben Sie ihm einfach einen Moment Zeit und wir können sehen, dass es fertig ist , und wir können weitermachen und Visual Studio-Code öffnen. Nachdem Sie darauf geklickt haben, sehen Sie diese Aufforderung hier und alles, was Sie jetzt tun möchten, ist sie zu öffnen. Visual Studio Code ist eine App die aus dem Internet heruntergeladen wurde, und wir möchten sie öffnen. Da sind wir. Da haben wir es. Das ist Visual Studio-Code. diese Weise können Sie diesen Codierungseditor einfach einrichten. 10. Erste Schritte mit unserem Projekt – MacOS: Hallo, alle zusammen. Willkommen zur nächsten Lektion, die sich auf die ersten Schritte mit Visual Studio-Code konzentriert ersten Schritte mit Visual Studio-Code , damit wir unser PysonPject einrichten können Als Erstes möchte ich, dass wir den Visual Studio-Code vorerst minimieren Was wir tun werden, ist, eine Absicherung vorzunehmen und einen neuen Ordner auf unserem Desktop zu erstellen, in dem unsere PysON-Datei zu gegebener Zeit gespeichert wird Klicken wir mit der rechten Maustaste und wir können dann sagen neuer Ordner und ich habe diesen Ordner erstellt und ich werde darauf klicken und ihn umbenennen Ich nenne es MP Check. Sie können ihm einen beliebigen Namen geben, da haben wir diesen Ordner und wir möchten diesen Ordner im Visual Studio-Code öffnen. Es geht darum, Visual Studio-Code zu öffnen und ihn zu maximieren. Dann können wir gehen und auf Datei klicken. Navigieren Sie zum geöffneten Ordner. Dann wollen wir zum Desktop gehen , weil wir dort diesen Ordner erstellt haben. Wir können dann den Ordner mit dem Namen Mein Projekt auswählen und Öffnen sagen, und wir können diese Eingabeaufforderung schließen und dort sehen, dass Namen Mein Projekt auswählen und Öffnen sagen, und wir können diese Eingabeaufforderung schließen und dort wir jetzt Zugriff auf diesen Ordner haben. Perfekt. Gut gemacht. Jetzt wollen wir unsere PysonScripting-Datei erstellen , könnte man sagen Hier werden wir unseren gesamten PySON-Code hinzufügen und unseren Code auch basierend auf dem Inhalt der S-Datei ausführen Das wird hier in unserem Projektordner sein. Sie können den Mauszeiger darüber bewegen und dann sehen Sie ein Symbol, mit dem Sie eine neue Datei erstellen können Du willst darauf klicken. Geben Sie Ihrer Datei hier einen Namen. Ich nenne es zum Beispiel Main Dot Py. Ich muss ein Dotpi sein, Visual Studio-Code weiß, dass dies eine Python-basierte Datei sein wird , und wir können die Eingabetaste drücken Da haben wir sie, die Haupt-Dot-Pi-Datei. Da es das erste Mal ist, dass wir PysON in Visual Studio-Code verwenden, werden wir eine Eingabeaufforderung haben die uns vorschlägt, die empfohlene Python-Erweiterung von Microsoft für die Python-Sprache zu installieren empfohlene Python-Erweiterung von Microsoft für die Python-Sprache von Microsoft für die Python-Sprache Diese Erweiterung bietet uns nur ein paar zusätzliche Funktionen, die wir nutzen können, und macht unsere Erfahrung mit der Codierung von Python in Visual Studio-Code insgesamt macht unsere Erfahrung mit der Codierung von Python in viel kompetenter und angenehmer Wir können „installieren“ sagen. Das wird die Erweiterung installieren. Da haben wir's. Es wurde installiert, sodass wir die folgende Seite hier schließen und zum Symbol hier navigieren können , dem Explorer. Das zeigt nur unser Verzeichnis und natürlich auch unsere Dateien in unserem Verzeichnis. Wir können den Explorer hier auch schließen, um die Datei zu maximieren, die wir hier bereits geöffnet haben. Es ist eigentlich etwas, das ich auch erwähnen wollte. Ordnung. Lass uns weitermachen und Code ausführen und einige Tests durchführen. Als Erstes möchte ich natürlich einfach weitermachen und ein einfaches Programm erstellen. Ich werde sagen, dass Name gleich ist, und ich werde einfach Ehre sagen Ich erstelle einen Variablennamen und weise ihn dem Ehrenwert zu Auf der nächsten Folie werde ich „Drucken“ sagen und ich möchte den Wert ausgeben. Lass uns weitermachen und das tun. In der Print-Erklärung werde ich einen Namen eingeben. Sie können jetzt Ihren Code hier speichern und dann können wir ihn ausführen, indem Sie hier auf das folgende Symbol klicken , um den PisonFle auszuführen Da haben wir's. Wir können hier sehen, dass es die Datei entsprechend ausgeführt hat. Ich kann dieses Terminal hier auch minimieren , nur um Ihnen etwas mehr Platz zu geben. Wir können dort die Ausgabe sehen, die noch nicht da war und erfolgreich ausgeführt wurde. Wir können auch sehen, dass es automatisch unsere Vergangenheit für uns konfiguriert hat. Wir laufen im Verzeichnis Mein Projekt, und dort wird die Hauptdatei mit Punkt Pi ausgeführt , speziell um den Code auszugeben, der hier gesendet wurde. Und Sie können Ihr Terminal hier auch löschen, indem Sie Clear eingeben und das löscht es für Sie Sie können es auch schließen. Das ist die automatisierte Methode, um Ihre Programme in Visual Studio-Code auszuführen. Was Sie auch tun können, ist, hier auf das Terminalverzeichnis zu klicken und neues Terminal zu sagen . Dadurch wird es hier wie folgt geöffnet. Was wir tun können, ist, uns hier einfach etwas Platz zu geben und Sie können die Befehle auch hier ausführen . Das ist eine andere Art, wie du es machen kannst. Wenn Sie weitermachen und es hier im Terminal ausführen möchten und es hier im Terminal ausführen anstatt weiterzumachen und Python-Datei ausführen zu sagen, müssen Sie dies manuell entsprechend dem Dateinamen tun. Aber du wirst PysOn drei, Leerzeichen und dann deinen Dateinamen sagen , Leerzeichen und dann deinen Dateinamen Hier sage ich Hauptpunkt Pi und dann Enter. Dort wird es entsprechend wie folgt ausgegeben. Richtig, so können Sie sich absichern und das Terminal und den Visual Studio-Code nutzen. Und wir können hier Clear eingeben und das macht das Terminal für uns frei. Nun würde ich zumindest empfehlen, dass Sie hier lieber einfach auf die Option PysOnFle ausführen klicken , damit es für Sie ausgeführt wird, dann den Dateinamen manuell eingeben und Das spart dir nur etwas Zeit und so. In Ordnung Leute, es. So können wir mit PySON beginnen und wie wir genauer mit PySON im Visual Studio-Code beginnen können mit PySON im Visual Studio-Code 11. Verbessere deinen Workflow mit Code Runner – [optional]: Hallo, alle zusammen. Willkommen zur nächsten Lektion, die sich auf die Verbesserung unseres Workflows mithilfe der Code-Runner-Erweiterung konzentrieren wird . Nun, das wird eine optionale Lektion sein. Du musst es nicht tun , wenn du nicht willst. Nehmen wir zum Beispiel an, Sie arbeiten mit Ihrem Terminal und möchten eine sauberere Ausgabe haben. Anstatt jedes Mal diese unordentlichen Dateien zu sehen und dann die Ausgabe des Codes, den Sie tatsächlich erwarten, kann Code Runner wirklich helfen, das Ganze viel einfacher und angenehmer für das Auge zu machen viel einfacher und , sollte ich sagen Anstatt all diese Dateiübergaben und Namen zu sehen , die in der Ausgabe enthalten sind und Sie die Ausgabe bereinigen möchten, können Sie Code Runner verwenden Lassen Sie uns also weitermachen und loslegen. Okay, wir müssen also zur Erweiterung navigieren, sodass Sie diese durch das fließende Symbol gekennzeichnet sehen. Jetzt können wir einfach auf dieses Eingabefeld klicken und ich werde einfach entfernen, was darin steht. Und wir wollen nach Code Runner suchen. Ich werde natürlich nur den fließenden Code eingeben . Läufer. Und den werden wir uns gleich hier ansehen. Sie werden also sehen, dass dort dieser Logopunkt ausgeführt wird, also Code Runner, und Sie möchten diese spezielle Erweiterung installieren. Okay. Lassen Sie uns einfach einen Moment oder so warten bis es installiert ist, und los geht's. Wir können sehen, dass es tatsächlich auf unserem System installiert wurde. Ordnung, also können wir die Erweiterung jetzt schließen, Kopf an Rücken, und wir haben sie eingerichtet. Nun, es gibt ein paar Einstellungen , die wir bestätigen und sicherstellen müssen , dass wir sie eingerichtet haben , um eine saubere Ausgabe zu erzielen. Lassen Sie uns also weitermachen und genau das tun. Sie möchten also zum folgenden Symbol navigieren. Dann möchtest du zu Datei gehen, dann kannst du nach unten scrollen, bis du Einstellungen siehst. Dann möchten Sie mit der Maus auf Einstellungen zeigen und dann auf Einstellungen klicken Also mach weiter und klicke darauf. Das wird Sie hier zum folgenden Bereich führen. Dann können wir hier über die Sucheinstellungen einfach weitermachen und Code eingeben. Okay. Und wir können einfach Runner einbauen. In Ordnung, da haben wir's. Okay, wir haben hier also einige Einstellungen. Zuallererst haben wir Code Runner, der die vorherige Ausgabe löscht. Wir wollen also sicherstellen, dass dies überprüft wurde. Dadurch wird nur sichergestellt, dass bei jeder Codeausführung die aktuellste Ausgabe angezeigt jeder Codeausführung die aktuellste Ausgabe In Ordnung, also lasst uns weitermachen und weitermachen. Also wollen wir dort einfach nach den wichtigsten Optionen suchen. Okay? Also können wir alles so lassen, wie es ist. Sie möchten sich nur auf die konzentrieren , die ich erwähnt habe. Hier haben wir auch Code ausgeführt und im Terminal ausgeführt. Okay? Du willst sichergehen , dass das Häkchen nicht gesetzt ist, also können wir es einfach leer lassen Das ist also eine weitere, von der Sie sicherstellen möchten, dass Sie sie überprüft haben. Okay, und natürlich können wir sehen, dass wir auch „Datei vor dem Ausführen speichern“ haben. Dadurch wird sichergestellt, dass wir die aktuelle Datei vor dem Ausführen speichern möchten . Und was Sie für diesen Fall hier tun möchten, ist sicherzustellen , dass er wahr bleibt. Und dann haben wir die Ausführungsnachricht anzeigen, okay? Also wollen wir nichts wie Laufen oder Herunterfahren oder ähnliches sehen . Wir wollen, dass es klar, sauber und einfach ist. Stellen Sie also sicher, dass das Häkchen nicht gesetzt wurde. Sie möchten also nur nach den vier Optionen suchen, auf die ich jetzt detailliert eingegangen bin, um sicherzustellen, dass alles geklärt und organisiert ist damit der Code Runner funktioniert. Richtig, also lass uns weitermachen und das jetzt schließen. Haben Sie unseren Code hier, aber jetzt können Sie Code Runner tatsächlich ausführen, was Sie tun können, es ist sehr einfach. Wir werden auch auf Ausführen klicken, aber Sie möchten hier auf diesen Dropdown-Pfeil klicken, und Sie werden jetzt sehen, dass wir die Möglichkeit haben, Code ausführen statt Pis und Datei Sie möchten also auf Code ausführen klicken und los geht's. Wir haben diese Ausgabe sauber und einfach. Sie können kein Durcheinander mehr sehen. Es ist viel einfacher zu benutzen und es ist jetzt so, wie es sein sollte Richtig, also was ich jetzt tun werde , ist einfach diesen Wert zu ändern und ich werde einfach John sagen. Und wenn ich jetzt weitermache und manuell einfach auf die Option hier klicke, wirst du sehen, dass die Standardeinstellung jetzt Ausführungscode einfach auf die Option hier klicke, wirst du sehen, dass die Standardeinstellung jetzt Ausführungscode ist, und da ist Ha. In Ordnung, also los geht's. So können Sie Code Runner nutzen. Sie können also sehen, dass es uns ein sauberes Ergebnis liefert, auch viel besser für die Augen ist und es für uns insgesamt viel besser ist, es auf diese Weise zu nutzen. In Ordnung, Leute. 12. Reguläre Ausdrücke: Hallo zusammen und willkommen zur nächsten Lektion, die sich mit regulären Ausdrücken befassen wird . Schauen wir uns das mal an. Also gut, reguläre Ausdrücke, gemeinhin als Ablehnungen bezeichnet werden Reguläre Ausdrücke in Python werden also grundsätzlich verwendet, um Muster in Text zu identifizieren , z. B. in Zahlen , Wörtern oder sogar in einer E-Mail-Adresse. Anstatt nach exakten Übereinstimmungen zu suchen, lehnen Sie es ab, bestimmte Regeln zu befolgen, um bestimmte Muster per se zu erkennen Jetzt stellt uns PySon bereits ein integriertes Modul namens RE zur Verfügung, das mit regulären Ausdrücken arbeitet, Das reicht also für den theoretischen Überblick. Lassen Sie uns weitermachen und unser Wissen auf die Verwendung regulärer Ausdrücke in PySON anwenden die Verwendung regulärer Ausdrücke in PySON 13. Arbeiten mit regelmäßigen Expressions – [Lab]: Hallo zusammen und willkommen zur nächsten praktischen Laborübung, die die Arbeit mit regulären Ausdrücken konzentrieren wird , die in Python allgemein als Rejec bezeichnet Lass uns weitermachen und loslegen. Lassen Sie uns entfernen, was wir hier haben und ich zoome einfach ein bisschen heraus. Richtig. Okay, das Erste, was wir tun wollen, ist, einfach durchzugehen , welche Art von Beispielen wir mit regulären Ausdrücken durchgehen werden. Um reguläre Ausdrücke besser zu verstehen , werde ich ein paar Beispiele und Übungen mit Z durchgehen , und sie werden nämlich wie folgt aussehen. Ich werde Ihnen zeigen, wie Sie alle Ziffern finden können , also Zahlen in einem bestimmten Text, Zahlen in einem bestimmten Text, wie Sie Ziffern durch bestimmte Zeichen ersetzen und auch, wie Sie überprüfen können, ob eine Zeichenfolge mit der Ziffer beginnt. Dies wird Ihnen helfen, besser zu verstehen, wie Sie die Funktionen des RE-Moduls und dergleichen verwenden können . Wie dem auch sei, lass uns weitermachen und loslegen. In allen Beispielen müssen wir also zunächst das RE-Modul importieren, das RE-Modul importieren, das viele integrierte Funktionen enthält . Wir können also Import RE sehen. Richtig. Jetzt müssen wir etwas Text hinzufügen, und die erste Übung wird sich darauf konzentrieren, alle Zahlen oder Ziffern in einem bestimmten Satz von Schecks zu finden . Also sage ich ext, ist gleich, und hier in Anführungszeichen sage ich, dass ich drei Äpfel habe Und zwei Paare. Das ist mein Beispiel. Und wie Sie dort sehen können, habe ich zwei Ziffern. Ich habe drei und ich habe zwei. Also wollen wir diese Werte natürlich technisch extrahieren. Dann müssen wir ein Muster angeben. Nun, der Variablenname hier, Sie können einen beliebigen Namen angeben. Ich nenne es jedoch Muster , weil das im Grunde das Muster ist , als das ich es einrichten werde. Nun, Sie werden hier immer mit R für Ihren Ausdruck beginnen wollen . Das R vor einer bestimmten Zeichenfolge stellt sicher, dass die Zeichenfolge eine Rohzeichenfolge ist, was bedeutet, dass alle Backslashes normal und nicht als Escape-Sequenzen behandelt werden als Escape-Sequenzen Also fügen wir unsere Anführungszeichen und dann den umgekehrten Schrägstrich D hinzu. Das wird der wichtige Teil sein , den wir hier hinzufügen müssen Nun, dieser umgekehrte Schrägstrich D hier wird natürlich ein regulärer Ausdruck sein, ein regulärer Ausdruck sein jeder Ziffer 0-9 übereinstimmt . Das ist es, was wir zuerst angeben müssen . Als Nächstes wollen wir eine andere Variable angeben, wir eine andere Variable angeben, wir können diese Zahlen aufrufen und wir werden jetzt das R E-Modul verwenden und dann werden wir die Find- oder Funktion aufrufen, die im RE-Modul eingebaut ist, und wir werden zwei Parameter eingeben . Zuerst wird es Muster und dann Text geben. Um diese Zeile hier auf Muster zu wiederholen, das heißt, alle Ziffern in einem bestimmten Textsatz zu finden , der hier dieser Text sein wird Und wir verwenden die Funktion find or, um genau das zu tun Die Such- oder Funktion wird also das Muster kennen wollen und dann die Prüfungen durchführen, um es auch anzuwenden. Das Muster wird also auf den Ziffern basieren, diesem umgekehrten Schrägstrich D, um Ziffern zu finden und abzugleichen, und wir wollen alle Ziffern in diesem Text finden, der besagt, dass ich drei Äpfel und zwei Paare habe Sie können es sich selbst sagen, es wird natürlich drei und zwei ausgeben. Lassen Sie uns das bestätigen. Dann kannst du sagen, Zahlen drucken und deinen Code ausführen. Hier können Sie sehen, dass es drei und zwei ausgibt. Da haben wir es. So können wir Ziffern in einem bestimmten Textsatz finden. Lassen Sie uns das jetzt anpassen und ich werde es verlängern. Ich werde sagen, ich habe drei Äpfel, zwei Paare und vier Orangen Speichere den Code. Lauf. Jetzt können Sie sehen, dass es drei, zwei und vier ausgibt. Okay. Sie können also sehen, dass es mit der Funktion „Alle suchen“ abruft, wo es alle angegebenen Zahlen abrufen kann . Nehmen wir nun der Argumentation halber an, wir wollen etwas anderes machen. Nehmen wir an, wir möchten Ziffern durch ein bestimmtes Zeichen ersetzen . Sagen wir mit einem Hashtag. Wir wollen nicht, dass die Nummer oder Telefonnummer von jemandem durchgesickert wird Wir wollen nur, dass es, man könnte sagen, durch Hashtags versteckt wird Also lass uns weitermachen und das tun. Also können wir diesen Code vorerst entfernen. Ich werde das herausnehmen und wieder Text sagen. Und hier werde ich sagen , meine Nummer ist, und ich sage als Beispiel eins, zwei, drei , vier, fünf. Dann das Muster, das wir festlegen werden. Also doppelte Anführungszeichen, umgekehrter Schrägstrich D. Also werden wir nach einem beliebigen Muster suchen , das mit Ziffern übereinstimmt Dann können wir neuen Unterstrichtext sagen weil wir diesen Text so ändern , dass meine Zahl lautet, und dann fügen wir ein bestimmtes Zeichen hinzu, um diese Zahlen zu verbergen, Okay. Dann sagen wir RE und verwenden das Modul Punkt. Die Funktion, die wir dieses Mal verwenden werden, heißt Sub. Sub ist also eine Funktion, die allgemein als Substitution oder Substitution bezeichnet wird, aber der eigentliche Funktionsname ist sub Wir wollen also im Wesentlichen einen alternativen Wert ersetzen , um eine Ziffer an sich zu ersetzen. Wir müssen also das Muster anwenden , das wir verwenden möchten, um Ziffern abzugleichen. Und wo wir Ziffern sehen, wollen wir diese ersetzen oder durch ein Hashtag für den angegebenen Text modifizieren . Wie Sie jetzt erwarten können wird es sagen, dass meine Nummer lautet, und es werden Hashtag, Hashtag, Hashtag, Hashtag und Hashtag angezeigt Hashtag und Hashtag Wenn wir sagen würden, drucken und dann neuen unterstrichenen Text drucken und diesen Code ausführen würden, können wir hier an den Ausgaben sehen, dass meine Nummer Hashtag, Hashtag, Hash, Hasta-Hashtag ist Nehmen wir an, ich gebe nur eins und zwei ein. Und wir laufen wieder, ich zeige nur die ersten beiden Hashtags. Okay, das ist also eine sehr gute Methode, wenn Sie Ziffern oder Zahlen innerhalb eines bestimmten Textsatzes ersetzen oder ersetzen möchten Ziffern oder Zahlen innerhalb eines bestimmten Textsatzes ersetzen oder Sie würden die Unterfunktion oder Ersatzfunktion verwenden . Jetzt kann ich das auch länger machen und das ausführen, und Sie können sehen, dass es einfach Folgendes tun wird. Jetzt kann ich das auch in, sagen wir, das $1-Symbol ändern, also kann ich es so ändern und lassen Sie es auf das Original setzen, und es macht dasselbe. So können Sie es also entsprechend ersetzen. In Ordnung, so können wir also Ziffern ersetzen. Nun, das Letzte, was ich Ihnen zeigen möchte, ist, wie Sie überprüfen können, ob eine Zeichenfolge mit einer Ziffer beginnt, also ob sie mit einer Zahl beginnt. Also lass uns das machen. Lass uns das entfernen. Okay, Text. Und was ich jetzt tun werde, ist, drei Paare in den Korb zu legen. Okay. Wir können hier also schon sehen, dass die Zeichenfolge mit einer Ziffer beginnt. Ordnung. Also das Muster. Okay, wir werden R haben und wir müssen hier ein Sonderzeichen eingeben , also wird es ein Pfeil sein, der nach oben geht, oder eine Art Potenz-Zwei-Symbol. Und das wird den Anfang der Zeichenfolge bedeuten. Am Anfang der Zeichenfolge möchte ich also nach allen passenden Ziffern suchen, möchte ich also nach allen passenden Ziffern suchen daher der umgekehrte Schrägstrich und D. So können Sie diese Zeichen in Bezug auf die Ausdrücke zusammen anwenden diese Zeichen in Bezug auf die Ausdrücke zusammen Also im Grunde wird diese Codezeile jetzt übereinstimmen, wenn die Zeichenfolge mit der Ziffer beginnt , und wir werden das jetzt anwenden . Eine if-Anweisung. Also sage ich, ich stimme zu, also verwenden wir die Match-Funktion, das Muster und das Häkchen. Also werden wir prüfen, ob dieses spezielle Muster in diesem Text übereinstimmt. Mit anderen Worten, wenn dieser Text hier entsprechend dem Muster mit einer Ziffer beginnt , dann werden wir eine bestimmte Antwort ausgeben. Da es sich also um eine If-Anweisung handelt, füge ich am Ende einen Kern hinzu, und dann kann ich „Drucken“ sagen, ja, es beginnt mit einer Ziffer. Falls das aus irgendeinem Grund nicht der Fall ist, kann ich etwas anderes sagen und drucken. Nein, es beginnt nicht mit einer Ziffer. Okay, also lass uns weitermachen und sehen. In diesem Fall können wir also sehen, dass es mit einer Ziffer beginnt, also sollte es die Aussage hier zurückgeben. Ja, es beginnt mit einer Ziffer, da es wahr ist. Also lass uns das ausführen und wir können es hier sehen. Da steht, ja, es beginnt mit einer Ziffer. Lassen Sie mich jetzt die drei ändern und entfernen und einfach sagen, Paare in einem Korb und los geht's. Hier wird die Aussage ausgegeben , die natürlich nein sagt, sie beginnt nicht mit einer Ziffer. Okay. So können wir also auch die Match-Funktion verwenden. Nun, wenn wir mit regulären Ausdrücken arbeiten, gibt es eine Menge Funktionen, die in R E enthalten sind, aber das ist nur ein kleiner damit Sie ein Verständnis für reguläre Ausdrücke bekommen und wissen, wie Sie sie nach einem bestimmten Muster anwenden können , das Sie in Ihrem Code selbst festlegen möchten. Ordnung, Leute. Also das war's für diese spezielle praktische Übung. 14. Drucken mehrerer Werte: Hallo zusammen und willkommen zur nächsten Lektion , in der es um das Drucken mehrerer Werte geht . Lassen Sie uns einen Blick darauf werfen. Richtig. können Sie die Zeichenkettenverkettung verwenden, und die Zeichenkettenverkettung ist im Wesentlichen der Prozess, bei dem mehrere Zeichenketten zu einer Wenn wir nun mehrere Werte drucken, können Sie die Zeichenkettenverkettung verwenden, und die Zeichenkettenverkettung ist im Wesentlichen der Prozess, bei dem mehrere Zeichenketten zu einer kombiniert werden. Die gängigste Methode, zu verketten, besteht darin, den Plus-Operator zu verwenden und dann aus Gründen der Lesbarkeit Leerzeichen zwischen Ihren Zeichenketten Plus-Operator zu verwenden und dann aus Gründen der Zeichenketten zu verketten, besteht darin, den Plus-Operator zu verwenden und dann aus Gründen der Lesbarkeit Leerzeichen zwischen Ihren Zeichenketten hinzuzufügen. Was Sie jetzt auch tun können, ist, dass Sie stattdessen ein Komma in Ihrer Druckfunktion verwenden können, und Sie können dann mehrere Werte anzeigen werden diese Leerzeichen automatisch für Sie hinzugefügt, und Ihnen auch etwas Zeit sparen kann auch etwas Zeit sparen Lassen Sie mich Ihnen grafisch zeigen, was ich damit meine. Nehmen wir zum Beispiel an, wir haben dieses Programm. Sehr einfach. Wir haben zwei Variablen, die wir hier definiert haben, Vorname und Nachname, wobei natürlich Ihr Vor - und Nachname, John und Doe, enthalten sind. Dann müssen Sie normalerweise eine weitere Variable erstellen. In diesem Fall wäre der vollständige Name angemessen. Und um dann Vorname und Nachname miteinander zu kombinieren, müssen Sie nur Vorname und dann Plus sagen und dann das Leerzeichen mit Anführungszeichen hinzufügen und dann wieder Plus und dann den Nachnamen. Das wird John und Do miteinander kombinieren und außerdem ein Leerzeichen dazwischen lassen da Sie diese beiden Anführungszeichen hinzugefügt haben . Wie Sie sehen können, fügen Sie hier den Plus-Operator für die Verkettung von Zeichenketten Wenn Sie den vollständigen Namen ausdrucken, wird John Space Do in einem schönen Format ausgedruckt Dies kann jedoch je nach Situation und Kontext etwas mühsam je nach Situation und Ein einfacherer Weg wäre, einfach weiterzumachen und Ihre Druckfunktion hinzuzufügen und dann direkt Ihren Vor- und Nachnamen zusammen hinzuzufügen, sie durch ein Komma zu trennen. Dadurch wird auch genau das gleiche Ergebnis gedruckt, zu trennen. Dadurch wird auch genau das gleiche Ergebnis gedruckt weniger Code , der vorhanden war Das ist nur etwas, was ich hier erwähnen wollte Wenn Sie Ihre Werte drucken und sie ausgegeben werden, können Sie es für sich selbst auch viel besser und einfacher machen , wenn Sie je nach bestimmten Umständen einfach ein Komma hinzufügen . Nun gibt es noch einige weitere, die ich zu diesem Thema erwähnen möchte. Um sicherzustellen, dass Sie sich mit beiden Optionen besser auskennen, werde ich im gesamten Kurs sowohl den Plus-Operator für die Verkettung von Zeichenketten als auch das Komma verwenden Verkettung von Zeichenketten als auch das Komma Okay. Nun, der Grund, warum ich das mache ist nur, um deine Fähigkeiten zu festigen , indem du neue Dinge lernst, und alles so anzuwenden dass du umfassender lernen kannst Ich möchte Sie also nur ein bisschen herausfordern, sich wirklich auf die Lektionen zu konzentrieren, die Ihnen zur Verfügung stehen, und sich damit vertraut zu machen, nicht nur eine Methode anzuwenden, sondern auch andere Methoden anzuwenden In diesem Fall also, der Verkettung von Zeichenketten zu folgen, sie zu erkennen Und dann in einem anderen Kontext, um zu sagen, okay, in diesem Fall muss ich ein Komma benutzen oder ich habe Lust, ein Komma zu benutzen, aber ich verstehe aber ich Das ist also nur ein kleiner Teil meiner Einsicht in Bezug darauf wie Sie Ihre Werte und dergleichen drucken sollten Eine sehr einfache Lektion, sollte ich sagen? Darauf werde ich auch eine kurze praktische Übung folgen lassen . Es ist sehr einfach, aber ich möchte nur, dass wir üben und uns damit vertraut machen , an anderen Methoden und Techniken zu arbeiten. 15. Arbeiten mit verschiedenen Ergebnissen – [Lab]: Hallo, alle zusammen. Willkommen zur nächsten praktischen Laborübung, die sich auf das Drucken mehrerer Werte konzentrieren wird. Wir werden nur ein wenig über die Verkettung von Zeichenketten üben und auch, wie wir ein Komma im entsprechenden Kontext verwenden können, nur um uns ein paar Codezeilen und dergleichen zu ersparen und auch um die Lesbarkeit unseres Codes im Allgemeinen zu verbessern Lass uns anfangen. Wir werden es zunächst einfach halten. Ich sage erster Unterstrichname, ist gleich, ich sage Ehre, und ich sage letzter Unterstrichname und ich sage Pretorius und ich sage Okay, also bei der Verkettung von Zeichenketten wäre es in diesem Fall am besten, wäre es in diesem Fall am besten eine weitere Variable zu definieren, die ich als vollständigen Namen gleich bezeichne, und dann sage ich zuerst Unterstrichname und dann Also verwende ich den Plus-Operator und füge dann wieder ein Leerzeichen mit den angegebenen Anführungszeichen plus hinzu, und ich möchte dann einen Nachnamen hinzufügen , sodass kein Leerzeichen Pretoris angezeigt wird Dann kann ich „Drucken“ sagen. Und ich werde den vollständigen Namen hier in den Klammern angeben und das wird auf einem Pretorius in der Ausgabe gedruckt Da haben wir es. Wie wir sehen können, druckt es das Folgende und meinen vollen Namen. Nehmen wir an, ich möchte keine Zeichenkettenverkettung hinzufügen und ich möchte, dass dies mit weniger Codezeilen viel einfacher Ich kann einfach das Folgende entfernen und in der Druckfunktion innerhalb von Princes einfach sagen, zuerst Unterstrich gefolgt von einem Komma und dann last underSCUN sagen und den Code ausführen und es druckt genau das gleiche Ergebnis und die gleiche Ausgabe im und in der Druckfunktion innerhalb von Princes einfach sagen, zuerst Unterstrich gefolgt von einem Komma und dann last underSCUN sagen und den Code ausführen und es druckt genau das gleiche Ergebnis und die gleiche Ausgabe im Terminal für mich. Sie können sehen, wie einfach es ist, das spart Ihnen viel Zeit. Aber das hängt natürlich auch von der Situation ab. Lass uns weitermachen und das entfernen. Gehen wir zu einem anderen Beispiel. Nehmen wir an, wir haben Siti und hier werde ich Capetown sagen Und wir werden ein Land haben, und ich sage Südafrika Also habe ich zwei Variablen definiert. Also habe ich das an Ort und Stelle. Als Nächstes möchte ich hier eine Variable angeben. Also kann ich einfach weitermachen und Standort, ist gleich, und ich kann einfach Stadt plus sagen, das Leerzeichen hinzufügen, plus, und schon habe ich Land Dann kann ich „Standort drucken“ sagen. Führen Sie den Code aus, Kapstadt, Südafrika. In Ordnung. Mal sehen, ob wir das vereinfachen können , indem wir einfach ein Komma verwenden, sodass wir einfach das Folgende entfernen und einfach drucken sagen können Stadt, gefolgt von Land. Führen Sie den Code aus und dann haben wir Kick Towns of Africa. Also los geht's. Wir haben dort auch einige Codezeilen gespeichert. Ordnung, Sie können also sehen, dass es in diesem Beispiel gut lesbar ist, wenn wir ein Komma verwenden Ordnung, richtig, los. So, das war's für diese praktische Laborübung. Es ist ziemlich kurz, aber ich wollte dir hier nur ein bisschen Übung geben. Denken Sie also daran, schauen Sie sich das Programm, an dem Sie gerade arbeiten, und die Kontexte an und entscheiden Sie dann , was Ihrer Meinung nach angemessen ist. Ordnung, geh. Also das war's für diese praktische Laborübung 16. Match Case Statements: Hallo zusammen und willkommen zur nächsten Lektion, die sich mit Fallbeispielen befassen wird . Schauen wir uns das mal an. Also fragst du dich wahrscheinlich, okay, was ist ein Matchcase Eine Match Ka-Anweisung funktioniert also wie eine Switch-Anweisung in Java und C wenn Sie Erfahrung mit diesen Programmiersprachen haben mit diesen Programmiersprachen Im Wesentlichen wird diese MatchK-Anweisung also einen Wert anhand mehrerer Fälle überprüfen und dann, was sie tun wird, ist, dass sie dann den passenden Block ausführt dann den passenden Block ausführt, den sie in den Fällen findet, in denen sie abgeglichen hat Im Gegensatz zu der I ELF-Anweisung , die wir in PysON haben, wird sie jetzt einen saubereren und besser lesbaren Mustervergleich bieten saubereren und besser lesbaren Mustervergleich ist also den I-Bedingungen sehr ähnlich, könnte man sagen, bis zu einem gewissen Grad kann sie jetzt natürlich auch Listen, Tupel und Objekte zuordnen und nicht nur Zufallszahlen und nicht nur Zufallszahlen Wir können also sehen, dass es eine sehr große Bandbreite gibt wenn Sie eine Match-Case-Anweisung Lassen Sie mich das nun in einem visuellen Format erklären, damit es sinnvoller ist, es zu verstehen. Also hier ist ein praktisches Beispiel. Nehmen wir an, wir möchten ein sehr einfaches Programm zur Farbprüfung erstellen . Wir wollen also überprüfen, welcher Farbe und so etwas zugewiesen ist. Hier in diesem Programm können wir also sehen, dass die zugewiesene Farbe Rot ist. Dann werden wir hier das Match-Statement verwenden. Wir werden also nach dem Wert der Farbe abgleichen . Jetzt ist die Farbe Rot. Also dann werden wir Einzelfälle haben. Also zuerst werden wir unsere passende Farbe haben. Dann werden wir einen Fall haben und dieser Fall kann alles sein. In diesem Fall wird der Koffer also rot sein. Und wenn die Farbe entsprechend dem zugehörigen Wert mit der Groß-/Kleinschreibung von Rot übereinstimmt , wird ausgegeben, dass die Farbe Rot ist. Wir können hier einen anderen Fall verwenden, der Blau ist, um zu überprüfen, ob die angegebene Farbe Blau ist, und wir haben hier auch eine spezielle Art von Schlüsselphrase bei der wir Groß- und Kleinschreibung angeben und dann unterstreichen Underscore ist einer Aussage in if-Bedingungen sehr ähnlich einer Aussage in if-Bedingungen Falls der oben genannte Fall zutrifft, nicht anwenden, dann wird hier eine weitere Option gedruckt, deren Farbe unbekannt sein wird In diesem Fall haben wir Rot und wir fügen zwei separate Fälle hinzu, und wir fügen zwei separate Fälle hinzu um zu überprüfen, ob die Farbe rot oder blau ist. Wenn die Farbe nun zum Beispiel grün, lila, grau usw. ist , wird der Block ausgeführt, der dem Groß-/Kleinschreibung zugeordnet ist, und es wird eine unbekannte Farbe gedruckt Versuchen Sie, die Ähnlichkeiten mit den Anweisungen I Elef und L in Python zu sehen mit den Anweisungen I Elef und L in , um eine ungefähre Vorstellung davon zu bekommen, wie dieser Matchcase funktioniert Ordnung. In Ordnung, Leute. Das war's für diese theoretische Lektion über Match-K-Statements. Wir werden eine praktische Laborübung machen, wir werden tiefer eintauchen und durch Handeln lernen. 17. Arbeiten mit Match-Case-Statements – [Lab]: Hallo zusammen und willkommen zur nächsten praktischen Laborübung, die sich auf die Arbeit mit Fallbeispielen in Hyson konzentrieren wird mit Fallbeispielen in Hyson Lassen Sie uns also anfangen. Lassen Sie uns unser erstes Programm sehr einfach halten. Ich definiere eine Variable, nenne diese Farbe und weise sie der Farbe Rot zu. Dann möchte ich meinen Matchcase einrichten. Also werde ich Match sagen. Und ich möchte, dass das auf Farbe basiert. Also werde ich die Farben anpassen. Und dann möchte ich die Fälle spezifizieren. den Fällen handelt es sich um die expliziten Werte, die zugeordnet werden können der Variablen zugeordnet werden können, die hier abgeglichen werden , in diesem Fall Farbe. Wir können also Groß- und Kleinschreibung sagen, zum Beispiel Rot, Doppelpunkt. Und wenn dann der Wert von Farbe mit der Groß-/Kleinschreibung von Rot übereinstimmt, können wir hier eine Aussage drucken und sagen die Farbe rot gedruckt wird. Nehmen wir nun an, die Farbe ist zum Beispiel Blau. Also sage ich Case und wir kümmern uns darum, ob es blau ist. Dann würden wir „Drucken“ sagen, die Farbe ist blau. Nehmen wir nun der Argumentation halber an, der zugehörige Wert ist nicht rot oder blau, und wir wollen alles andere berücksichtigen Es ist also so etwas wie eine Aussage. Wir können Groß- und Kleinschreibung, Unterstrich, Doppelpunkt sagen und dann können wir Drucken sagen Die Farbe ist nicht rot oder blau. Das können wir sagen. In Ordnung, wir haben das eingerichtet. Nun, wenn wir uns hier unseren Code ansehen, können wir sehen, dass die Ausgabe hier, das ist korrekt, die Farbe Rot sein wird, weil die Groß- und Kleinschreibung hier auf Rot gesetzt ist, und das entspricht dem Wert dessen, was wir mit dem zugehörigen Wert vergleichen. Wenn ich also diesen Code ausführe, können wir hier sehen, dass die Ausgabe am Ende die Farbe Rot ist. Lassen Sie mich das jetzt auf Blau ändern. Speichere meinen Code und führe ihn aus. Jetzt heißt es, die Farbe ist blau. Lassen Sie mich nun eine andere Farbe eingeben, die nicht Rot oder Blau ist. Was dann passiert, ist hier mit diesem speziellen Unterstrich der Fall. Dann wird die folgende Anweisung ausgelöst und ausgegeben, die folgende Anweisung ausgelöst die besagt, die Farbe nicht rot oder blau ist Lassen Sie mich das zum Beispiel auf Grün umstellen und den Code ausführen, und es wird angezeigt, dass die Farbe nicht rot oder blau ist Okay. So können wir also eine sehr einfache Match Case-Anweisung und integrieren. Ordnung. So können wir weitermachen und das entsprechend einrichten. Ich möchte, dass wir jetzt ein bisschen weiter gehen und ich möchte dass wir ein Programm erstellen, das einen Eingabewert verwendet. Also geben wir einen bestimmten Wert ein und dann wird der Fall entsprechend dem Wert ausgegeben, den wir in den Fällen eingegeben haben , die wir in der Match-Anweisung eingerichtet haben. Richtig, also lasst uns weitermachen und ein Programm erstellen , das überprüft , woher jemand kommt. Wo basiert die Nationalität? Also werde ich zunächst eine einfache gedruckte Erklärung erstellen , also sage ich Drucken, und ich werde eine Frage stellen. Also werde ich sagen, wo kommst du her. Okay, sehr einfach. Dann wollen wir eine Eingabefunktion verwenden , die einer Variablen zugewiesen wird, die als Land bekannt ist , und wir werden das Land in unseren Match-Case-Anweisungen zuordnen. Also werde ich sagen, Land ist gleich, und ich sage Eingabe, einfach so Dann können wir weitermachen und unsere Match-Case-Statements erstellen Also werde ich weitermachen und Match Country sagen. Und dann werde ich ein paar Koffer einpacken. Also sage ich Fall, und ich sage voraus, dass wir zum Beispiel Südafrika haben werden, dann wird das Druckergebnis hier sein, dass Sie aus Südafrika kommen. Ich werde hier etwas frech sein, und ich will nicht immer wieder verschiedene Fälle haben Ich werde einfach so etwas wie einen Anwendungsfall haben. Also werde ich Groß- und Kleinschreibung, Unterstrich, Doppelpunkt sagen und ich werde hier Drucken sagen Du bist nicht aus Südafrika. Es ist sehr einfach. Wie Sie sehen können, werden wir in der Ausgabe eine Abfrage haben , die besagt, woher Sie kommen, wenn wir unseren Code ausführen. Dann müssen wir das Land eingeben , aus dem wir kommen, und der Wert, den wir eingeben wird der Variablen Land zugewiesen. Dann werden wir das hier auf unseren Spielfall anwenden . Wir werden Match Country sagen. Dann werden wir als Erstes überprüfen, ob der Benutzer Südafrika eingegeben hat. Wenn sie das getan haben und es mit der Eingabe übereinstimmt, werden wir drucken, dass Sie aus Südafrika kommen. Wenn dieser Benutzer etwas anderes eingegeben hat, wird es bedeuten, dass Sie nicht aus Südafrika sind. Okay, was wir in diesem Fall tun wollen, ist, dass wir das PysOnFle ausführen wollen und keinen Code ausführen Nun, Code hier mit dem Code Runner ausführen, okay? Es wird nicht so gut funktionieren weil der Run-Code uns nur eine Ausgabe gibt, aber weil wir eine Eingabe haben die wir in einige Daten eingeben möchten, haben wir keine andere Wahl, als weiterzumachen und die PysOn-Datei auszuführen, aber wir werden das gegen Ende wieder ändern. In Ordnung? Also werde ich sagen, führe PysonFLE aus, es wird diese Debug-Konsole hier ausgeben Und da steht, woher kommst du? Okay, also hier, ich werde einfach sagen, Südafrika, da steht, du bist aus Südafrika. Also druckt es aus, was wir hier eingerichtet haben. Also, lassen Sie uns weitermachen und das Programm erneut ausführen und dieses Mal werde ich etwas hinzufügen, das sich von Südafrika unterscheidet. Also werde ich das Programm erneut ausführen. Und es steht natürlich, wo du herkommst. Also hier, dieses Mal, werde ich USA sagen. Treten Sie ein und es heißt, Sie kommen nicht aus Südafrika. Also wertet es dieses Ergebnis hier aus, wo es heißt, dass Sie in diesem Fall nicht aus Südafrika kommen, weil dieser Fall hier in Südafrika nicht wahr ist In Ordnung. Auf diese Weise können wir also im Grunde eine Absicherung vornehmen und diese Funktionalität integrieren, sodass wir auch anhand von Eingabewerten testen und unsere Fälle entsprechend nutzen können Eingabewerten testen und unsere Fälle entsprechend nutzen Ordnung, Leute. Also das ist es Alles, was ich jetzt tun möchte, ist, dies auf Ausführungscode umzustellen, und wir können das vorerst einfach beenden. Da sind wir. Okay, jetzt haben wir den Code ausgeführt und können einfach einen einfachen Test durchführen, und können einfach einen einfachen Test durchführen um sicherzustellen, dass das in Ordnung ist. Ich werde einfach Name Sano sagen. Lassen Sie uns hier einen letzten Test machen, und wir sagen Match Name Case, wir können John sagen. Könnte „Drucken“ sagen. Hi, John, und dann sage ich hier den Fall und das wird Ehre sein und ich sage Print Honor. Wenn es keiner von beiden ist, können wir einfach „ Print Hi“ sagen, Freund. Richtig, also lassen Sie uns weitermachen und sicherstellen, dass wir Code ausführen, und da haben wir ihn. Die Ausgabe hier ist hoch, nein, denn das ist es, was wir hier als zugehörigen Wert festgelegt haben . In Ordnung, Leute. Also das war's für diese spezielle Laborübung darüber, wie man Match-K-Statements verwenden kann. Wie Sie sehen können, ist es unseren I ELF- und S-Anweisungen sehr ähnlich . Es gibt jedoch einen kleinen Unterschied, aber es ist sehr nützlich, und ich werde auf jeden Fall empfehlen, und ich werde auf jeden Fall empfehlen es in Ihren Programmen zu verwenden, wenn Sie können. In Ordnung, das war's für diese praktische Laborübung. 18. Module: Hallo zusammen und willkommen zur nächsten Lektion, die sich auf Module konzentrieren wird. Nun, mit den Modulen hier, wird das eine Art Auffrischungsstunde sein, okay, weil sie anfängerfreundlich ist , könnte man sagen, aber ich möchte mich ein bisschen mehr mit den praktischen Laborübungen befassen , wenn ich mich darauf konzentrieren werde, Ihre eigenen Module zu erstellen und dann auch die eingebauten Module von Pierson zu verwenden Deshalb möchte ich nur das Vorab erwähnen, damit Sie sich dessen bewusst Okay, also Module. Auffrischung möchte ich nur die Grundlagen durchgehen Ein Modul ist also im Grunde eine PysOnFLE Dot PYS-Erweiterung die Funktionen, Variablen und Klassen zur Wiederverwendung in anderen Dateien speichert , einer Toolbox sehr ähnlich ist, könnte man sagen, was die Analogie angeht Anstatt Code zu wiederholen, können Sie ihn jetzt in einem Modul definieren und darauf zugreifen, können Sie ihn jetzt in einem Modul definieren und darauf wann immer Sie ihn benötigen Jetzt können Sie auch Ihre eigenen Module erstellen oder integrierte Module eingeben , die standardmäßig in PySon enthalten sind diesem Sinne In diesem Sinne finden Sie unter der folgenden URL eine vollständige Liste aller integrierten PysON-Module. Darauf werde ich in der nächsten Lektion nur kurz eingehen Aber ich möchte Sie hier nur darauf aufmerksam machen. Das Wichtigste, was Sie neben der Definition eines Moduls wirklich berücksichtigen sollten, der Definition eines ist, dass Sie entweder Ihre eigenen Module erstellen oder die integrierten Module, die in PySon enthalten sind , eigenständig verwenden können in PySon enthalten sind , eigenständig Ordnung, das ist also alles, was ich zu Modulen aus theoretischer Sicht erwähnen möchte zu Modulen aus theoretischer Sicht 19. Durchsuchen des Python-Modul-Index: Hallo zusammen. Willkommen zur nächsten Lektion, die eine sehr kurze Lektion sein wird, nur um Ihnen einen Überblick über den PySON-Modulindex zu geben Überblick über den PySON-Modulindex Nun, das habe ich in der vorherigen Lektion gegen Ende erwähnt , als Sie einen genaueren Blick auf alle integrierten Module werfen möchten, die in PySON standardmäßig enthalten sind Hier ist der PySON-Modulindex. Hier können Sie alles über das eingebaute PySON-Modul lesen. Ich möchte Ihnen auch etwas Klarheit in einer früheren Lektion geben, in der wir behandelt haben , wo wir ein bestimmtes Modul verwendet haben Wie Sie sich erinnern, verwenden wir in der Lektion über reguläre Ausdrücke und insbesondere in der praktischen Laborübung zu diesem Thema das der praktischen Laborübung zu diesem Thema das RE-Modul für reguläre Ausdrücke. Technisch gesehen können Sie hier, wenn Sie RE eingeben würden , „Los“ sagen, und dann können Sie und dann können Sie in diesem Glossar nach unten scrollen und hier können Sie sehen, dass wir hier dieses RE-PySON-Modul haben, die Operation mit regulären Ausdrücken, und Sie können natürlich darauf klicken Sie können mehr über das von uns verwendete Modul lesen, bei dem es sich um ein integriertes Python-Modul handelt, kein benutzerdefiniertes. Nur ein paar Informationen, die ich mit Ihnen teilen wollte. Auf diese Weise können Sie auch ein bisschen mehr lesen , damit Interessierte einfach ein wenig durch einige der verfügbaren Konzepte und Module stöbern können. 20. Integriere benutzerdefinierte und integrierte Module – [Lab]: Hallo zusammen und willkommen zur nächsten praktischen Laborübung, die sich auf die Arbeit mit benutzerdefinierten Methoden und auch integrierten Methoden konzentrieren wird . Lassen Sie uns also weitermachen und loslegen. Das erste, was Sie tun möchten, um Ihr allererstes Modul in Python zu erstellen Ihr allererstes Modul in , ist, zum Explorer zu wechseln, und dann können Sie auf der linken Seite sehen , dass Sie Ihre Projekte haben. Also mein Projekt, und darin haben wir unsere Haupt-Py-Datei. Jetzt wollen wir die Funktionalität in unserem Modul in einer anderen Datei speichern . Abhängig von der Logik, die Sie in der besagten Datei haben, ist es am besten, sie an das anzupassen, was Sie in die besagte Datei einfügen möchten. Also werde ich hier mit der Maus über mein Projekt fahren und Neue Datei sagen, und ich werde diese Begrüßung Punkt Pi nennen Jetzt können Sie sehen, dass ich einen Punktestapel für die Begrüßung und in meinem Projekt einen Punktestapel für die Begrüßung und eine Hauptdatei mit Punkt Py habe Also lass uns anfangen. In Ordnung. Nun, das Erste, was Sie tun sollten, ist eine gewisse Logik zu definieren. Ich möchte eine Funktion erstellen, die Hallo sagt. Ich sage taub und sage Unterstrich, Hallo, und füge dann ein Codon hinzu So definieren wir eine Funktion, und dann können wir einfach Return sagen und wir können zum Beispiel Hallo, Nein sagen Dann definieren wir hier in dieser Datei auch eine Variable , während wir sie hinzufügen. Hier sage ich „ Lieblings-Begrüßung mit Unterstrich und hier sage ich „Willkommen“. Ganz einfach Hier haben wir also unsere Begrüßungspunkt-Pi-Datei definiert, und diese könnten Sie als Ihr Modul behandeln. Da ein Modul natürlich ein vorhandenes PysonFle sein wird, vorhandenes PysonFle sein das zum Beispiel Funktionen, Klassen usw. Methoden haben wird, alles in einem S-Modul in Jetzt wollen wir hier unser Modul und die Funktionalität nutzen , die wir in Greetings Dot Pi eingestellt haben Sie können also zu Ihrer Haupt-Dotp-Datei navigieren, und alles, was Sie tun müssen, ist Import zu sagen und dann auf genau diesen Dateinamen zu verweisen Also hier heißt es Begrüßung. Also werde ich Begrüßung sagen und los geht's. Wir haben erfolgreich unser eigenes benutzerdefiniertes Modul in Pyson importiert unser eigenes benutzerdefiniertes Modul in Pyson Jetzt wollen wir es nutzbar machen. Also können wir unsere Print-Erklärung verwenden und „Drucken“ sagen. Dann möchten Sie sich auf das Modell beziehen. Punkt, und dann können Sie auf die Funktion verweisen , die Sie definiert haben In unserem Fall heißt das Unterstrich, Hallo Sie können Punkt, sagen wir Unterstrich, Hallo sagen. In Klammern werden Sie es so lassen, wie es ist, weil wir keine Parameter oder ähnliches definiert haben , und das wird Hallo o zurückgeben. Nehmen wir an , ich möchte den Wert von Wir müssen hier nur auf den Variablennamen verweisen, Lieblings-Gruß ist , und Sie können einfach Drucken sagen und Sie können Gruß, Punkt sagen, und dann können Sie Lieblings-Unterstrich-Begrüßung sagen Dadurch wird der Wert ausgegeben, der Variablen zugeordnet ist Wenn wir den Code jetzt ausführen, werden wir sehen, dass er Willkommen nein und Willkommen sagt. Es gibt alles zurück, was ich in meiner Funktion definiert habe, und es wird auch den Wert der zugehörigen Variablen ausgeben, die zuvor definiert wurde. In Ordnung, das ist also eine sehr einfache Art, wie wir uns absichern und alles einrichten können. Aber nehmen wir an, wir wollen ein bisschen mehr ins Detail gehen, wir wollen, dass es ein bisschen komplizierter wird. So können wir diese Zeilen entfernen. Gehen wir zurück zur Begrüßung und lassen Sie uns das ein wenig ändern . Kann das entfernen. Was ich tun möchte, ist, dieselbe Funktion beizubehalten, Hallo zu sagen, aber ich möchte hier einen Parameter übergeben. Ich werde Name sagen und dann mit der Rückgabeanweisung hier F-Strings verwenden. Ich werde F sagen und ich werde Hallo sagen und dann werde ich einen Platzhalter hinzufügen , der Name sein wird Wir werden das Argument in unserer Pi-Hauptdatei durchgeben , die dann hier den Namen annimmt , der dann an diesen Platzhalter als Namen übergeben wird diesen Platzhalter als Namen übergeben Okay. Dann können wir noch eine Funktion zum Abschiednehmen haben, also kann ich taub, sagen, unterstreichen, gut Tschüss. Wir sagen nochmal den Namen. zurück und wir haben eine F-Zeichenfolge mit der Aufschrift Auf Wiedersehen, fügen Sie Ihren Platzhalter und wir haben Name. Einfach so Wenn wir jetzt Punkt für Datei zu unserer Hauptseite gehen, ist das, was wir tun können, dem zuvor sehr ähnlich. Wir können „Drucken“ sagen. Und wieder werden wir uns auf unser benutzerdefiniertes Modul beziehen , das Greeting Dot ist. Und natürlich sagt unser Funktionsname „Hallo“, „Sag , Unterstrich Hallo Und jetzt übergeben wir ein Argument, das unseren Parameter hier ersetzt, und dann wird es in dieser Rückgabeanweisung in den Platzhalter für das, was wir definiert haben, eingefügt für das, was wir Also werden wir das Argument jetzt definieren, und hier werde ich Jack sagen Dann gehe ich zur nächsten Folie und sage Gruß drucken, Punkt, sagen, und der Funktionsname lautete Unterstrich, Auf Wiedersehen sagen Ich sage Unterstrich, gut, Tschüss. Und hier werde ich nur sagen, Katie. Und wieder wird derselbe Prozess ablaufen. Wir rufen diese Funktion auf und übergeben das Argument und ersetzen es durch den Namen hier, den Parameter name, und geben es dann an die Rückgabeanweisung innerhalb des Platzhalters weiter Argument und ersetzen es durch den Namen hier, den Parameter name, und geben es dann an die Rückgabeanweisung innerhalb des Platzhalters zu verabschieden, Lassen Sie uns das jetzt ausführen, damit es Hallo Jack und Tschüss Katie sagen sollte , da wir die Argumente hier übergeben haben . Lassen Sie uns diesen Code ausführen Und wie wir sehen können, heißt es: Hallo Jack und auf Wiedersehen Katie. In Ordnung. So können wir das umgehen und unsere eigenen Module hinzufügen. Ch. So können wir weitermachen und das einrichten. Wir können das einfach verschieben und diese Datei löschen, sodass wir einfach mit der rechten Maustaste auf Greeting Dot Pie klicken und Löschen sagen können . Und jetzt arbeiten wir wieder mit unserer Dot Pi-Hauptdatei. Okay, das sind also benutzerdefinierte Module. Nehmen wir an, Sie können Ihre eigenen benutzerdefinierten Module erstellen. Nehmen wir nun an, wir möchten mit eingebauten Modulen arbeiten. Sie haben es also schon einmal gelernt, als wir das RE-Modul haben , als wir mit regulären Ausdrücken arbeiten. Jetzt werde ich Ihnen nur ein bisschen mehr zeigen , nur um Ihnen eine Vorstellung zu geben. Python ist also in Modulen eingebaut. Wir können das Massenmodul verwenden. Also werde ich sagen Masse importieren. Und nehmen wir an, ich möchte die Quadratwurzel eines bestimmten Werts ermitteln. Also hier werde ich sagen, Zahl ist gleich 16. Dann kann ich „Drucken“ sagen, auf das Massenmodul beziehen, und ich möchte die Quadratwurzelfunktion verwenden, und ich möchte die Quadratwurzel der Zahl ermitteln, die ich gerade hier eingerichtet habe Ich möchte im Wesentlichen die Quadratwurzel von 16 bekommen. Wenn ich das jetzt starte, heißt es vier, 4,0. Also haben wir das richtig verstanden. Okay, so können wir zum Beispiel das Massenmodul nutzen. Nehmen wir an, wir wollen eine Zufallszahl von 1 bis 10 ausgeben. Was wir dafür also tun können, ist, dass wir weitermachen und das Zufallsmodul verwenden können Also sage ich zufällig importieren und dann werde ich Drucken sagen. Dann beziehen wir uns auf das Zufallsmodul, und dann hat Random die Funktion Rand Int. Generieren Sie also natürlich eine zufällige Ganzzahl zwischen den von uns festgelegten Parametern. Wir können also rand int sagen, die Funktion rand int, und dann wollen wir zwischen sagen. Also möchte ich eine Zufallszahl zwischen, sagen wir, eins und zehn ausgeben . Also das Minimum, das es sein kann, ist eins und das Maximum kann es zehn sein. Du wirst nicht 11, 12, 13 oder etwas Ähnliches bekommen. Wenn ich das starte, heißt es sechs. Nehmen wir an, ich lasse es noch einmal laufen, es heißt zwei. So können wir sehen, dass dadurch eine Zufallszahl von 1 bis 10 generiert wird Ordnung. Dies ist das Beispiel für die eingebauten Module. In Ordnung. Das war's für diese praktische Übung mit einer Lampe. Hoffentlich haben Sie inzwischen ein Verständnis dafür , wie Sie Ihre eigenen Module erstellen und die in Pyson integrierten Module nutzen die in Pyson integrierten Module 21. Pakete, Pip und PYPI: Hallo zusammen und willkommen zur nächsten Lektion, die sich auf Pakete, PIP und PY PI konzentrieren wird . Schauen wir uns das mal an Also gut, also Pakete. In PySON ist ein Paket nun ein Ordner, mehrere PysON-Module zur besseren Organisation zusammenfasst Was Entwickler nun tun können und was sie häufig tun, ist, dass sie Pakete mithilfe von PIP von PYPI, auch bekannt als PysonPackage-Index, installieren Pakete mithilfe von PIP von PYPI, auch , um PysonPackage-Index ihren Projekten zusätzliche Funktionen hinzuzufügen. , wenn sie zu PYPI wechseln, um ein bestimmtes Paket zu installieren, um ihren Anwendungen eine kleine Optimierung der Funktionalität hinzuzufügen, ist dies heutzutage ein fester Bereichen der Webentwicklung, in denen Entwickler PySon-basierte Web-Frameworks wie Jango oder FLASK verwenden PySon-basierte Web-Frameworks wie , wenn sie zu PYPI wechseln, um ein bestimmtes Paket zu installieren, um ihren Anwendungen eine kleine Optimierung der Funktionalität hinzuzufügen, ist dies heutzutage ein In Bereichen der Webentwicklung, in denen Entwickler PySon-basierte Web-Frameworks wie Jango oder FLASK verwenden , wenn sie zu PYPI wechseln, um ein bestimmtes Paket zu installieren, um ihren Anwendungen eine kleine Optimierung der Funktionalität hinzuzufügen, ist dies heutzutage ein fester Bestandteil. Sie können dies auch in normalen Pyson-Programmen verwenden , in sehr kleinen Programmen auch mit einem Python-Skript In Ordnung, also PIP und PYPI. Jetzt ist PIP im Wesentlichen ein Tool zur Installation Dies macht es einfach, alle externen Bibliotheken herunterzuladen und zu aktualisieren, anstatt alles von Grund auf neu zu programmieren und viele Module zu gruppieren Nun, PYPI, der PysonPackage Index, ist im Grunde ein Online-Repository, das Tausende von PysON-Paketen blockiert, die wir herunterladen und in unseren PySON-Programmen verwenden können . Jetzt ruft PIP Pakete von PYPI ab PYPI Okay. Okay, Leute, das ist es mit Paketen, PYPI und auch der Einstellung, alles in Übereinstimmung mit PIP In der praktischen Laborliste werden wir tiefer eintauchen und mit ein paar Beispielen arbeiten, um unser Programm zu verbessern 22. Verwenden von externen Paketen – [Lab]: Hallo, alle zusammen. Willkommen zur nächsten praktischen Laborübung, die sich auf die Arbeit mit Paketen konzentrieren wird. Nun, das ist die PI-Website, auf der Sie zu pypi.org gehen können und die Sie auf diese Website weiterleitet Hier können Sie Tausende von Projekten durchsuchen und erfahren, wie Sie nur eine kleine Anwendung oder Bibliothek in Ihrem PysonProject implementieren können nur eine kleine Anwendung oder Bibliothek in Ihrem PysonProject implementieren oder Bibliothek in Das ist der PysonPackage Index. Wir können hier auch nach Projekten suchen und sie dann in unsere PySON-Anwendungen integrieren Richtig. Der erste, den ich mir ansehen werde, wird einfach sein. Ich möchte, dass wir unserem Code einige Emojis hinzufügen. Zumindest sehen wir das in unserem Ausgabefenster. Was ich tun werde, ist , nach einem Bild zu suchen und danach zu suchen. Okay. Und hier haben wir einen. Also Emoji, das ist das Emoji für PySon. Und du kannst sehen, dass wir es installieren können, indem wir Perp Stallimogi sagen Richtig. Also werden wir einige Befehle eingeben wollen. Was wir vorerst tun müssen, ist, dass wir die PysON-Datei nur für den Moment ausführen können PysON-Datei nur für den Moment ausführen Okay. Und hier haben wir alles hier. Lassen Sie uns das klären. Okay, da haben wir's. Und was ich auch tun werde, ist, einige dieser Terminals hier zu schließen und wieder zu öffnen. Da gehen wir los und räumen ab Da haben wir es. Hier ist jetzt unser Terminal. Jetzt können wir weitermachen und einige Befehle ausführen. Nehmen wir an, wir möchten dieses Emoji-Paket installieren. Wir können einfach das Folgende kopieren, auf unser Terminal gehen, auf unser Terminal gehen, und wir können natürlich mit der rechten Maustaste klicken und es wird automatisch für Sie eingefügt Wir können sagen, dass Pep Emoji installiert. Okay. Und wie Sie dort sehen können, haben wir Preispakete im globalen Umfeld installiert, was zu Konflikten führen kann. Sie können weitermachen und eine virtuelle Umgebung erstellen , um Ihre Abhängigkeit zu isolieren. Auf dieses Thema werden wir später in diesem Kurs näher eingehen. Machen Sie sich also keine Sorgen, darauf kommen wir gleich zurück. Also können wir einfach sagen, vorerst nicht wieder auftauchen. Richtig, wie wir jetzt im Hintergrund sehen können und das Emoji-Paket installiert Da haben wir's. Dann können wir das jetzt klären. Ordnung, perfekt. Also haben wir das installiert. Lassen Sie uns jetzt weitermachen und das integrieren. Also hier haben wir unseren Code. Was ich jetzt tun werde , ist, diese speziellen Bibliotheken zu importieren. Ich sage importmoji und dann wollen wir unserem Text ein Emoji hinzufügen Ich werde hier zum Beispiel eine Aussage mit der Aufschrift „Drucken“ haben , und ich werde mich auf dieses Emoji-Modul beziehen und Punkt Und es hat eine Funktion, die als Emojis bekannt ist. Es ist also EMO J, I Z E. Und innerhalb dieser Funktion hier werden wir den Schecks, die wir ausgeben möchten, hinzufügen, was wir hinzufügen möchten, zusammen mit Emote oder Emoji, die wir ausgeben möchten Also hier sage ich zum Beispiel, dass dein Passwort bereit ist. Richtig. Jetzt würden Sie als Nächstes Ihre Emerges hinzufügen Sie können ein Leerzeichen hinzufügen, und dann werden Imoges in Pyson bestimmt, indem einen Doppelpunkt und dann den Namen Ihres Emojis hinzufügen. Ich füge einen Schlüssel hinzu und schließe ihn dann mit Jetzt gibt es eine Website, die Sie hier unter copy dm dot kitp dot IO verwenden können unter copy dm dot kitp dot Ich werde in der nächsten Lektion auf diese spezielle Ressource verweisen , sodass Sie sich hier alle einzelnen Emoges ansehen einzelnen Emoges Aber wie Sie sehen können, werden sie durch die Doppelpunkte auf beiden Seiten und den Namen des S-Werts genau in der Mitte bestimmt beiden Seiten und den Namen des S-Werts genau in der . In Ordnung Also genau das mache ich hier und ich stelle es für einen Schlüssel ein. Lassen Sie uns also weitermachen und unseren Code ausführen. Und hier können Sie sehen, dass Ihr Passwort bereit ist. Wir können also sehen, dass es schön und sauber ist, dass es auch diesen Schlüssel hat. Also kann ich das auch klären. Und lassen Sie mich das jetzt so einstellen, dass das Unterstrichzeichen aktiviert ist. Speichern Sie die Datei Und dieses Mal werde ich es manuell ausführen. Ich werde Python sagen. Main Dot Pie. Und da können Sie sehen, wie es ausgegeben wird, Ihr Passwort ist fertig. Also sehr sauber und sehr scharfsinnig, könnte man sagen. Und da haben wir's. So können wir Bilder in PySon verwenden. Lassen Sie uns nun weitermachen und fügen wir hier Farben zu unserem Terminal hinzu , zu unserem Text und auch zu unserem Ausgabetext Also können wir zurückgehen. Und wir wollen nach etwas suchen, das als ColorRama bekannt ist Sie können hier also ColorRama eingeben und dann weitermachen und Bitte hier haben wir ihn, einen plattformübergreifenden Farbterminaltext Und wir wollen das Folgende kopieren, zu unserem Terminal gehen, zu unserem Terminal gehen rechten Maustaste klicken und Pep sagen und ColorRama speichern Es wird nur installiert, los geht's . Es wurde installiert. Lass uns das klären. Und was wir tun können, ist eine Absicherung zu machen und diesen Code zu entfernen. Ordnung, wir wollen also eine Absicherung machen und uns das Clama-Modul schnappen , damit wir von Carlo Rama sagen können, das ist also das Modul, und wir wollen die vier Klassen importieren Also das funktioniert als Klasse. Und was wir tun wollen, ist die Print-Anweisung zu verwenden, und wir werden weitermachen und vier sagen, was die Klasse ist, und dann werden wir Art Attribut spezifizieren. Nehmen wir an, wir möchten, dass unser Text rot ist, wir sagen einfach rot. Dann können wir Plus sagen, und dann können wir hier in unseren Arbeitszitaten sagen, dass es sich um roten Text handelt. Okay, lassen Sie uns weitermachen und unseren Code pysnMin dot pi ausführen. Und du kannst jetzt sehen, dass alles rot ist. Die Schecks hier, die wir ausgedruckt haben, sind also rot, und auch die Terminalfarbe ist rot. Also wenn ich das klarstellen würde, können Sie sehen, dass es jetzt rot ist. Nehmen wir an, ich möchte das zum Beispiel auf Grün ändern, ich kann das Attribut hier einfach auf Grün ändern. Speichere meine Datei und ich kann einfach Python Main Dot Pi sagen. Und los geht's, wir können weitermachen und sehen, dass es jetzt grün ist. Ich muss nur den Text dort auf Grün ändern, und los geht's, es ist grüner Text. Okay, damit wir sehen können, dass es grün ist. Setzen wir das auf Blau, Blau, und wir sagen , das ist Blau. Text, MSN-Hauptpunktkreis, und das ist blauer Text Okay, wir können also sehen, wie wir diese Farben ändern können Sie können sehen, wie effektiv es ist, Pakete in Ihren Programmen zu verwenden. Kehren wir zur Standardeinstellung zurück, die natürlich weiß ist. Also werde ich sagen, das ist weißer Text. Und Sie können den oberen Pfeil auf Ihrer Tastatur drücken , um schnell nach den Befehlen a pysmminPi zu suchen , und dann kehren wir zu weißem Text zurück Also können wir das einfach entfernen. Da haben wir's. Lassen Sie uns ein anderes Paket verwenden, mit dem wir ein Passwort generieren können. Also ein sicheres Passwort, und wir werden die Zeichen bestimmen , die wir im Passwort haben wollen. Das kann also nützlich sein, wenn Sie Ihrem Freund eine Liste mit Passwörtern geben möchten , aus der wählen kann, falls er Schwierigkeiten hat , ein sicheres Passwort zu wählen. Wir können also nach dem Paket suchen und dann ist es PWN, also Password Gen, der verkürzte Begriff Hier haben wir es, PWGen und wir können das Folgende kopieren, auf Ihr Terminal hinzufügen, auf Ihr Terminal hinzufügen rechten Maustaste klicken und es einfügen und Enter drücken Denken Sie daran, dass die Zeit für die Installation von Person zu Person unterschiedlich sein wird . Machen Sie sich also keine Sorgen, wenn die Installation einige Zeit in Anspruch nimmt und alles, bis Sie den folgenden Hinweis erhalten . Es wurde installiert, und lassen Sie uns weitermachen und es einrichten. Wir wollen das PWGen-Modul importieren. Dann wollen wir eine Variable definieren, die ich als Passwort setzen werde, und ich werde mir dann das PWGen-Modul schnappen, und dann werden wir auf die Funktion von PWGen verweisen, die übrigens auch den gleichen Und hier werden wir die Längen für unser Passwort definieren Längen für unser Passwort Also werde ich das auf zehn Zeichen setzen. Dann gehe ich zur nächsten Zeile und sage Drucken. Ich sage generiertes Passwort, Doppelpunkt, füge ein Komma hinzu und verweise dann auf das Passwort, das ich sehe PWG generiert ein zufälliges Passwort für mich, das mit dieser Variablenausgabe verknüpft ist, und dieser Text wird direkt daneben Also lass uns weitermachen und Pysonmin Punkt Pi sagen. Und hier können wir das generierte Passwort sehen. Es ist also ein zufällig generiertes Passwort, das eingerichtet wurde. Es besteht also auch aus zehn Zeichen, also eins, zwei, drei, vier, fünf, sechs, sieben, acht, neun, zehn. Lassen Sie uns das zum Beispiel auf fünf setzen. Lassen Sie uns Python Main Dot Pi ausführen. Und wir können sehen, dass wir ein Passwort haben , das nur fünf Zeichen lang ist. Sie können also sehen, wie Sie es anpassen und ändern können , wie Sie es sich wünschen. Mit diesem Paket werden Sie also lernen, wie Sie ein zufälliges Passwort generieren können . Ordnung. So können wir weitermachen und das entsprechend einrichten. Richtig, was ich jetzt tun möchte , ist, dass ich das schließen möchte, und ich möchte das verwenden, was wir zuvor gemacht haben damit wir hier auf das Symbol klicken und Code ausführen können, und wir wollen es jetzt einfach mit unserem Coderunner wieder dahin bringen, wo wir vorher waren, da wir nichts eingeben oder etwas installieren Richtig, Leute. Das ist es. Das war's für diese praktische Laborübung darüber, wie wir Pakete verwenden und wie wir sie installieren können und wie wir sie nutzen können , um ihre eigenen benutzerdefinierten Funktionen in unsere Projekte und die Lodge zu integrieren . 23. Hilfreiche Ressourcen: Hallo zusammen. Willkommen zur nächsten Lektion, die sich darauf konzentrieren wird, Ihnen die angegebenen Links zur Verfügung zu stellen, die ich in der vorherigen Lektion erwähnt habe. Nun geht es in der ersten Frage darum, wie Sie auf PyPI zugreifen können. Es ist sehr einfach Sie würden einfach weitermachen und pypi.org in Ihre URL eingeben und das bringt Sie zum PysonPackage Index, der eine Liste aller Bibliothekspakete von Drittanbietern zeigt, die Ihnen Bibliothekspakete von Drittanbietern zeigt, die zur Verfügung stehen, z. B. die, die wir zuvor verwendet haben, wie PW Jen Was die Imoges angeht, die ich verwendet habe, sah es natürlich so aus, als würde ich sie auswendig lernen, oder Sie würden sagen, aber es gibt tatsächlich eine Seite, auf der Sie sich ansehen können wie Sie sie integrieren würden, indem den Befehl Pip in store Emoji verwenden würden. Jetzt können Sie hier zur folgenden URL weitergehen , da Sie sehen, kopieren und dann DM und dann 20 Dockets des iosmogfdSlash sehen können kopieren und dann DM und dann 20 So können Sie auch auf diese Website zugreifen. Ich wollte Ihnen hier nur ein wenig Klarheit in Bezug auf die Ressourcen und Links geben. Wenn Sie mehr experimentieren und einige Emerges hinzufügen möchten und Sie einfach ein bisschen üben und sich einige der Pakete ansehen möchten, die Ihnen zur Verfügung stehen , und einfach ein bisschen experimentieren möchten, können Sie das auf diese Weise tun 24. Zufällige Zahlen erstellen: Hallo zusammen und willkommen zur nächsten Lektion, die sich mit der Generierung von Zufallszahlen befassen wird . Lassen Sie uns also anfangen. Also, wie generieren wir Zufallszahlen? Wie Sie wissen, enthält PySon viele verschiedene Module zur Generierung von Zufallszahlen Jetzt werden wir drei Module untersuchen. Nun, das erste Modul, das wir bereits durchlaufen haben, und das ist das Zufallsmodul. Und mit diesem Modul können wir Pseudozufallszahlen generieren Wir haben auch ein Geheimmodul, das kryptografisch sichere Zufallszahlen erzeugt Und wir bekommen auch das Modul Numpit Random, das Zufallszahlen in Arrays generiert Was wir also tun werden, ist, unser Wissen auf eine Art und Weise anzuwenden, in der wir lernen, wie wir es machen Lassen Sie uns also weitermachen und mit den praktischen Laborübungen beginnen. 25. Vertiefung in das Zufallsmodul – [Lab]: Hallo zusammen und willkommen zur nächsten praktischen Laborübung, die sich auf die Generierung von Zufallszahlen mithilfe von drei verschiedenen Arten von Modulen konzentrieren wird Zufallszahlen mithilfe von . Wir werden also das Zufallsmodul verwenden. Das Secrets-Modul und auch das Num Pi-Modul, das wir zu gegebener Zeit in unserem Gerät installieren werden. Aber lassen Sie uns weitermachen und mit dem Zufallsmodul beginnen mit dem Zufallsmodul Lassen Sie uns weitermachen und es so gut wie möglich ausnutzen. Als Erstes müssen wir natürlich sagen, zufällig importieren, sagen, zufällig importieren damit wir auf die notwendigen Funktionen zugreifen können. Und wir wollen zuallererst die Fließkommazahlen 0-1 ausgeben Wir können also „Drucken“ sagen. Zufälliger Punkt zufällig. Und im Grunde rufen wir hier das Random-Modul auf, und das hat eine Funktion, die Floats ausgibt Wenn ich den Code hier ausführen würde, würde er hier Fließzahlen von 0 bis 1 ausgeben, sodass wir als Ergebnis dieser Zufallsfunktion, die Teil des Zufallsmoduls selbst ist, Dezimalzahlen dieser Zufallsfunktion, die Teil des Zufallsmoduls selbst ist, Teil des Zufallsmoduls Wir können sehen, dass es sich jedes Mal zu einer anderen Zahl ändert. Nehmen wir nun an, wir möchten eine zufällige Gleitkommazahl von 1 bis 10 generieren. Anstatt diese Zufallsfunktion zu verwenden, würden wir sagen Punktuniform und Sie werden die Grenzen setzen wollen, sagen wir 1-10 Und du kannst diesen Code ausführen. Nun, das wird Fließkommazahlen drucken. Gleitkommazahlen sind also im Wesentlichen Zahlen im Dezimalformat, und es werden 1—10 sein Jetzt wird es 1.0 ausführen können, aber es wird niemals zehn ausführen Im Grunde genommen wird es also alles von 1 bis 9 sein in dezimaler Reihenfolge Richtig. Lassen Sie uns jetzt weitermachen und zufällige Ganzzahlen ausdrucken Wir haben gerade mit zufälligen Fließkommazahlen oder Gleitkommazahlen experimentiert , wie Sie sagen würden, indem die Punkt-Zufallsfunktion und dann die Gleichheitsfunktion Nehmen wir nun an, wir wollen zufällige Ganzzahlen drucken. Wir können die Funktion rand int verwenden und sagen wir, wir wollen die Zahlen 1-10 drucken Okay, das wird also sowohl eins als auch zehn beinhalten. Wenn also die Funktion Rand aktiviert ist, werden sowohl die Untergrenze als auch die Obergrenze berücksichtigt. Lass uns das ausführen. Wir haben also drei, sechs und wir können sehen, dass es eine Ganzzahl ist, weil es die ganze Zahl ist, die ausgegeben wird: neun, sechs, eins, acht, drei, zehn. Richtig. Nehmen wir an, wir wollen wieder zufällige Ganzzahlen drucken, aber wir wollen, dass sie in einem bestimmten Bereich liegen Nehmen wir nun an, wir möchten 1-9 drucken, was bedeutet, dass ich auch neun ausgeben möchte Sie würden weitermachen und es von rand int ändern, Sie würden es auf rand range setzen Der Unterschied besteht darin, dass zehn ausgeschlossen werden. Nun, Rand It umfasste zuvor zehn, aber in diesem Fall, Randbereich von der Untergrenze aus gedruckt wird, wählen Sie den oberen Grenzwert minus eins. Lassen Sie uns also weitermachen und diesen Code ausführen. Lass uns weitermachen und ihn ausführen. Da haben wir's. Sie werden feststellen, wenn Sie das ziemlich oft ausführen, werden Sie feststellen , dass es niemals zehn ausgeben wird. Wenn Sie jedoch zehn ausgeben möchten, müssten Sie dies technisch gesehen auf 11 setzen. Wenn Sie dann diesen Code ausführen, haben Sie irgendwann zumindest die Möglichkeit, zehn auszudrucken. Nur etwas, mit dem du experimentieren kannst. Denken Sie daran, dass die Funktion Rand in sowohl den unteren als auch den oberen Grenzwert umfasst und der Randbereich nur die untere Grenzzahl und dann die obere Grenzzahl minus eins umfasst. So wird das funktionieren. Wir haben uns Fließkommazahlen und zufällige Ganzzahlen angesehen und zufällige Ganzzahlen Lassen Sie uns nun weitermachen und uns zum Beispiel die Normalverteilung für Statistiken Wenn Sie sich für Statistiken interessieren oder in diesem Bereich arbeiten, können wir das Zufallsmodul und die normale Variatenfunktion verwenden und dann können wir das Zufallsmodul und die normale Variatenfunktion verwenden die normale Variatenfunktion Null und Eins durchgehen Jetzt wird es einen Mittelwert annehmen und die Standardabweichung ist das, was passieren wird. In diesem Fall ist der Mittelwert Null und die Standardabweichung wird eins sein. Wenn wir das ausführen, werden wir bei jeder Ausführung sehen, was die normale Standardvariation die normale Standardvariation sein wird. Es wird immer noch zufällig sein , weil es ein zufälliges Modul ist. Aber wie wir sehen können, können wir auf diese Weise weitermachen und die Normalverteilung mit einem Mittelwert und einer Standardabweichung verwenden . Richtig. Lassen Sie uns das jetzt anwenden, wenn wir mit Listen arbeiten. Also können wir das entfernen. Ich werde hier eine Liste erstellen und ich sage Autos, gleich, und ich werde eine Liste von Autos erstellen Ich werde BMW sagen, ich werde Tesla sagen. Ich werde Ford sagen, und bei letzterem kann ich Nissan einstellen. Ich habe meine Karten an Ort und Stelle. Als Erstes möchte ich Ihnen zeigen, wie Sie einen zufälligen Gegenstand oder ein Element aus dieser Liste auswählen können. Dazu können Sie print sagen und wir wollen das Zufallsmodul verwenden und es gibt eine Funktion namens Choice. Wir werden die Auswahlmöglichkeit hier auf diese Liste anwenden. Und was hier im Grunde passieren wird, ist, dass ein zufälliges Objekt aus dieser Liste gedruckt wird. Die Punktauswahlfunktion ermöglicht es Ihnen, ein zufälliges Element aus der von Ihnen definierten Liste auszuwählen. Wenn ich also den Code ausführe, werden Sie Tesla, Tesla, BMW, BMW, Tesla, Nissa sehen . Es wird jedes Mal, wenn Sie darauf klicken, völlig zufällig ausgewählt Okay, so können Sie diese spezielle Funktion nutzen Nehmen wir nun an, Sie möchten weitermachen und zwei einzigartige Elemente auswählen. Sie möchten also nicht jedes Mal nur eine Option auswählen. Sie möchten jedes Mal zwei einzigartige Elemente auswählen. Sie können dies also anpassen, und anstatt Punktwahl zu sagen, verwenden Sie die Beispielfunktion. Ich werde die Liste einstecken und dann zwei. Jetzt werden Sie zwei einzigartige Elemente aus dieser Liste auswählen . Also, wenn wir den Code ausführen würden, könnten wir sehen, dass wir Ford Tesla haben. Wir haben BMW Tesla, Ford Nissan, Tesla Nissan, und Sie werden hier sehen, es wird einfach weitermachen und zwei zufällige Elemente oder Elemente aus der angegebenen Liste ausgeben . Das ist also der ganze Zweck der Beispielfunktion. Wenn ich zum Beispiel drei pro Iteration auswählen möchte, kann ich diese einfach ersetzen, meinen Code speichern und ihn ausführen. Jetzt erscheint er in drei zufällig ausgewählten Elementen, die ausgegeben und gesampelt werden die ausgegeben und gesampelt Nun, etwas Interessantes, das Sie hier vielleicht untersuchen möchten ist die Tatsache, dass Sie die Punktmusterfunktion verwenden und drei oder, sagen wir, zwei senden , es werden niemals doppelte Elemente angezeigt Wie wir hier sehen können, wenn ich zwei hinzufüge, Nissan und Ford angezeigt. Es wird nicht zum Beispiel Nissan Nissan, Ford Ford, Tesla, Tesla, BMW, BMW zeigen Nissan Nissan, Ford Ford, Tesla, Tesla, BMW, BMW , es wird nicht zeigen , dass es immer weitermachen und etwas Einzigartiges zeigen wird. Wenn ich den Code hier einfach noch einmal ausführen würde, würde er jedes Mal, wenn Sie Ihren Code ausführen, immer etwas Einzigartiges zeigen jedes Mal, wenn Sie Ihren Code ausführen, Okay. Also nur etwas, das ich in diesem Zusammenhang erwähnen wollte. Sie können auch Ihre Liste mischen Nun, wenn ich weitermachen und meine Liste ausgeben würde, wenn ich einfach sage, Autos drucken und rennen, dann BMW , Tess, einen Ford und Nissan Okay, wenn ich das noch einmal durchführe, wird es in derselben Reihenfolge ausgeführt, aber nehmen wir an, ich möchte diese Liste mischen Was Sie also tun können, ist wie folgt. Sie können Drucken sagen, und hier in der Funktion können Sie Random Dot Shuffle sagen, und Sie können diese Liste wie folgt einfügen Diese Funktion wird also die Reihenfolge der in der Liste enthaltenen Elemente mischen Es wird also nicht jedes Mal der Fall sein, wenn Sie BMW, Tesla, Ford, Nissan fahren, also wenn ich es , okay, Sie werden sehen, dass es im Nichtstaat läuft Der Grund dafür ist, dass Sie die Liste mischen müssen , bevor Sie Ihre Druckfunktion ausführen Also etwas, das ich hier erwähnen wollte. Also musst du das separat machen. So wie es ist, lassen Sie es mischen und dann drucken. Diese spezielle Funktion funktioniert also etwas anders. Du wirst es alleine lassen müssen. Nun, als ich es Ihnen vorhin gezeigt habe, können Sie alle Funktionen und Module zusammen in die Print-Anweisung aufnehmen und Module zusammen in die und das Ergebnis ausdrucken. Beim Mischen funktioniert die Shuffle-Funktion jedoch von alleine Hier müssten wir also im Nachhinein ausdrücklich von Autos sprechen. Wenn ich das starte, wird BMW Nissan Forte angezeigt, und Sie können sehen, dass es die Elemente mischt, wie wir sehen können Obwohl Sie das nicht innerhalb einer Druckfunktion tun können. Also ein sehr wichtiger Punkt, den es zu beachten gilt. Und wie Sie bereits gesehen haben, werden Sie kein Ergebnis erzielen. Das ist also etwas Wichtiges, das Sie im Hinterkopf behalten müssen. Bei den meisten Modulen und Funktionen, die Sie verwenden möchten, können Sie sie also in einer Druckfunktion hinzufügen . Wenn Sie jedoch mischen, muss es mit der Shuffle-Funktion selbst explizit eigenständig sein , und dann können Sie danach drucken , sodass die Liste gemischt wird, und dann können Sie das und dann können Sie Okay, also nur etwas Wichtiges, an das Sie sich erinnern sollten. Also wird es den Ort verändern. Okay. Großartig. Lassen Sie uns nun weitermachen und uns einige weitere Funktionen ansehen. Nehmen wir zum Beispiel an, ich möchte, dass zufällige Elemente erscheinen, und ich möchte auch, dass sie sich wiederholen. Ich möchte also nicht, dass es sich in einer, wie soll ich sagen bestimmten Situation befindet, in der wir Duplikate haben, sondern ich möchte auch, dass es einige Wiederholungen Lassen Sie uns also weitermachen und genau das tun. Also haben wir unser Nest und wir können entfernen, was wir hier haben, und wir können einfach sagen, zufälliger Punkt drucken, und diesmal werden wir Optionen sagen. Denken Sie daran, dass wir früher die Wahl hatten, was bedeutet, dass wir einzelne Entscheidungen treffen mussten. Wir können mehrere Auswahlmöglichkeiten haben, und wir sagen Autos, und das wird die Liste sein, die hinzugefügt wird, und wir werden sagen, K ist gleich, und wir können das auf und wir werden sagen, K ist gleich, zwei setzen Alr. Das wollen wir also hinzufügen Und das kann doppelte Werte zurückgeben. Anders als zuvor, als wir eine Absicherung vorgenommen und unser Beispiel mit einer Beispielfunktion eingerichtet haben, können Sie also und unser Beispiel mit einer Beispielfunktion eingerichtet haben, keine Duplikate haben, aber mit der Auswahlfunktion können Sie hier Duplikate haben also K gleich zwei ist, geben wir an, wie viele Elemente wir ausgeben möchten Also wenn ich sagen würde, Lauf, Nissan, Tesla Tesla. Also hier können Sie sehen, dass es zwei Elemente aus der Liste zeigt, aber es kann wiederholt werden, sodass Sie zwei gleiche Dinge sehen können. So kann man also eine Art von Wiederholung haben. Richtig. Als Nächstes möchte ich Ihnen zeigen, wie Sie die Dreiecksfunktion nutzen können Nun, die Dreiecksfunktion ist ziemlich einzigartig, weil sie einen Float zwischen Low, High und Mode zurückgibt Okay? Und der Modus ist der Höhepunkt , an dem der Ausgang höchstwahrscheinlich am nächsten sein wird. Man könnte sagen, es ist dem Aufrunden sehr ähnlich. Also lass mich dir zeigen, wie wir das machen können. Also können wir uns absichern und das, was wir hier haben, entfernen. Und wir können unsere gedruckte Erklärung hinzufügen. Und ich sage zufälliger Punkt, dreieckig, das wird die Funktion sein Und zuerst werden wir einen Float haben , den wir auf den Tiefpunkt zurückbringen wollen Der Tiefpunkt wird eins sein. Der Höhepunkt kann zehn sein, und der Modus oder der Höhepunkt kann fünf sein. Wenn ich das also ausführen würde, würde ich sehen, dass die Ausgabe hier natürlich ein Float ist, aber Sie können sehen, dass sie dem Modus am nächsten kommt. Einer ist also der Tiefpunkt. Zehn ist der Höhepunkt und fünf ist der Modus, mit anderen Worten, der wahrscheinlichste Punkt an dem der Ausgabewert am nächsten sein wird. Also 6,0 am nächsten an fünf, 5,1, im Grunde fünf, 4,7 am nächsten an fünf, 5,4, am nächsten an fünf, 5,2, am nächsten an fünf, 5,6, fast fünf. Sie können dort also sehen, wie das funktioniert. Richtig. Nun, das nächste, was ich Ihnen zeigen möchte, ist der normalen Funktion , die wir zuvor verwendet haben , ziemlich ähnlich . Nehmen wir nun an, wir arbeiten mit Simulationen und möchten reale Messungen mit natürlicher Variation simulieren. Wir können die Gaze-Funktion verwenden. Es wird also auch, wie kann ich sagen, einen Mittelwert und ein Sigma für die Standardabweichung berücksichtigen wie kann ich sagen, einen Mittelwert und ein Sigma für die Standardabweichung Sie würden also einfach dreieckige Gauze ersetzen , dann können wir Null und Eins als Mittelwert durchgehen und Sigma, das wird einen normalverteilten Wert um Null ausgeben, das wird einen normalverteilten Wert um Null ausgeben Sie könnten sagen, wenn ich das ausführe, können wir sehen, dass die zugehörige Verteilung mit Hilfe der Gauze-Funktion ausgegeben wird zugehörige Verteilung mit Hilfe der Vieles davon basiert auf Statistiken, die dreieckige Gaze und die normalen Variatenfunktionen werden hauptsächlich in der Statistikbranche verwendet, sollte ich sagen. Aber das ist nur etwas, das ich Ihnen zeigen wollte , damit Sie zumindest ein wenig Verständnis dafür bekommen ein wenig Verständnis dafür und was Sie erwarten Richtig. Da haben wir es also. Die wichtigsten Dinge, an die ich Sie hier erinnern möchte : Wenn Sie Ihre Druckfunktionen verwenden, können Sie Ihre Funktionen und Module in derselben Druckfunktion bedienen . Allerdings können Sie das nicht für den Shuffle tun, also denken Sie einfach daran In Ordnung, klar, los. Also das war's für das Zufallsmodul. Als Nächstes werden wir weitermachen und uns auf das Secrets-Modul konzentrieren. 26. Das Geheimnismodul erkunden – [Lab]: In Ordnung, also lasst uns mit dem Secrets-Modul weitermachen. Okay, also was ich zuerst tun möchte, ist das Secrets-Modul zu importieren Und als Erstes wollen wir eine zufällige Ganzzahl zurückgeben , die unter einer bestimmten Zahl liegt. Was ich hier also tun kann, ist drucken zu sagen, und ich werde das Secrets-Modul verwenden. Ich verwende dann die Funktion „ Bereich unter und möchte eine Zufallszahl von 0 bis 9 ausdrucken Und um das zu tun, müsste ich einfach zehn eingeben. Es wird also alles von 0 bis 9 drucken, und es wird nicht zehn enthalten Wenn wir den Code hier ausführen würden, könnten wir sehen, dass wir acht, drei, eins, acht haben eins, acht Sie werden feststellen, dass er nicht zehn ausdrucken wird, sondern alles andere als das tut Wir können auch eine Absicherung vornehmen und eine bestimmte Auswahl ausgeben, auch indem wir das Secrets-Modul verwenden. Nehmen wir nun der Argumentation halber an, dass wir hier eine Liste mit sensiblen Codes haben. Ich werde Codes sagen und in einer Liste Alpha, Beta, Gamma eintragen. Ich möchte per se eine sichere Zufallswahl abrufen. Ich kann „Drucken“ sagen und auf das Secrets-Modul verweisen. Und dann ist die Funktion, die ich verwenden würde, choice, und ich werde Codes eingeben. Also werde ich eine geheime Wahl abrufen . Man könnte sagen oder codieren. Wenn ich das starte, sehe ich, dass ich Alpha habe. Jedes Mal, wenn ich laufe , erhalte ich einen neuen Code, also Gamma, Alpha, Beta. Ordnung. So können Sie also eine zufällige Auswahl aus einer bestimmten Reihenfolge auswählen. Okay. Als Nächstes möchte ich Ihnen zeigen, dass das Secrets-Modul einzigartig ist . So können Sie ein sicheres Hex-Token generieren. Und das wird natürlich 16 Zeichen lang sein. Also lass uns weitermachen und das tun. Jetzt wird der Wert, den Sie eingeben, natürlich in Byte eingerichtet. In unserem Fall wird es also natürlich doppelt so hoch sein. Okay, also lass uns weitermachen und das machen. Wir können also einfach sagen, dass print das Secrets-Modul benutzt, und wir können die Funktion Token, Unterstrich und Hexadezimalzahl verwenden, und wir sagen acht, und das generiert ein sicheres Hex-Token, das 16 Zeichen lang sein wird Lassen Sie uns das ausführen und wir können hier sehen, dass wir BA ED und diese ganze Zahl haben , und das werden 16 Zeichen sein Wenn ich jetzt nur 24 einstelle und sie ausführe, werden natürlich nur acht Zeichen ausgegeben. Denn denken Sie daran, wir setzen die Byte hier ein, und im Grunde wird das Ganze verdoppelt. Wenn ich hier also vier einfüge und es ausführen würde, würde es mir nur eine Ausgabe mit vier Hex-Tokens geben. Das kann sehr hilfreich sein wenn Sie in gewisser Weise Tokens benötigen. So können Sie ein sicheres Hex-Token generieren. So können wir das Secrets-Modul nutzen, richtig. Das ist das Secrets-Modul. Das nächste, was wir uns ansehen werden, ist das NumPi-Modul, und das möchten wir weitermachen und zuerst in unserem Projekt installieren Normalerweise verwenden wir das Numpi-Modul für schnelle Zufallsoperationen, aber mehr als das früh genug 27. Vertiefung in das numpy Modul – [Lab]: In Ordnung, also lass uns weitermachen. Als Nächstes werden wir uns auf das Num Pi-Modul konzentrieren auf das Num Pi-Modul Und das ist auch sehr nützlich für die Arbeit mit Arrays Aber dazu bald mehr. Das erste, was wir tun möchten, ist, zu PYPI überzugehen und zu sehen, wie Pep NumPie Also können wir weitermachen und das kopieren, oder Sie können es tatsächlich in Ihr Terminal und Ihren Visual Studio-Code eingeben Ihr Terminal und Ihren Und was ich jetzt tun werde, ist, dass ich 30 Bug so umschalten werde, dass PysonFLE nur vorerst ausgeführt Wir können diese Ausgabe löschen. Und du willst nur sagen, Pep install num Pi, und du kannst Enter drücken. Okay. Und das wird es nur für uns installieren. Okay. Seien wir einfach geduldig und geben uns einen Moment Zeit, dann können wir das Num Pi-Modul weiter verwenden. Okay, lassen Sie uns einfach etwas Zeit damit verbringen. Okay, damit wir sehen können, dass es installiert wurde . Wir können das klären. Und das brauchen wir nicht mehr. Wechseln wir zum Run-Code und los geht's. Richtig. Nachdem wir das NumPi-Paket installiert haben, können wir jetzt auf die jeweiligen Module zugreifen Ich kann also Import sehen. Num Pi. Gemäß dem Standard ist Num Pi für einen Modulnamen normalerweise ziemlich lang. Und da es ziemlich oft verwendet wird, richten die Leute normalerweise einen Alias in Bezug auf den Modulnamen ein. Sie können also a sagen und dann können wir den Alias als N P definieren. Mit anderen Worten, wo immer wir MP definieren, bedeutet das, dass wir im Grunde das Num Pi-Modul selbst aufrufen Also nur ein kleiner Trick, wenn Sie Aliase mit Ihren Modulen einrichten möchten Aliase mit Ihren Modulen einrichten In diesem Fall ist dies 99% der Fälle immer der Fall, wenn Sie NumPi verwenden Okay. Nun, das Erste, was ich Ihnen zeigen möchte, ist, wie Sie weitermachen und grundlegende Arrays einrichten können Okay. Also sagen wir Print und wir beziehen uns auf NP. Und wir werden Submodule verwenden. NumPi hat also ein Submodul, das Random genannt wird und eine Funktion namens Rand hat Behalte das also im Hinterkopf. Also hier verwenden wir Random als Untermodul. NumPi ist also unser Modul. Random ist unser Submodul und Rand ist unsere Funktion Denken Sie also daran, falls Sie etwas verwirrt sind In dieser Hinsicht gibt es also einen kleinen Unterschied. Und mit der Funktion rand können wir jetzt ein 1-D-Array generieren, und wir müssen nur angeben, wie viele zufällige Gleitkommazahlen wir haben wollen 0-1 und wir müssen nur angeben wie viele zufällige Gleitkommazahlen wir haben wollen 0-1 Also will ich haben. Also, wenn ich das durchführe, müssen wir vielleicht gleich los. Es wird jetzt ein eindimensionales Array ausdrucken , wie wir sehen können, und es wird drei zufällige Fließkommazahlen haben , denn denken Sie daran, Rand wird sich auf die Ausgabe von Floats konzentrieren Also alles mit einer Dezimalzahl und es werden drei zufällige Gleitkommazahlen im Bereich von Null bis Eins sein, also können wir hier 0,16, 0,93, 0,7 sehen , alles liegt zwischen diesem Nehmen wir an, ich möchte ein Array mit drei mal drei erzeugen, nicht nur ein Array, drei mal drei Ich kann einfach Komma und dann drei sagen, und jetzt können wir Code ausführen sagen Da haben wir es, wir haben jetzt ein Drei-mal-Drei-Array. Es sieht sehr ähnlich aus wie das, was man in der Mathematik bekommt, wenn man eine Matrix oder etwas Ähnliches bekommt, in gewisser Weise sehr ähnlich. In diesem Fall geben wir, Sie sehen können, wieder ein Drei-mal-Drei-Array wie Sie sehen können, wieder ein Drei-mal-Drei-Array mit zufälligen Gleitkommazahlen 0-1 Antwort: Das ist es, was wir hier haben. So können Sie Ihre Arrays einrichten. Nun können Sie auch ein Array mit ganzen Zahlen einrichten ein Array mit ganzen Zahlen einrichten Hier richten wir ein Array mit Floats ein. Lass uns weitermachen und das ändern. Ich werde jetzt die Funktion auf rand int ändern. Hier werden wir es einfach schließen und wir werden es einfügen. Wir werden hier drei Werte eingeben, in diesem Fall werden wir einen niedrigen, einen hohen und eine Größe haben . In diesem Fall haben wir Null, was niedrig ist, zehn, was hoch ist, und dann die Größe, wir auf drei setzen werden. Okay. Nun, in diesem Fall hier werden die Werte hier 0-10 sein, ohne Zehn, es wird Null bis Neun sein und wir werden zufällige Ganzzahlen haben, drei zufällige Ganzzahlen, die 0-9 in einer eindimensionalen Anordnung sind 0-9 in einer Wenn ich das ausführen würde, könnten wir sehen, dass Sie Folgendes haben Wir haben ein eindimensionales Array. Die Werte sind 0-10, ohne zehn, und wir haben drei Werte Wenn wir das also noch einmal ausführen würden, können Sie sehen, dass es jetzt weitergeht und das Ergebnis ausgeben Auf diese Weise können Sie ein eindimensionales Array mit drei zufälligen ganzen Zahlen zwischen 0 und 9 erzeugen ein eindimensionales Array drei zufälligen ganzen Zahlen zwischen 0 und 9 Okay. Also der untere Teil ist natürlich die Basis , mit der du anfängst. Der obere Teil ist natürlich die obere Grenze, die Sie ausschließen. Sie befinden sich einfach an der Obergrenze minus eins. Denken Sie also daran, wann immer Sie von Obergrenzen oder ähnlichem hören , werden Sie immer minus eins haben. Es ist also nur ein kleiner raffinierter Trick , den ich Ihnen empfehlen würde, wenn Sie es mit ausschließenden Obergrenzwerten zu tun haben . Immer minus eins Bis dahin wird die wahre Zahl höchstens steigen. Okay, so können Sie mit einfachen Arrays arbeiten , indem Sie das NumPi-Modul verwenden Okay, jetzt möchte ich Ihnen einige weitere nützliche Funktionen zeigen , die Sie verwenden können Als Nächstes möchte ich Ihnen zeigen, wie Sie eine Reihe von Zufallszahlen aus einer Standardnormalverteilung generieren können einer Standardnormalverteilung bei der wir den Mittelwert von Null und die Standardabweichung von Eins haben . Was wir also sagen können, ist Drucken, und Sie können keinen zufälligen Punkt als Rand sehen, und wir werden N haben, weil das für die Normalverteilung gilt. Und hier geben wir ein, wie viele Zufallszahlen wir aus einer Normalverteilung haben wollen. Das kann sehr nützlich sein, wenn wir zum Beispiel Schwankungen an einem Aktienmarkt oder Höhen oder Ähnliches simulieren zum Beispiel Schwankungen an einem Aktienmarkt oder Höhen oder Ähnliches Lass das laufen, los geht's. Sie können jetzt sehen, dass wir drei Zufallszahlen aus einer Normalverteilung generiert haben . Okay. Also haben wir dieses Setup. Als Nächstes möchte ich Ihnen zeigen, was Sie tun können , wenn Sie zufällige Elemente oder Artikel mit oder ohne Ersatz auswählen möchten zufällige Elemente oder Artikel mit oder ohne Ersatz auswählen . Okay. Nun, was ich damit meine , ist, dass der Ersatz , ob Sie Duplikate haben oder ob Sie keine Duplikate haben Es ist dem, was ich zuvor mit der Punktmusterfunktion und der Punktauswahlfunktion erklärt habe, sehr ähnlich der Punktmusterfunktion und , wo Sie beispielsweise K gleich zwei hinzufügen , sehr ähnlich was wir zuvor mit dem Zufallsmodul hatten, aber so werden Sie es auf das Num-Pi-Modul selbst anwenden . Das werden wir tun Wir werden zuerst eine Liste definieren. Diese Liste hier wird, lassen Sie uns weitermachen und sie bereinigen. Wir werden eine Liste haben, und wir werden sagen, Obst ist gleich und wir können sagen Obst ist gleich und wir können sagen ein Paar Apfeltrauben, Orangen Wir haben eine Liste mit Früchten, machen weiter und definieren eine Liste, und dann können wir print und Np dot random als Untermodul sagen , und wir werden Punktwahl sagen Diesmal verwenden wir also Choice und fügen drei Optionen hinzu Nehmen wir nun an, ich möchte zwei einzigartige Elemente aus dieser Liste auswählen. Wir werden zuerst definieren, aus welcher Liste. In diesem Fall werden es also Früchte sein. Dann werden es zwei sein, und dann wollen wir sagen, dass Ersetzen gleich Falsch Auf diese Weise können wir mit diesem Code im Wesentlichen zwei eindeutige Elemente auswählen, und wenn wir sagen, dass Ersetzen gleich Falsch ist , wir sicher, dass es keine Duplikate gibt Mit anderen Worten, wenn wir zwei Artikel aus dieser Fruchtliste auswählen , möchten wir nicht zweimal Apfel auswählen wie Apfel und Apfel oder Traube und Traube oder Orange und Orange oder Birne und Birne Lassen Sie mich Ihnen das zeigen. Replace hilft, die Duplizierung zu verhindern. Lassen Sie uns weitermachen und den Code ausführen. Wir haben Apfelbirne, Orangentraube, Apfelorange, Apfeltraube, Orangentraube, Orangenbirne. Sie werden sehen, dass es keine Duplikate dieser Art geben wird keine Duplikate dieser Art geben Aber wenn ich replace auf true setzen würde, würde das Duplikate zulassen Wenn ich also sage, dass replace gleich true ist, speichere das und führe Orange Apple, Orange Papa. Da haben wir's. Jetzt haben wir ein Duplikat. So können wir jetzt doppelte Werte haben , die ausgewählt werden. Es können also zwei Werte ausgewählt werden, die identisch sind. Dann haben Sie replace equals true. Okay, so können wir das hinzufügen. Okay, sehr ähnlich, wie ich schon sagte, dem, was wir vorher mit dem Zufallsmodul hatten . In Ordnung. Also haben wir das. Perfekt. Okay, lassen Sie uns weitermachen und sehen , wo wir noch weiter gehen können. Nehmen wir an, Sie wollen der Argumentation halber eine Absicherung vornehmen und eine Reihe von Floats mit Tief und Hoch zurückgeben von Floats mit Tief und Hoch Okay? Also was Sie tun können, ist weitermachen und Drucken sagen. Kein P-Punkt zufällig. Und du willst die Punktuniform sagen. Denken Sie also daran, dass Sie es mit der Punktgleichheitsfunktion mit Fließkommazahlen zu tun haben werden, sodass die Ausgabe in Gleitkommazahlen erfolgt. Und wir werden hier drei Werte berücksichtigen . Also werden wir zuerst einen hohen, einen niedrigen Wert und eine Größe haben. Also zuerst das Hoch, wir sagen eins bis zehn. Und dann wollen wir fünf zufällige Floats haben , also können wir fünf sagen Okay. Also lass uns weitermachen und das machen. Okay. Da haben wir's. Wir werden sehen, dass wir eins, zwei, drei, vier, fünf haben , es wird zwischen, wie wir hier sehen können, dem Tief und dem Hoch sein, also eins bis zehn, denk dran, es wird niemals zehn sein. Es wird nicht um zehn sein. Wenn wir das ausführen, können wir sehen, dass es auf keinen Fall zehn sein wird. Das können wir tun, wenn wir wieder ein Array mit Floats in High und Low zurückgeben wollen wieder ein Array mit Floats in High und Low Ordnung. Okay, perfekt. Also, wir haben es hier, Sie können hier sehen, dass der höchste Wert, bis zu dem wir sehen, 9,74 ist und sogar bis zu 2,29, aber überhaupt nicht über zehn geht Nehmen wir nun an, wir wollen ein Array normalverteilter Zahlen zurückgeben normalverteilter Zahlen Also werden wir etwas verwenden, das als normale Funktion bekannt ist. Was wir also tun können, ist MP Dot Random Dot Normal zu sagen. Und wir können es einfach schließen. Wir nehmen drei Werte. Also haben wir Null, zum Beispiel Eins, und wir können fünf sagen. Nun, der erste Wert hier wird für MU sein. Dann haben wir Sigma und dann haben wir Größe Und wir werden fünf dieser normalverteilten Zahlen in einem Array zurückgeben dieser normalverteilten Zahlen in einem Array Und da können wir sehen , dass wir diese Ausgabe entsprechend haben , oder? Perfekt. Und so können wir weitermachen und auch die normale Funktion einrichten. In Ordnung, da haben wir es also. Es gibt die Art und Weise, wie wir alle drei Module nutzen können Und ich wollte Ihnen nur einen kleinen Überblick darüber geben , wie Sie sie alle und einige der beliebtesten Funktionen nutzen können. Nun, ich weiß, dass einige von ihnen vielleicht ein bisschen weit draußen waren und etwas außerhalb des Anwendungsbereichs lagen. Ein Teil davon befasst sich, wie ich bereits erwähnt habe, ein bisschen Statistik, aber es ist wichtig, sie zumindest zu kennen und nur ein bisschen Kontext zu haben, um nicht zu sagen, dass Sie sie jemals verwenden werden, aber es ist einfach gut, etwas Hintergrundwissen zu haben, damit Sie wissen, dass sie existieren, und Sie sind nicht darauf beschränkt, nur eine oder zwei verfügbare Funktionen zu verwenden . Wie dem auch sei, das ist auf Num Pi, was die Zufallsfunktionen von Num Pi und dergleichen angeht . Und ja, damit ist dieses dreiteilige praktische Laborübungsset abgeschlossen. 28. Dekorateure: Hallo zusammen und willkommen zur nächsten Lektion, die sich auf Dekorateure konzentrieren wird Was ist also ein Dekorateur? Das ist wahrscheinlich das, was dir gerade durch den Kopf geht. Einfach ausgedrückt ist ein Decorator in PySon eine spezielle Funktion oder Klasse, die eine andere Funktion oder Methode verbessert, ohne den ursprünglichen Code zu ändern Lassen Sie mich Ihnen also eine sehr einfache Analogie geben. Nehmen wir an, Sie bereiten sich auf Weihnachten vor und möchten festlich und dekorativ werden Das erste, was Sie tun, ist, sich einen Weihnachtsbaum zu besorgen . Das ist also Teil der Dekoration. Was die Leute jedoch tun, ist , den Baum zu schmücken, also gehen sie noch einen Schritt weiter und legen viele schöne Dinge auf den Baum. Versuchen Sie also, einen Dekorateur in diesem wörtlichen Sinne seiner Analogie zu sehen diesem wörtlichen Sinne seiner Analogie zu Sie könnten den Weihnachtsbaum als Funktion und die zusätzlichen Dekorateure, die Sie anbringen, als besondere Funktion behandeln zusätzlichen Dekorateure, die Sie anbringen als Das ist nur eine Möglichkeit , weiterzumachen und zu versuchen, wie kann ich sagen, es ins rechte Licht zu rücken Nun, in PySon kann ein Decorator, wie ich bereits erwähnt habe , entweder eine spezielle Funktion oder eine Klasse sein Der gebräuchlichste Dekorator ist jedoch natürlich der Funktionsdekorator 99,9% der Fälle, in denen Sie mit Pyson in einer beliebigen Umgebung oder einem Ökosystem arbeiten , werden Sie Dekorateure aus der Perspektive sehen, eine Funktion zu der Perspektive Nun, eine weitere Sache, die ich in Bezug auf Dekorateure erwähnen möchte , ist, dass es Sie können also für Ihre Funktionen und Klassenmethoden als Ganzes hinzufügen oder ändern Ihre Funktionen und Klassenmethoden . In Ordnung, Leute. Also das war's für den theoretischen Überblick. Und in der nächsten Lektion werden wir an einigen Übungen arbeiten, um unser Wissen über Dekorateure in Pyson zu festigen 29. So gestaltest du unseren ersten Dekorateur – [Lab]: Hallo zusammen. Und willkommen zur nächsten praktischen Laborübung, die sich auf die Zusammenarbeit mit Dekorateuren in PySON konzentrieren wird Zusammenarbeit mit Dekorateuren in PySON Also werden wir es zunächst sehr einfach halten und dann können wir mit ein paar Beispielen darauf aufbauen. Also lass uns anfangen. Okay, das Erste, was wir wissen müssen, ist, wie wir eine einfache Funktion in PySon definieren und dann darauf aufbauen können Richtig. Also das Erste , was ich tun werde, ist eine Funktion zu definieren. Ich werde Def sagen und ich werde hier sagen, unterstreichen Und ich lasse die Klammern leer und ich werde im Curlon nichts durchgehen Und was ich dann hier machen werde , ist gedruckt zu sagen, und es war in der Print-Erklärung hier, ich werde Hallo Welt sagen Perfekt. Jetzt möchte ich diese Funktion aufrufen und sagen, sagen wir, unterstreichen, Hallo. Da haben wir's. Im Wesentlichen werden wir diese Funktion definieren. Es wird dann print hello world ausführen , sobald es aufgerufen wird. Hier rufen wir diese spezielle Funktion auf und sie wird alles ausführen, was in dieser Funktion selbst enthalten ist. Lassen Sie uns weitermachen und den Code ausführen und wir können sehen, dass er dort Hello World ausgibt. Das ist die einfache Art , wie Sie eine Funktion nutzen können . Großartig. Perfekt. Jetzt, wo wir das unter Dach und Fach haben, wollen wir weitermachen und darauf aufbauen Wir haben also diese Funktion, und nehmen wir an, wir wollen eine Absicherung vornehmen und die Ergebnisse, die wir mit dieser Funktion erzielen werden, modifizieren wir mit dieser Funktion erzielen werden, Okay, nehmen wir an, wir wollen das in einem Dekorateur verpacken und wir wollen mehr Output haben, nicht nur Hello World Wir wollen ein bisschen mehr als das haben. Also werde ich weitermachen und einen Dekorateur definieren Nun, ein Dekorateur kann natürlich, wie ich bereits erwähnt habe, entweder eine Funktion oder eine Klasse sein, jetzt eine spezielle Funktionsklasse, um genauer zu sein Ich werde hier einfach ein bisschen rauszoomen und wir werden jetzt eine spezielle Funktion definieren Ich werde Ef und diese Funktion hier sagen, ich werde das M Underscore Decorator nennen Okay. Und dann werden wir Funk benutzen. Okay. Nun, du kannst Funk hier als Parameter behandeln, okay, für eine andere Funktion die wir jetzt aufnehmen werden, wie kann ich sagen absorbieren? Nun, diese Funktion, die sie absorbiert , wird übernommen, wenn wir den Decorator zusätzlich zur Funktion hinzufügen den Decorator zusätzlich zur Funktion Nehmen wir an, ich möchte weitermachen und diese Funktion hier ändern Was ich tun müsste, ist at decorator hinzuzufügen und dieser at decorator wird hier auf diese Funktion namens My decorator verweisen Mein Underscore Decorator und jetzt Funk hier sind der Parameter, und das wird jetzt diese spezielle Funktion übernehmen , die Weil wir hier Funk haben und weil es weiß, dass es diese Funktion sein wird, weil wir den Decorator anhängen Mit diesem Decorator wird er diese Funktion übernehmen und sie hier automatisch weiterleiten , weil dieser Dekorator , den wir hier hinzugefügt haben, das AT-Symbol war, wird er sie hier weiterleiten Das ist jetzt im Wesentlichen die Decorator-Funktion und das ist unsere ursprüngliche Wir können genau dort einen Doppelpunkt hinzufügen. Dann müssen wir als Nächstes wickeln. Wir müssen diese ursprüngliche Funktion in unseren Dekorateur integrieren Man könnte sagen, in unserer neuen Funktion. Du müsstest Tod sagen. Umbruch, Klammern öffnen und schließen und den Doppelpunkt schließen Dies wird die neue Funktion sein , die jetzt die ursprüngliche Funktion umschließt Als Nächstes möchten wir durchführen einen einfachen Test durchführen und hier einfach etwas Code ausführen. Also führe ich einfach eine einfache Print-Anweisung aus, die besagt, dass die Funktion im Begriff ist, ausgeführt zu werden. Okay? Also diese Anweisung wird ausgeführt, bevor wir diese Funktion hier ausführen, die durch Funk weitergeleitet wurde. Um diese Funktion aufzurufen, müssten wir also weitermachen und Funk sagen, oder? Und das wird dann diese Funktion hier ausführen, die Hallo Welt sagen wird. Nachdem das ausgeführt wurde, können wir hier eine weitere Print-Anweisung einrichten, die besagt, dass die Funktion fertig ausgeführt wurde. Das läuft also, nachdem die Funktion aufgerufen wurde. Das Letzte, was wir jetzt tun müssen, ist, diese Ausgabe über die neue verpackte Funktion zurückzugeben. Um das zu tun, können wir hier Indent schreiben und Return Wrapper sagen, und das wird alles entsprechend für uns ausführen alles entsprechend für Okay. So können wir einfach einen Dekorateur einrichten Okay? Okay, lassen Sie mich weitermachen und Ihnen zeigen, was jetzt passieren wird Was also passieren wird, ist wie folgt. Das Erste, was passieren wird, ist, dass diese Print-Anweisung ausgeführt wird. Dann wird der Dekorateur diese ursprüngliche Funktion übernehmen, die wir hatten, und wie Sie sehen können, modifiziert er sie Es ändert nichts , was darin definiert wurde Es wird ihm hier den Parameter übergeben, und dann werden wir ihn innerhalb des Wrappers aufrufen, und dann werden wir eine Output-Anweisung drucken, und dann werden wir eine Output-Anweisung drucken besagt, dass die Ausführung von aches beendet ist, und wir geben den Wrapper zurück, um sicherzustellen, dass er angepasst wurde Wenn ich jetzt meinen Code ausführen würde, kann ich jetzt sehen, dass meine Ausgabe kann ich jetzt sehen, dass meine Ausgabe besagt, dass die Funktion bald ausgeführt wird, hallo Welt, und die Funktion ist fertig ausgeführt. Und Sie können sehen , dass alles so ausgeführt wurde , wie es hätte sein sollen. Okay. So können wir weitermachen und alles so einrichten, dass es so funktioniert, wie es sollte. Richtig, lassen Sie mich Ihnen etwas mehr Details geben , damit Sie alles perfekt verstehen. Also hier haben wir M Underscore Decorator Funk. Also nochmal, Funk wird die Funktion sein, die dekoriert wird. In diesem Fall heißt es Hallo sagen, was vom Dekorateur at my underscore dekoriert wird at my underscore dekoriert So dekoriert man also eine Funktion. Sie geben das AT-Symbol ein und dann folgt die dekorierte Funktion, sollte ich sagen? Okay. Und mein Dekorateur, Frank hier, wird die Funktion erhalten und sie mit zusätzlichem Code versehen, was mit diesem Wrapper der Fall ist Also wird er hier diese Ausgabeanweisung hinzufügen hier diese Ausgabeanweisung die besagt , dass die Funktion bald ausgeführt wird, und diese hier, die besagt, dass die Funktion fertig ausgeführt wurde Also haben wir diesen Wrapper hier, okay? Und das ist eine neue Funktion in unserem Dekorateur. Und wie Sie sehen können, fügt es zusätzliches Verhalten hinzu, nämlich genau hier und genau hier. Also vorher und beim Ausführen der ursprünglichen, von Funk definierten Funktion. Okay. Also, der Wrapper hier wird Funk Inside nennen Die ursprüngliche Funktion wird also immer noch laufen. Dann haben wir Return Wrapper. Also anstatt Funk selbst zurückzugeben, okay, werden wir Wrapper zurückgeben, Also, wann immer wir Hallo sagen, rufen wir eigentlich die Return an Wir werden tatsächlich Wrapper anrufen. Das werden wir im Wesentlichen tun. Ordnung. Da haben wir es. Es gibt die einfachste Möglichkeit, einen Decorator in Python zu integrieren Wir werden noch an ein paar praktischen Übungen arbeiten, aber das sind die Grundlagen, um Ihren allerersten Dekorateur einzurichten und wie Sie ihn auf ein bestimmtes Konzept anwenden können Richtig, wir können einfach weitermachen und es vorerst herausnehmen und dann machen wir einen Moment weiter 30. Arbeiten mit Dekorateur:innen – [Lab]: Ordnung. Also lasst uns weitermachen und an ein paar praktischen Übungen arbeiten. Als Nächstes wollen wir an einem Programm arbeiten, das die Funktionsausgabe in Großbuchstaben umwandelt. Also lasst uns weitermachen und das anwenden. Okay, das Erste ist also, lassen Sie uns weitermachen und eine einfache Funktion einrichten. Also sagen wir def, breed und dann sagen wir return, und ich sage da, sagen wir, guten Morgen Ganz einfach. Dann sage ich Drucken. Grüßen. Und wenn ich diesen Code ausführe, heißt es Guten Morgen Da haben wir es also ganz einfach. In diesem Fall habe ich also die Print-Anweisung aus der Funktion entfernt. Ich habe das nach draußen verschoben und gebe nur den angegebenen Text zurück, was Guten Morgen heißt, und dann rufe ich die Funktion hier entsprechend auf. Sie war in der Print-Anweisung enthalten, um sie auszuführen . Wister-Wert, der in der Funktion zurückgegeben wurde Denken Sie jetzt daran, was unser Anwendungsfall ist. Wir wollen die Funktionsausgabe in Großbuchstaben umwandeln. Wenn wir hier diese Funktion drucken und ausführen, möchten wir, dass sie in Großbuchstaben geschrieben wird Lassen Sie uns weitermachen und das umsetzen. Dafür bräuchten wir also einen Decorator in Großbuchstaben. Das wäre ein guter Anwendungsfall, sagen wir hier Tod und wir können Decorator mit Unterstrichen in Großbuchstaben sagen Dann werden wir Funk durchgehen. Nun, um diese Funktion zu übernehmen, müssten wir den Decorator hinzufügen, der bei sein wird, und das wird hier ein Dekorator für Unterstriche in Großbuchstaben sein , und dann wird er diese Funktion so weiterleiten , wie er es Dann müssen wir den IO-Wrapper definieren, wir können Def Wrapper sagen. Dann wollen wir die ursprüngliche Funktion aufrufen und diese einer Variablen zuweisen Ich werde hier sagen, dass Ergebnis gleich ist, und das wird Funk sein Ich speichere diese spezielle Funktion, die hier als Funk übergeben wird und ich werde sie in dieser Variablen namens result speichern dieser Variablen namens result Hier rufe ich die ursprüngliche Funktion auf. Als Nächstes möchte ich die Ausgabe in Großbuchstaben umwandeln. Was auch immer das Ergebnis von Funk sein mag, was im Grunde genommen Guten Morgen ist, ich möchte dieses Ergebnis in Großbuchstaben umwandeln Ich kann also sagen, das Ergebnis mit dem oberen Punkt zurückgeben. Also werde ich hier diese spezielle Methode anwenden, die Methode für Großbuchstaben, und das wird die Ausgabe in Großbuchstaben umwandeln. Und dann muss ich jetzt nur noch den Wrapper zurückgeben, um die neue Funktion zurückzugeben Ich kann hier einfach sagen, Return-Wrapper. Und da haben wir es. Jetzt können wir uns absichern und den Code ausführen. Lassen Sie uns Zach machen und wir können sehen, dass die Ausgabe jetzt Guten Morgen anzeigt und das ist tatsächlich in Großbuchstaben Wir können sehen, dass das jetzt viel sauberer und übersichtlicher ist , nachdem wir diesen Dekorateur hinzugefügt haben Richtig. Auf diese Weise können wir also ein einfaches Programm erstellen , das die Funktionsausgabe in die Groß-/Kleinschreibung umwandelt. So können wir sehen, wo es nützlich ist. Es formatiert also automatisch Text, ohne die ursprüngliche Funktion selbst zu ändern. Sie können also sehen, dass diese Funktion überhaupt nicht geändert wurde. Und wie wir sehen können, kann dies auch sehr nützlich sein , wenn wir Titel, Nachrichten oder jede Art von Benutzereingabe auf eine Art Standardmethode anzeigen, sollte ich sagen? Okay. So können wir also weitermachen und das tun. Rand. Das ist ein Beispiel , dem wir uns absichern und uns daran orientieren können. In Ordnung. Lassen Sie uns weitermachen und uns ein anderes Beispiel ansehen. Lassen Sie uns nun weitermachen und ein anderes Programm erstellen. In diesem Programm wird sich der Anwendungsfall darauf konzentrieren , sicherzustellen, dass unsere Passwörter mindestens acht Zeichen lang sind. Definieren wir nun eine einfache Funktion, um loszulegen. Ich sage D, generiere ein Unterstrich-Passwort als meine grundlegende Funktion am Doppelpunkt, und hier sage ich Return, ABC Sehr einfach. Das würde also zunächst als sehr schwaches Passwort angesehen werden. Es ist nicht nur generisch, weil es ABC ist, sondern es ist auch zu niedrig , was die Zeichen angeht. Okay. Dann sagen wir „Drucken und wir drucken einfach diese speziellen Funktionen aus. Ich sage „Passwort generieren“, Passwort unterstreichen“ und „Klammern öffnen“ und „schließen Und wenn wir das ausführen, wird ABC ausgegeben, denn genau das geben wir in dieser Funktion zurück . Richtig. So können wir weitermachen und diese Funktion starten. Lassen Sie uns nun weitermachen und das Ganze etwas komplexer machen. Um nun zu überprüfen, ob ein Passwort zu scharf ist, und um sicherzustellen, dass das analysierte Passwort mindestens acht Zeichen lang ist, müssen wir einige Module verwenden Also werden wir das Zufallsmodul und das String-Modul verwenden Zufallsmodul und das String-Modul Bis zu diesem Zeitpunkt sollte es sich also ziemlich gut mit Modulen auskennen und sich damit auskennen Lassen Sie uns also weitermachen und damit anfangen. Ich würde sagen, zufällig importieren, und dann können wir Zeichenfolge importieren sagen. Reich. Okay. Nun können wir zunächst unsere Decorator-Funktion definieren Also sage ich taubes, starkes Unterstrich-Passwort. Ich werde Funk durchgehen. Und bevor wir diese Funktion tatsächlich nutzen können, müssen wir unseren Decorator hinzufügen und at sagen, und es wird ein starkes Unterstrich-Passwort sein Einfach so. Reich. Als Nächstes wollen wir unseren Wrapper definieren Also sagen wir Deaf Wrapper und wir können es einfach so anpassen Dann wollen wir unsere ursprüngliche Funktion aufrufen, die genau hier ist, Passwort generieren Um das zu tun, können wir einfach sagen, dass Passwort gleich Funk ist, und wir werden es der Variablen password zuweisen Was auch immer im Ergebnis hier zurückgegeben wird, ist ABC, das wird auf das Passwort gesetzt, das derzeit ABC ist Dann wollen wir einen WLLoop einrichten , um zu überprüfen, ob das Passwort zu kurz ist, dann wollen wir eine Aktion ausführen Was wir hier also tun können, ist, während die Länge anzugeben. Also werden wir die Funktion ng verwenden , um die Länge des Passworts zu überprüfen und ob es weniger als acht ist. Ich möchte mir mein Passwort schnappen. Und dann möchte ich es jedes Mal um eine zufällige Ziffer erhöhen es jedes Mal um eine zufällige Ziffer Ich werde das Zufallsmodul verwenden und Punktwahl sagen. Denken Sie daran, dass Punktwahl eins ist und wir hier Zeichenkettenpunktzahlen sagen werden. Nun, die Punktziffern hier werden im Grunde genommen eine Absicherung bilden und sie werden diesen Wert erreichen, sollte ich sagen, dass Zeichenkettenpunktziffern in Zeichenketten 0-9 sein werden Punktziffern sind natürlich die Ziffern Null bis Neun in einer ganzen Zeichenfolge Und diese Funktion zur zufälligen Punktwahl hier wählt eine zufällige Ziffer 0-9 im Zeichenkettenformat aus und fügt sie dem Passwort hinzu Wir werden ABC haben und dann können wir ABC zwei haben. Das wird inkrementiert und wieder ausgeführt. Das wird ABC 7 sein. Das wird inkrementiert und erneut ausgeführt und es wird AB 274 sein , und es wird eine weitere Ziffer hinzugefügt Das nächste, was wir tun wollen, ist, wenn das passiert ist und wir hier die Obergrenze erreicht Wenn es so ist, wie kann ich sagen, mehr als acht. Es ist zwar nicht mehr weniger als acht, dann wird es die While-Schleife durchbrechen aber dann wird es die While-Schleife durchbrechen und dann können wir sagen Passwort zurückgeben und dann wird es das endgültige Passwort zurückgeben, und danach wollen wir diese modifizierte Funktion zurückgeben, die wir haben. Um das zu tun, müssten wir am Ende sagen: Return-Wrapper Okay, also haben wir jetzt alles definiert Also, was wir jetzt tun werden, ist den Code auszuführen. Und wie wir jetzt sehen können, haben wir diese Ausgabe und da steht ABC 66507 Wenn wir das zählen können, haben wir vier, und wir haben vier. Das ist also natürlich acht Zeichen lang. Unser Passwort ist jetzt also ein bisschen sicherer. Es ist nicht absolut sicher, aber es ist viel besser als zuvor. Und wie Sie dort sehen können, haben wir die Funktionalität hinzugefügt , um unsere Funktion so zu modifizieren, dass wir sicherstellen können, dass unsere Passwörter mindestens acht Zeichen lang sind und gut funktionieren, wie sie sein sollten. Wir können sehen, dass wir all das in diese Funktion integriert haben. Wenn ich also nur ein bisschen weiter herauszoomen würde , damit Sie das Gesamtergebnis, das wir hier haben, und die Ausgabe, die wir haben, sehen können Gesamtergebnis, das wir . Ordnung. Das war's für die Übungen für Dekorateure Hoffentlich werden Sie ein bisschen selbstbewusster damit und dass Sie es gut integrieren Wir haben ein paar Beispiele durchgesehen. Wir können das entfernen und da haben wir es, die Dekorateure in Bison 31. Datei-I/O: Hallo zusammen und willkommen zur nächsten Lektion, die sich auf Datei-I/O konzentrieren wird. Lassen Sie uns also anfangen. Sie fragen sich also wahrscheinlich, wofür das IO in der Datei IO steht? IO steht also einfach für Eingabe und Ausgabe. Daher der IO-Teil. Datei-IO bezieht sich also auf den Prozess des Lesens und Schreibens in Dateien. Und es ermöglicht Ihrem Programm als Dateien auf Ihrem Computer zu arbeiten, und das ermöglicht es uns, diese Dateien zu öffnen, zu schreiben, um sie zu lesen, und diese Dateien dann nach Bedarf zu schließen. Einfach ausgedrückt, ermöglicht es Ihnen, mit Dateien zu arbeiten, z. B. Texte aus einer Datei zu lesen oder Daten in einer Datei zu speichern. Okay, ich werde Ihnen ein paar Codefragmente einiger der beliebtesten Aktionen bei der Dateiverwaltung in PySon zeigen einiger der beliebtesten Aktionen bei der Dateiverwaltung in Nehmen wir an, wir wollen eine Datei öffnen. Nehmen wir an, wir haben eine Datei namens Person Dot TXT. Wir können also eine Variable definieren, zum Beispiel Personendatei aufrufen, und dann sagen wir gleich, und wir öffnen die TXT-Datei mit dem Punkt für die Person und verknüpfen sie mit dem Variablennamen der Personendatei Nehmen wir dann an, wir haben diese Datei geöffnet und wollen nun aus dieser Datei lesen Was wir also tun können, ist eine weitere Variable namens Text zu definieren und diese dann der Personendatei zuzuordnen. Wie kann ich sagen, dass sie Zugriff auf die Person Dot TXT-Datei hat, da wir sie zuvor mit der Personendatei zuzuordnen. Wie kann ich sagen, dass sie Zugriff auf die Person Dot TXT-Datei hat , da dem Befehl Datei öffnen geöffnet haben. Was wir jetzt tun werden, ist Red-Methode zu verwenden, um die ersten hundert Zeichen der Person Dot TXT-Datei zu lesen , und wir werden diese ersten hundert Zeichen im Ausgabefenster ausgeben, indem wir Text drucken sagen. Machen Sie sich keine Sorgen, falls das noch keinen Sinn ergibt, wir werden es üben, aber ich möchte Ihnen nur einen Überblick geben, damit Sie die verwendeten Methoden und dergleichen besser verstehen können . Okay, nehmen wir an, wir wollen unsere eigene Datei erstellen. Der Prozess dazu wäre natürlich, eine A-Variable zu definieren, sodass wir sagen können, dass car-Datei gleich open ist, und dann möchten Sie car dot TXT angeben, und dann möchten Sie einen anderen Wert angeben nämlich W. Das bedeutet also schreiben Und das kann auch als eine Form des Erschaffens interpretiert werden. Schreiben Sie also eine Datei, erstellen Sie eine Datei, und das muss Car Dot TXT sein. Nehmen wir an, wir haben diese Datei erstellt, und jetzt wollen wir tatsächlich in die Datei schreiben. Dann würden wir also die Schreibmethode verwenden. Wir würden uns also auf die Variable beziehen , die wir zuvor für die Erstellung der Datei definiert haben, die Car-Datei. Dann sagen wir, schreibe nicht, und da können wir zum Beispiel sagen, dass meine Lieblingsautos ein Ford und ein Hessla sind , und das wird in die Datei geschrieben Und eine sehr wichtige Sache, die Sie beachten sollten, ist Sie jedes Mal, wenn Sie in PySon in eine Datei schreiben , sicherstellen müssen dass Sie sie schließen, nachdem Sie in eine Datei geschrieben haben Okay? Also musst du am Ende Autodatei Punkt schließen sagen, zumindest in diesem Beispiel. Punkt schließen ist also die Methode, die Sie benötigen. Nun, es gibt etwas in PySon, das sogenannte Kontext-Manager, wo das automatisch für Sie erledigt wird, aber das ist ein Thema, das wir später im Kurs behandeln werden später im Kurs behandeln Aber vorerst müssen wir manuell Punkt schließen sagen. Nehmen wir nun an, wir möchten zu dieser Datei etwas hinzufügen. Wir können nicht noch einmal schreiben sagen , weil dadurch alles, was in der Datei enthalten war, überschrieben wird . Wir wollen etwas zu der Datei hinzufügen, und das wird das nächste Problem sein, das wir lösen müssen, und um es zu lösen, können wir es lösen, indem wir es an eine Datei anhängen Wir werden die Datei im Wesentlichen öffnen, wie Sie hier sehen können, wir definieren unsere Variable Wir werden die Funktion „Öffnen“ verwenden. Dann öffnen wir die Set-Datei, die als erstes cart txt lautet, du könntest Parameter sagen und dann Komma und dann A. Das wird für Append stehen Wir werden an diese Datei anhängen. Wir öffnen die Set-Datei , damit wir sie anhängen können, damit wir etwas hinzufügen können Dann kannst du weitermachen und Carfle Dot Right sagen. Dann füge ich, wie du siehst, ein Leerzeichen hinzu und sage, ich mag Honda auch Das wird zu dieser speziellen Datei mit dem Code hinzugefügt speziellen Datei mit dem , den ich Ihnen zuvor gezeigt habe, wo wir zu der Datei weiterleiten . schreiben oder wenn wir etwas anhängen oder irgendeine Aktion ausführen, müssen wir am Ende sagen, dass die Datei geschlossen Denken Sie also daran, die Betonung auf der Methode „Punkt schließen“ zu legen. Nehmen wir nun an, wir haben eine überschüssige Menge an Dateien und müssen damit beginnen, sie zu löschen. Dazu können Sie nun das mit Python gelieferte Betriebssystemmodul verwenden. Und das OS-Modul hat eine Funktion, die als Entfernen bekannt ist, und alles, was Sie tun müssen, ist, sie in der Datei zu platzieren , die Sie löschen möchten. In diesem Fall können wir also beispielsweise die Kartenpunkt-TXT-Datei löschen, indem wir sie innerhalb der Entfernen-Funktion einfach in Anführungszeichen einfügen innerhalb der Entfernen-Funktion einfach in Anführungszeichen So einfach ist das also, so können Sie auch eine Datei löschen Ordnung, Leute. Das ist es in Bezug auf den theoretischen Überblick über Betrachtung der Dateieingabe und -ausgabe in PySON In der nächsten Lektion werden wir uns auf die praktische Laborübung konzentrieren und daran arbeiten, die Arbeit mit Dateien in PySon zu üben Ordnung, Leute. Das war's für den theoretischen Überblick. 32. Dateioperationen ausführen – [Lab]: Alle zusammen und willkommen zur nächsten praktischen Laborübung, die sich auf Datei-IO und PySON konzentrieren wird Lasst uns anfangen. Nun, das Erste, was ich möchte, ist, hier auf Entdeckungsreise zu gehen. In unserem Verzeichnis möchten wir eine einfache Person-Punkt-TXT-Datei erstellen . Ich werde hierher navigieren und neue Datei sagen, ich werde diese Person Punkt TXT nennen. Hier ist meine TXT-Datei. Was ich tun kann, ist, dass ich tatsächlich einige Daten hinzufügen kann. Ich mache weiter und sage einfach John, Smith, und ich gebe ein Geburtsdatum ein, zum Beispiel 12 oh 2-1990 Zwei. Nur ein paar Informationen da. Es gibt zumindest persönliche Daten als TXT. Gehen wir jetzt zu Main Dot Pie und was wir tun wollen , ist, dass wir Person Dot TXT öffnen wollen. Wir können Personendatei sagen, das wird zum Beispiel eine Variable sein , und wir werden die Funktion Öffnen verwenden, um diese Datei zu öffnen. Der Name dieser Datei ist also Person Dot TXT. Also sage ich Person Punkt TXT, und das öffnet die Datei für uns. Jetzt, wo die Datei geöffnet ist, müssen wir theoretisch eine Aktion ausführen Nehmen wir an, wir möchten aus dieser Datei lesen. Wir können dann eine Variable namens Text definieren, und wir wollen auf eine Personendatei verweisen , weil laut dieser Variablen der Wert hier die geöffnete Datei sein wird . Und was wollen wir mit dieser Datei machen , jetzt wo sie geöffnet ist? Wir wollen daraus lesen, also können wir die Lesemethode verwenden und dann möchten Sie angeben, wie viele Zeichen der Datei Sie lesen möchten. Ich mache es immer gerne ein bisschen hoch, also sage ich 100 und das ist im Grunde alles in dieser Datei, sodass Sie sehen können, dass es einfach darum geht, alles aufzunehmen. Und da das, was in Zeichen gelesen wurde , jetzt mit ext verknüpft und darin gespeichert wird, können wir Text drucken, um die Ausgabe zu sehen. Also werde ich Text drucken sagen. Wenn ich jetzt den Code ausführe , werden die ersten 100 Zeichen aus dieser Datei ausgegeben . Nehmen wir an, ich ändere das Arc-Konto hier auf nur, sagen wir, fünf Zeichen und führe das aus. Ich werde nur John ausdrucken. Natürlich können wir sehen, dass da ein Leerzeichen ist , wenn ich hervorhebe. Wenn ich zum Beispiel 12 sage und renne, würde da John Smiths Strich stehen. Es kommt nur bis zu diesem Punkt. Sie können sehen, dass Sie die Anzahl der Zeichen , die Sie aus Ihrem Programm selbst lesen möchten, begrenzen können die Anzahl der Zeichen , die Sie aus Ihrem Programm selbst lesen möchten . Okay, perfekt. So können wir weitermachen und das suchen Das ist also die grundlegende Art, eine Datei zu öffnen, die bereits existiert, und wie Sie aus einer Datei selbst lesen können Wir haben es also gemeistert, eine bestehende Datei zu öffnen und daraus zu lesen Nehmen wir nun an, wir wollen noch einen Schritt weiter gehen und eine Datei erstellen und in sie schreiben Was ich jetzt tun werde, ist, dass wir diesen Code entfernen können, und ich möchte eine Datei erstellen. Dazu sage ich car file, da meine Variable gleich ist, und ich sage open, ich sage car dot TXT und dann in das Komma und ich sage W. Weil ich eine Datei erstellen möchte, sage ich W. Nun, bevor diese Datei tatsächlich existiert und erstellt wird, müssen wir in sie schreiben, also müssen wir etwas schreiben, aber das ist der erste Schritt theoretisch gesehen erstellen Sie Ihre Datei. Als Nächstes müssen wir tatsächlich in diese Datei schreiben, und dann wird sie erstellt und sie wird hier in unserem Verzeichnis hier in unserem Basisverzeichnis erscheinen hier in unserem Verzeichnis hier in unserem Basisverzeichnis Was Sie tun werden, ist Auto, Datei, Hund zu sagen . Genau hier in Klammern können wir sagen, dass meine Lieblingsautos eine Schmiede und ein Schach sind Dann wollen wir Autodatei, schließen sagen , und damit wird die Datei für uns geschlossen Wenn wir nun unseren Code ausführen, können wir sehen, dass nichts ausgegeben wird, aber wenn wir in unser Verzeichnis gehen, sollten Sie jetzt sehen, dass wir eine Warenkorb-TXT-Datei haben, die erstellt wurde und wir Text darin haben , weil wir in die Datei geschrieben haben. Wir können dort sehen, dass wir weitergemacht haben und geschrieben haben, dass meine Lieblingskarten ein Ford und ein Tesla sind und wir können sehen, dass das geschrieben wurde, und natürlich, dass diese Datei selbst erstellt wurde. Wir haben keine Angabe zur Druckleistung erwartet. Deshalb war hier nichts, aber wir mussten unseren Code ausführen, damit wir die folgenden Codezeilen ausführen können. Aber wir können sehen , dass es erstellt wurde. Cart TXT existiert jetzt. Richtig, perfekt. Nehmen wir an, Sie möchten weitermachen und jetzt von Car Dot TXT lesen. Sie möchten ein wenig aus dieser Datei lesen. Wir werden also auf das zurückkommen , was wir zuvor getan haben. Also lassen Sie mich weitermachen und nur das. Also wollen wir zurück gehen, um eine Datei zu lesen. Also werde ich sagen, dass Text gleich ist, und ich sage Autodatei Punkt Rot Und ich werde ein bisschen aus dieser Datei lesen. Also sage ich 15 Zeichen. Und ich sage Schecks ausdrucken. Wenn ich jetzt die Ausgabe starte, wird sie mir hier etwas Code geben, damit Sie sehen können, dass die IO-Operation auf einer geschlossenen Datei ausgeführt wurde. Denken Sie also daran, dass Sie eine Datei jedes Mal, wenn Sie sie schließen , erneut öffnen müssen Es ist also sehr wichtig, dies zu beachten, wenn Sie mit Ihren Dateien arbeiten Was Sie jetzt tun müssen, ist, dass Sie es öffnen müssen, bevor Sie fortfahren. Sie können Ihre Variable also hier erneut definieren, Autodatei. Entspricht Öffnen, und Sie möchten den Kartenpunkt TXT öffnen, und jetzt öffnen Sie es Und wenn Sie jetzt Ihren Code ausführen, werden Sie sehen, dass dort meine Lieblings-CA steht Okay? Weil wir es nur auf 15 Zeichen beschränken, aber wenn ich es ein bisschen länger mache, zum Beispiel auf 100, wird die ganze Zeile gedruckt, in der steht: Meine Lieblingsautos sind Ford und ein Test, denk dran. Sehr wichtig. Deshalb werden Kontext-Manager später, wie soll ich sagen, viel hilfreicher sein. Das ist also nur etwas, das ich erwähnen wollte , damit Sie sich des gesamten Prozesses bewusst sind. Denken Sie also daran, dass Sie nach dem Schließen keine Aktion ausführen können, bis Sie sie erneut öffnen. Sehr wichtig. Ich wollte das demonstrieren, damit Sie sehen können , was passiert, wenn Sie das nicht tun. Sie werden auf einen Fehler stoßen, wie ich bereits erwähnt habe. Sobald Sie geschlossen haben, müssen Sie erneut öffnen. Richtig. Als Nächstes möchte ich Ihnen zeigen, wie Sie eine Datei anhängen können Nehmen wir nun an, wir haben den Text bereits in Car Dot TXT. Meine Lieblingsautos sind Ford und Chess und wir möchten sie zu dieser Datei hinzufügen. Wir können Append verwenden. Was Sie tun sollten , ist einfach Ihren Code hier ein wenig umzustrukturieren, damit wir hier einfach einen Teil des alten Codes entfernen können Und natürlich müssen wir die Datei öffnen, aber wir müssen sie in Appendamde öffnen Um das zu tun, müssen wir hier ein Komma hinzufügen und A sagen, weil wir Pyson sagen, dass wir diese Datei öffnen wollen und dass wir sie anhängen wollen sie anzuhängen, müssen wir natürlich wieder die richtige Methode verwenden, Um sie anzuhängen, müssen wir natürlich wieder die richtige Methode verwenden, aber unser Fokus liegt auf dem Anhängen und nicht auf dem Ausschreiben Wenn ich Autoakte sage, schreib, okay. In Anführungszeichen muss ich ein Leerzeichen hinzufügen und sagen, ich mag zum Beispiel auch Honda. Dann kann ich einfach Autodatei Punkt schließen sagen. Also, wann immer du schreibst, musst du schließen. Also das ist eine gute Maßnahme. Wenn ich jetzt also weitermache und diesen Code ausführe , wird dort natürlich nichts ausgegeben. Aber wenn ich zu Car Dox gehe, wirst du sehen, dass dort diese zusätzliche Textur hinzugefügt wurde , die besagt, dass ich Honda auch mag So können Sie also an eine Datei anhängen, die Sie bereits haben Okay, perfekt. können Sie weitermachen und das entsprechend einrichten. Jetzt können Sie nicht einfach sagen, in eine Datei schreiben , sonst wird alles entfernt, was sich in Ihrer Datei befindet, und von vorne beginnen. Lassen Sie mich das demonstrieren. Wenn ich das einfach durch W ersetzen und sagen würde, ich werde einfach in die Datei schreiben. Sagen wir, ich mag Honda auch, es wird all das ersetzen und nur zeigen, dass ich Honda auch mag. Denn wenn du schreibst, wird es ein klarer Bruch sein. Ein Stift wird einer Datei etwas hinzufügen. Wir, es wird bei Null anfangen. Also lass es mich dir zeigen. Wenn ich das jetzt starte und zu Cardo txty gehe, zeigt das nur, dass ich Honda auch mag Deshalb müssen Sie sicherstellen, dass Sie das A-Symbol haben, das beim Öffnen Ihrer Datei gesetzt wird, um den Modus anzugeben, den Sie verwenden möchten Diese werden also als Modus bezeichnet. O W ist Schreibmodus. A ist der Anfügemodus, denken Sie daran. Wir haben hier zwei Dateien, aber ich möchte nur eine behalten Ich möchte den Punkt TXT für die Person behalten, damit ich den Punkt TXT aus dem Auto entfernen kann. Sie fragen sich wahrscheinlich, wie ich das mache? Sehr einfach. Sie müssen nur sagen, Betriebssystem importieren und das OS-Modul hat eine Entfernungsfunktion. Dies gilt für Dateien. Sie können Os dot remove sagen und dann müssen Sie nur noch den genauen Dateinamen eingeben, und in unserem Fall ist es Car Dot TXT, was wir hier sehen können. Sie können Car Dot TXT sagen. Und ich empfehle, diese Datei vorerst einfach zu schließen. Und wenn Sie diesen Code ausführen, können Sie zu Ihrem Explorer gehen und sehen , dass Card Dot TXT tatsächlich gelöscht wurde. Es existiert nicht mehr. Elend. Da haben wir es also Auf diese Weise können Sie eine Absicherung vornehmen und grundlegende Datei-IO-Operationen durchführen, also Dateieingabe und -ausgabe. Sie haben jetzt also gelernt, wie Sie Dateien öffnen, Dateien lesen, Dateien erstellen, in Dateien schreiben, an eine Datei anhängen und eine Datei löschen Wir werden bald etwas detaillierter darauf eingehen , was das Abrufen von Dateimetadaten angeht Darauf werden wir uns also früh genug konzentrieren. Richtig. Nun, was diese Personen-Dot-TXT-Datei angeht, normalerweise räumen wir alles nach jeder praktikablen nächsten Größe auf, aber in diesem Fall werden wir zum ersten Mal weitermachen. Ich würde also empfehlen, einfach alles so zu lassen, wie es ist. den nächsten Lektionen werden wir einige theoretische Übersichten In den nächsten Lektionen werden wir einige theoretische Übersichten geben, und dann kehren wir zurück, um uns etwas eingehender mit der Dateiverwaltung zu befassen In Ordnung, das war's für den Moment. 33. Erhalte Datei-Metadaten: Hallo zusammen und willkommen zur nächsten Lektion, die sich mit dem Abrufen von Datei-Metadaten befassen wird. Schauen wir uns das mal an. Okay. Wenn wir nun Dateieingabe- und -ausgabeoperationen wie wir es bereits in diesem Kurs getan haben, müssen wir möglicherweise auch mehr Details über die Verarbeitung und die feineren Details einer Datei, auch bekannt als Metadaten, wissen mehr Details über die Verarbeitung und die feineren Details einer Datei, bekannt als Metadaten Diese Metadaten können nun den Namen der Datei, den Status einer Datei, ob sie geöffnet oder geschlossen ist, und den Modus, in dem die Datei geöffnet ist Wenn es sich derzeit im Schreibmodus befindet, wenn es sich in einem Stiftmodus befindet, also A für einen Stiftmodus, W für den Schreibmodus, das einige Informationen, die wir möglicherweise wissen müssen, aber es sind nur einige Informationen die wichtig sein könnten. Also, das ist auf jeden Fall nur ein kleiner theoretischer Überblick. Wir werden uns mit einigen Optionen befassen , mit denen wir diese Informationen erhalten können. Also werden wir gleich gleich darauf eingehen. 34. Attribute für Metadaten der Ausgabedatei – [Lab]: Hallo zusammen und willkommen zur nächsten praktischen Laborübung, die sich auf das Abrufen von Datei-Metadaten konzentrieren wird. Jetzt machen wir dort weiter , wo wir aufgehört haben, also haben wir immer noch unsere persönliche Punkt-TXT-Datei , die wir zuvor hatten, und wir haben unsere Haupt-Punkt-Pi-Datei. Ich möchte, dass wir unsere Datei zum Beispiel im Modus öffnen. Ich sage „Person“, Datei ist geöffnet und ich öffne „Person Punkt TXT Und wir werden das vorerst im Schreibmodus einstellen, also wird der Modus W sein. Großartig. Holen wir uns ein paar Informationen und ich werde sie auch ausgeben. Ich werde Drucken sagen und ich werde einige Texturen hinzufügen , ich werde Name sagen. Was ich tun möchte, ist, den Namen meiner Datei zu bekommen. Dazu kann ich einfach Personendatei sagen. Da wir diese Variable hier dem Wert des Dateiinhalts zugewiesen haben , kann ich dann Punktname sagen. Nun, der Punktname hier wird ein Attribut sein , das wir verwenden. Okay. Als Nächstes möchte ich überprüfen , ob sich die Datei im Öffnungs- oder Schließstatus befindet im Öffnungs- oder Schließstatus Daraufhin wird ein Bool-Wert oder ein boolescher Wert zurückgegeben Also sage ich Drucken und ich werde überprüfen, ob die Datei geschlossen ist Ich werde sagen, ist geschlossen. Okay, also beim Komma. Auch hier müssen wir auf die Datei verweisen, also sage ich Person File Punkt, und das Attribut dafür wäre geschlossen Also werden wir überprüfen, ob sie geschlossen ist. Und wenn es geschlossen ist, wenn die Datei hier geschlossen ist, wird es true zurückgeben. Wenn es nicht geschlossen ist, wird es falsch zurückgegeben. Also prüfen wir, ob es geschlossen ist, was nicht der Fall ist. Es ist offen. Als Nächstes wollen wir den Modus überprüfen. Also werde ich Drucken sagen und hier werde ich Aktueller Modus sagen. Leertaste, und wir müssen uns auf die Datei beziehen, Personendatei Punkt, und wir werden Modus sagen. Lassen Sie uns also weitermachen und vorhersagen, was wir haben werden. Der Name der Datei bezieht sich hier auf das Attribut der Datei, das Person Dot TXT sein wird. Und wir werden überprüfen, ob es geschlossen ist. Wir können sehen, dass wir es zuletzt geöffnet haben. sagen, dass es geschlossen ist, wird es falsch sein, also wird es nicht wahr sein. Dann haben wir hier den Punktmodus für Personendateien. Der aktuelle Modus ist W für rechts. Lassen Sie uns diesen Code hier ausführen. Wir können sehen, dass der Name Person und nicht TXT ist. Wir können sehen, dass dieser Status falsch ist und der aktuelle Modus W ist Aber lassen Sie uns weitermachen und das ändern. Stellen wir den Modus auf A ein Ordnung. Und was wir jetzt tun wollen, ist, dass wir weitermachen und die Datei schließen wollen. Also sage ich Person, Datei, Punkt, schließen. Also lass uns den Code ausführen. Und wir können sehen, dass der Name hier Person ist, dass Dtxty geschlossen ist. Das ist wahr, weil ich die Datei geschlossen habe, indem ich die Schließen-Nachricht verwendet Und der aktuelle Modus ist A für Anhängen und der Name ist natürlich immer noch derselbe geblieben Das ist also sehr nützlich, wenn Sie Metadaten aus Ihren Dateien abrufen möchten Metadaten aus Ihren Dateien abrufen Es ist also immer noch ziemlich oberflächlich, aber so können Sie weitermachen und anhand verschiedener Attribute, die Ihnen zur Verfügung stehen , referenzieren , um nur einige Metadaten zu Ihren Dateien zu erhalten . Das war's für diese Laborübung, sehr einfach und auf den Punkt gebracht. Lass uns weitermachen und die Datei einfach löschen , damit ich sie mit der rechten Maustaste anklicken kann. Und löschen. Da haben wir's. Stellen Sie sicher, dass Ihre Dot-Pi-Hauptdatei noch intakt ist und das ist alles, was wir vorerst benötigen. Das war's für diese Übung. 35. Parameter und Argumente: Hallo zusammen und willkommen zur nächsten Lektion, die sich mit Parametern und Argumenten befassen wird. Lassen Sie uns also weitermachen und loslegen. Richtig, also Parameter und Argumente. Jetzt kann ein Parameter als Platzhalter betrachtet werden, der definiert, welche Eingaben eine Funktion erwartet Andererseits sind Argumente die tatsächlichen Werte, die eine Funktion übergeben , wenn Sie sie aufrufen Schauen wir uns also eine einfache Analogie an, damit wir unterscheiden können kohärenter zwischen einem Parameter und einem Argument Richtig, schauen wir uns das an . Nehmen wir an, Sie sind in einem Restaurant und der Kellner oder Kellner kommt zu Ihnen und stellt Ihnen ein paar Fragen dazu, was Sie im Restaurant haben möchten Also könnte er dir ein paar Fragen stellen, zum Beispiel, was möchtest du als Vorspeise Dann fragt er vielleicht, was Sie für Ihr Hauptgericht möchten und ob Sie nach Ihrem Hauptgang eine Nachspeise wünschen. Nehmen wir zum Beispiel an, Sie sind ziemlich hungrig und sagen dem Kellner oder Kellner, ja, ich möchte, dass meine Vorspeise etwas Knoblauchbrot besteht Für mein Hauptgericht möchte ich eine Pizza und zum Nachtisch möchte ich ein Eis Lass uns weitermachen und tiefer eintauchen. In diesem speziellen Beispiel könnten Sie nun mit Parametern und Argumenten mit Parametern und Argumenten die Parameter wie in diesem Fall die Leerzeichen auf einem Bestellformular behandeln , I E, die Vorspeise, das Hauptgericht, das Dessert In diesem Fall definieren sie also, was bestellt werden kann , haben aber noch keine spezifischen Werte Auf der anderen Seite sind dies mit unseren Argumenten die tatsächlichen Entscheidungen , die ein Kunde trifft. Mit anderen Worten, Knoblauchbrot, Pizza, Eiscreme und diese füllen die Lücken bei der Bestellung So können Sie zwischen Ihren Parametern und Ihren Argumenten unterscheiden Ihren Parametern und Ihren Argumenten Richtig? Lassen Sie uns das zum Beispiel in einem einfachen Python-Programm anwenden. hier also genau dasselbe Beispiel verwenden, zum Beispiel, wie Sie sehen können, haben wir zum Beispiel, wie Sie sehen können, eine Funktion und unsere Parameter, die innerhalb dieser Funktion zwischen den Klammern platziert werden innerhalb dieser Funktion zwischen den Klammern platziert , gehören Vorspeise, Hauptgericht und Dessert Und das wird definieren, welche Eingaben die Funktion erwartet Das sind also die Parameter. Wie Sie sehen können, haben wir hier eine Print-Anweisung, die „geordnet“ lautet, und sie nimmt dann die Werte auf , die mit dem Startparameter, dem Hauptgangsparameter und dem Desert-Parameter verknüpft werden Hauptgangsparameter und dem Desert-Parameter . Das wird ein bestimmtes Ergebnis ausgeben. Um diese Funktion aufzurufen , beziehen wir uns auf den Funktionsnamen , also Bestellung aufgeben. In Klammern rufen wir dann die Funktion mit einem Argument auf Dies sind die Werte , die im Wesentlichen mit den Parametern verknüpft werden, die wir haben Hier können Sie sehen, wir haben Knoblauchbrot, wir haben Pizza und wir haben Eiscreme. Im Wesentlichen werden wir jetzt Eingabewerte eingeben, diese Argumentwerte, wo sich unsere Parameter befinden. Statt Vorspeise wird Knoblauchbrot verwendet. Pizza wird anstelle des Hauptgerichts und unseres Desserts In diesem Fall werden wir Eiscreme zum Nachtisch essen. Da wir die Funktion aufrufen, wird sie dann natürlich alles ausführen, was wir in der Funktion definiert haben. In diesem Fall wird die gedruckte Abrechnung am Ende angezeigt, Sie haben Knoblauchbrot bestellt. Pizza und Eiscreme zum Nachtisch. So können wir anhand einer Analogie rationalisieren, wie wir Parameter und Argumente mit unseren Funktionen in Pyson verwenden können Parameter und Argumente mit unseren Funktionen in Jetzt werden wir uns sehr eingehend damit befassen, Funktionen verwenden können und wie Sie Argumente genauer verwenden können . Parameter, sollte ich sagen, waren Aber wie dem auch sei, das ist der Kern der Sache, sodass Sie eine allgemeine Vorstellung davon haben was der Unterschied zwischen einem Parameter und einem Argument ist , und in einem Kontext 36. Zwischen Parametern und Argumenten unterscheiden – [Lab]: Hallo zusammen und willkommen zur nächsten praktischen Laborübung, der es um Parameter und Argumente gehen wird In dieser Laborübung werde ich Ihnen also nur die Grundlagen von Parametern und Argumenten beibringen , damit Sie zumindest den Grundgedanken verstehen , bevor wir uns in den nächsten Lektionen eingehender mit Parametern und Argumenten befassen in den nächsten Lektionen eingehender mit Parametern und Argumenten Lassen Sie uns also anfangen. Okay, nehmen wir zum Beispiel an, ich möchte eine einfache Funktion erstellen, die sich darauf konzentriert, dass jemand eine bestimmte Reihe von Lebensmitteln in einem Restaurant bestellt . Nehmen wir an, sie möchten etwas zu Mittag essen und entscheiden, dass ich eine Vorspeise, ein Hauptgericht und ein Dessert möchte. Lassen Sie uns weitermachen und sehen, wie wir es von dort aus machen können. Das erste, was wir normalerweise tun würden , ist unsere Funktion zu definieren. Also werde ich Dev sagen und ich werde Place Underscore Order sagen, und das wird mein Funktionsname sein Und innerhalb meiner Funktion innerhalb der Klammer muss ich, um genauer zu sein, muss ich, um genauer zu In diesem Fall wäre dies für die Parameter angemessen , da wir eine Vorspeise, ein Hauptgericht und ein Dessert haben eine Vorspeise, ein Hauptgericht und ein Dessert wäre dies für die Parameter angemessen Das wird die Eingaben definieren , die unsere Funktion erwarten wird. Lassen Sie uns also weitermachen und genau das tun. Wir nehmen Vorspeise. Wir werden einen Hauptgang mit Unterstrich und einen Nachtisch essen Richtig. Sobald wir die zugehörigen Werte in Vorspeise, Hauptgericht und Nachspeise eingegeben haben, wollen wir eine Art von Funktionalität ausgeben In diesem Fall möchte ich hier also nur die Bestellung selbst ausdrucken Also hier sage ich Drucken und ich sage geordneter Speicherplatz, und ich werde Zeichenkettenverkettungen verwenden, ich sage Plus, und ich werde den Starter hinzufügen Dann füge ich ein Komma und ein Leerzeichen hinzu, und dann fügen wir das Hauptgericht hinzu, richtig? und dann fügen wir das Hauptgericht Und was ich tun werde, ist hier aus Clarity Plus ein bisschen herauszuzoomen und dann Komma, Sprichwort und Leerzeichen hinzuzufügen, und dann nehme ich einen Sehr einfach. Ich wollte nur sagen bestellt, heißt das Dessert, das Hauptgericht und natürlich, was wir hier entsprechend haben. Großartig. Jetzt, außerhalb dieser Funktion , wollen wir sie natürlich aufrufen und diese Codezeile ausführen. Wir werden also diese Funktion aufrufen wollen, und dazu würden Sie sich auf den Namen der Funktion selbst beziehen , also Bestellung aufgeben. Und hier in Klammern werden Sie die Funktion aufrufen, indem Sie die Argumente eingeben Im Wesentlichen werden die Argumente hier dort ersetzt, wo Sie Ihre Parameter definiert haben Lassen Sie mich weitermachen und Ihnen ein Beispiel geben. Wenn ich jetzt Knoblauchbredge hineinlege, dann mache ich Pizza rein Und ich habe Eiscreme hineingegeben. Das werden meine Argumente sein und sie werden entsprechend untermauert Vorspeise gibt es Knoblauchbrot, statt Hauptspeise Pizza An die Stelle des Desserts wird Eiscreme treten. Dann könnten Sie es sich so vorstellen, dass das Folgende dann die Werte von Knoblauchbrot, Pizza und Eiscreme enthält, die auf das reduziert werden , was in der Funktion hier steht. Vorspeise wird dann Knoblauchbrot, Hauptgericht wird Pizza und aus Eiscreme wird ein Dessert. Diese Werte werden an unsere Funktion weitergegeben. Und das Endergebnis ist , wie Sie es bestellt haben, Knoblauchbrot, Pizza und Eiscreme. Okay, lassen Sie uns weitermachen und diesen Code ausführen. Okay. Und dort können Sie die Ausgabe sehen. Also hast du Knoblauchbrot, Pizza und Eiscreme bestellt . Also gut, das ist ein einfacher Weg auf dem Sie praktisch den Unterschied zwischen Parametern und Argumenten erkennen können den Unterschied zwischen Parametern und Argumenten erkennen und wie sie zusammenwirken. Ordnung. Also da haben wir es. Nehmen wir an, wir wollen ein bisschen mehr in GitL machen. Der beste Weg ist also, etwas mehr zu üben und schauen wir uns ein anderes Beispiel an Lassen Sie mich also heranzoomen. Lassen Sie uns weitermachen und an einem zweiten Beispiel arbeiten. Ordnung, also lasst uns weitermachen und mit unserem zweiten Beispiel arbeiten. Also nochmal, ich werde eine Funktion definieren, und das wird Tod heißen und ich werde Standort sagen. Ganz einfach. Dann gebe ich zwei Parameter ein. Also werde ich Stadt und dann Land als Parameter haben. Und hier in meiner Print-Erklärung werde ich „Drucken“ sagen. Ich sage, Sie kommen von Add in the Doppelpunkt, fügen natürlich ein Plus für die Verkettung von Zeichenketten hinzu, ich sage City Plus und dann mache ich weiter und füge eine Reihe von Anführungszeichen hinzu und dann füge ich hier einen Doppelpunkt hinzu, und dann füge ich Leerzeichen und dann die Zeichenkettenverkettung für das Land hinzu Zeichenkettenverkettung Jetzt müsste ich die Funktion aufrufen, also würde ich Location sagen. Und mit Folgerungen werde ich die Argumente hinzufügen. Hier werde ich sagen, der erste Parameter wäre in der ersten Art von wie soll ich sagen, in der ersten Definition, die wir hier machen. Ich sage Kapstadt, und in meinem Komma bezieht sich das zweite Argument auf das Land und ist an Südafrika gebunden an Südafrika Jetzt kann ich weitermachen und diesen Code ausführen. Wie Sie sehen können, heißt es jetzt, dass Sie aus Kapstadt, Südafrika, Was ich eigentlich tun kann, ist einfach umziehen. Okay, da haben wir's. Das sieht ein bisschen sauberer aus. Oh, das könntest du auch tun, vielleicht sieht ein Komma besser aus. Also ich bin hier nur bei den kleinen Dingen. Also, entschuldigen Sie mich. Du bist aus der Küche. Da haben wir's. Viel sauberer. Ordnung. So können wir Parameter und Argumente sehr einfach integrieren. Deshalb werde ich noch einmal wiederholen, was wir hier in unseren Klammern definieren Okay? Das werden unsere Parameter sein. Dann unsere Parameter, wir können sie auch innerhalb der Funktion selbst aufrufen. Was wir dann jedoch tun müssten, ist hier die Argumente hinzuzufügen, die Sie könnten sagen, unsere Parameter innerhalb unserer Funktionen ersetzen , die dann an jede Logik weitergegeben werden , die wir in der angegebenen Funktion haben Richtig, Leute, das war's für diese praktische Laborübung zu Parametern und Argumenten 37. Positions- und Keyword-Argumente: Hallo zusammen und willkommen zur nächsten Lektion, die sich mit Positions- und Schlüsselwortargumenten befassen wird . Schauen wir uns das mal an Okay, lassen Sie uns zwischen den beiden unterscheiden. Positionsargumente werden in einer bestimmten Reihenfolge übergeben , wobei ihre Position bestimmt , welchem Parameter sie zugewiesen werden Wenn Sie nun die Reihenfolge ändern würden, würde das die Bedeutung ändern Jetzt erhalten wir auch Schlüsselwortargumente, und Schlüsselwortargumente verwenden Namen, um Werte zuzuweisen, sodass die Reihenfolge keine Rolle spielt. Schauen wir uns also eine weitere Analogie als Beispiel an, und dann werde ich Ihnen zeigen, wie Sie sowohl Positions - als auch Schlüsselwortargumente anwenden können sowohl Positions - als auch Schlüsselwortargumente anwenden Lassen Sie uns also einen Blick darauf werfen. In Ordnung. Nehmen wir an, wir wollen ein Auto kaufen und gehen zu einem Autohaus und sagen wir, wir wollen, ich weiß nicht, einen Ford, einen Tesla oder einen Mercedes kaufen einen Ford, einen Tesla oder einen Mercedes Also gehen wir zum Autohaus und treffen uns dort mit einem Autohändler und wir dort mit einem Autohändler erkundigen uns nach dem Kauf eines neuen Autos Jetzt, nachdem wir die Personen getroffen haben, werden wir uns natürlich ein paar Fragen stellen Er wird uns fragen, welche Marke Sie möchten? Welches Modell hättest du auch gerne und welche Farbe? Wir sagen, ich hätte gerne einen Mercedes. Ich möchte die S-Klasse kaufen und sie muss schwarz sein. Mal sehen, wie wir das auf sehr einfache Weise in einem PySON-Programm anwenden würden sehr einfache Weise in einem PySON-Programm also dieses spezielle Szenario anwenden, können wir mithilfe von Positionsargumenten ein Programm wie folgt erstellen mithilfe von Positionsargumenten ein Programm wie folgt Wie Sie hier sehen können, definieren wir unsere Funktion, nämlich das Auto Wir haben die Parameter, Marke, Modell und Farbe. Und dann wird unsere Print-Anweisung hier zur Ausführung der Funktion sagen, dass Sie A gekauft haben, und dann fügen wir damit verbundenen Sage-Werte hinzu. Wie wir hier sehen können, Positionsargumenten, was ich bereits erwähnt habe kommt es bei den Positionsargumenten, was ich bereits erwähnt habe, auf die Reihenfolge Wie wir hier sehen können, haben wir Mercedes, wir haben die S-Klasse und wir haben Schwarz Jetzt wird Mercedes durch Marke, S-Klasse durch Modell und Schwarz durch Farbe ersetzt . Am Ende heißt es also, dass Sie gekauft haben, und es wird heißen, dass Sie eine schwarze Mercedes S-Klasse gekauft haben. Okay, so wird das also in dem Prozess funktionieren. Sie können hier positionelle Argumente sehen, die Reihenfolge ist wichtig, denn wenn Sie den Mercedes hier durch die S-Klasse ersetzen und die beiden ersetzen würden , würden Sie dann die Marke als S-Klasse bekommen, und Sie werden zum Beispiel bekommen, wie kann ich sagen, das Modell als Mercedes Es kann zu einiger Verwirrung kommen. Also, positionelle Argumente, die Position ist wichtig. Also setzt Mercedes natürlich auf Marke, S-Klasse auf Modell und Schwarz auf Farbe Okay. Was Sie hier definieren, war Zeichenkettenverkettung, das ist Das ist ein anderer Anwendungsfall . Das ist also nicht wirklich wichtig. Aber positionelle Argumente, welche Werte Sie hier angeben, sind wichtig, weil sie der Reihenfolge entsprechen , in der Sie Ihre Parameter definieren Okay. Lassen Sie mich Ihnen ein weiteres Beispiel zeigen, um dieses Wissen zu festigen Wenn wir das ändern, dasselbe Szenario verwenden und Schlüsselwortargumente verwenden würden , werden Sie hier feststellen, dass wir einen kleinen Unterschied haben Das Modell ist auf die S-Klasse eingestellt, Marke ist auf Mercedes eingestellt und die Farbe ist auf Schwarz eingestellt. In diesem Fall können Sie jetzt sehen, dass ich die Reihenfolge der Parameter geändert habe Es heißt Marke, Modell und Farbe. Hier mit den Argumenten, die Sie sehen können , spielt die Reihenfolge keine Rolle, denn was ich hier mache, definiere ich das Schlüsselwortargument explizit , indem ich sage: Okay , das Modell wird eine S-Klasse sein, die Marke wird Mercedes sein und die Farbe wird schwarz sein. Es nimmt automatisch die Parameter an. Wie kann ich das auf sehr schrittweise und dynamische Weise sagen? Brand wird automatisch wissen , dass es sich um einen Mercedes handelt. Die Farbe wird automatisch auf Schwarz und das Modell automatisch auf die S-Klasse eingestellt. Sie können hier sehen, dass die Reihenfolge technisch gesehen in gewisser Weise anders ist, aber das macht nichts, weil wir die Parameter, wie wir hier sehen können, explizit den Beschriftungen entsprechend zuweisen die Parameter, wie wir hier sehen können , explizit den Beschriftungen entsprechend zuweisen Das würde also als Schlüsselwortargumente angesehen werden , bei denen die Reihenfolge keine Rolle spielt Im Gegensatz zu früher hatten wir, wenn wir zurückgehen, Positionsargumente, bei denen es darauf ankommt, welche könnte Werte man als Hardcode oder die Reihenfolge im Muster bezeichnen Denken Sie also daran, dass wir Positionsargumente und Schlüsselwortargumente haben. Okay. Also das ist nur etwas, das ich erwähnen und mit Ihnen im Sinne eines theoretischen Überblicks besprechen wollte . Wir werden das in den praktischen Laborübungen üben , also bleiben Sie dran. 38. Positionskarten und Keyword-Argumente – [Lab]: Hallo zusammen und willkommen zur nächsten praktischen Laborübung, die sich darauf konzentrieren wird, aus praktischer Sicht zwischen Positions- und Schlüsselwortargumenten zu unterscheiden Positions- und Schlüsselwortargumenten aus In der vorherigen Laborübung haben wir uns nun darauf konzentriert, das Kernkonzept von Parametern und Argumenten zu verstehen das Kernkonzept von Parametern und Indirekt werden Sie bemerkt haben, dass wir Positionsargumente verwenden, wenn Sie sich mit der vorherigen Lektion vertraut machen können, in der es darum ging , sich einen seriellen Überblick über Positions- und Schlüsselwortargumente zu verschaffen einen seriellen Überblick über Positions- und Schlüsselwortargumente Positions- und Bei Positionsargumenten fügen Sie die Argumente also direkt ein, wenn Sie die S-Funktion aufrufen. In Ordnung. Der erste Teil dieser Übung wird also dieser Übung wird eine Art Revisionsaktivität sein, weil Sie verstehen werden, wie weil Sie verstehen werden, wir vorhin standardmäßig mit Positionsargumenten umgegangen Wie dem auch sei, lassen Sie uns weitermachen und loslegen. Ich werde eine Funktion erstellen und ich möchte sagen, dass Gehörlose Informationen unterstreichen Mein Funktionsname wird Person Info sein. Dann möchte ich ein paar Parameter übergeben. sagen wir mal den Namen, ich nehme die Stadt und ich nehme das Land. Das werden meine Parameter sein. Dann möchte ich eine Print-Anweisung erstellen und ich sage print, und ich werde damit beginnen, dass ich sage, ich sage IM und dann verwende ich Zeichenkettenverkettung und sage Dann füge ich natürlich in Anführungszeichen ein Leerzeichen hinzu und sage, also sagst du IM und zum Beispiel, noch und ich komme noch und ich Und dann kann ich weitermachen und Plus sagen, und dann können wir Siti plus sagen, und dann können wir Hedge gehen und ein Komma hinzufügen und ein Komma Da haben wir's. Das wird also die Aussage sein. Nun müssten wir einige Argumente durchgehen. Aber zuerst müssen wir unsere Funktion aufrufen, erstes müssten wir sagen Person unterstreicht Info, und das ist natürlich die Funktion, die wir hier definiert haben, der Funktionsname, und dann können wir unsere Argumente übergeben Okay, also zuerst habe ich den Namen, also wird es Ehre sein, Stadt, ich kann Kapstadt sagen, und dann Land, ich werde Südafrika sagen Dies werden als meine positionellen Argumente angesehen. Name, Stadt und Land sind, wie wir wissen, unsere Parameter Bei Positionsargumenten muss die Position Ihrer Argumente nun muss die Position Ihrer Argumente der Reihenfolge oder Position Ihrer Parameter entsprechen Mit anderen Worten, der Name wird natürlich an die Stelle der Ehre treten Es wird auch kein Name sein, Kapstadt wird eine Stadt sein Südafrika wird ein Land sein, und dann wird es so genutzt werden, wie das Programm in Bezug auf die Funktionalität hier ist , wo es die Werte aufnimmt, die an das Programm weitergegeben werden Nun, ich möchte, dass Sie in dieser ganzen Art von Strukturen Positionsargumente sehen dieser ganzen Art von Strukturen , dass, wenn Sie Ihre Positionsargumente hier definieren und sie irgendwie fest codieren, sodass sie an Ihre Parameter gebunden werden Also sieh es mal so. Argument eins gehört zu Parameter eins. Argument zwei, Parameter zwei, Argument drei, Parameter drei. Lassen Sie mich jetzt weitermachen und diese Funktion ausführen. Ich rufe diese Funktion auf. Ich werde sagen, ich bin Ono, ich komme aus Kapstadt, Südafrika. Wie Sie sehen können, wird es Folgendes ausgeben , was ich tatsächlich tun werde, ist, auf eine Hecke zu gehen und einfach einen Stopp einzulegen und wir können dort einen kompletten Stopp einlegen Von Kapstadt aus können wir fertig Da ändert sich nur die Zeichensetzung. Alles klar, da haben wir's. Lassen Sie mich jetzt zum Beispiel etwas ändern. Wenn ich den ersten Wert hier ändern würde, wäre das Kapstadt und der zweite Wert. Also mein zweites Argument, sollte ich nein sagen, und ich führe das aus. Es wird heißen, ich bin Capetown, ich komme aus Anno So Africa Sie können das Problem also hier sehen. Aus diesem Grund sind Positionsargumente wichtig, okay, weil Sie sehen können, Capetown das erste Argument ist, und es gehört jetzt zum ersten Parameter, dem Namen, und ist diesem angehängt Arno, das zweite Positionsargument gehört jetzt zur Stadt, und natürlich sind Afrika und Land immer noch Aber in unserer gedruckten Erklärung können Sie hier den Unterschied erkennen, dass es jetzt heißt: Ich komme aus Kapstadt, ich komme aus Arno, weil Arno technisch gesehen an die Stadt gebunden ist Sie können das Problem hier sehen und warum es wichtig ist, dass bei Definition Ihrer positionellen Argumente Die Reihenfolge Ihrer Argumente muss mit der Reihenfolge Ihrer Parameter in Ihrer Funktion übereinstimmen der Reihenfolge Ihrer Parameter in Ihrer Funktion Das ist ein tieferer Einblick in Positionsargumente. Jetzt möchte ich es zurückverschieben. Und das können wir tun. Da haben wir's. Ich bin Ano. Ich komme aus Kapstadt, Südafrika Perfekt. Positionelle Argumente Nehmen wir nun an, wir möchten das Schlüsselwortargument verwenden. Im Gegensatz zu Positionsargumenten, bei denen die Reihenfolge wichtig ist, ist Schlüsselwortargumenten nicht Was Sie hier im Wesentlichen tun würden, ist wenn Sie Ihre Argumente definieren, Sie können sie hier direkt Ihren Parametern zuweisen Wir haben also Name, Stadt und Land, aber wir können es hier direkt zuweisen. Und in diesem Fall wird die Reihenfolge keine Rolle spielen. Also egal, ob ich weitermache und das erste Argument hier mit zum Beispiel Cape Down, zweitens Anno vertausche und das erste Argument hier mit zum Beispiel Cape Down, zweitens Anno und das *** von Afrika lasse, es wird keine Rolle spielen, weil Sie die Parameter hier vorher zuweisen werden. Die Reihenfolge hier wird also keine Rolle spielen. Lassen Sie mich Ihnen zeigen, was ich damit meine. Wenn ich vorerst nur herauszoomen und es wie folgt einrichten lassen würde. Anno wird natürlich der Name sein. Ich kann sagen, Name ist gleich, und dann Arno. Dann werden wir natürlich Kapstadt haben. Wir müssen sagen, dass Stadt gleich Kapstadt und Südafrika ist. Wir können sagen, dass Land gleich Südafrika ist. Okay. Nun, wenn ich diesen Code jetzt ausführen und ausführen würde, wie wir hier sehen können, würde er sagen, ich bin nein, ich komme aus Kapstadt, Südafrika. Es funktioniert genau so, wie es sein sollte. So können Sie es mit Schlüsselwortargumenten austauschen, aber wir sehen den Unterschied hier nicht in der Reihenfolge, es spielt keine Rolle, weil man technisch gesehen argumentieren könnte, dass Ono hier ist und das ist der Name, Capetown ist das zweite Argument, und Afrika ist also an dritter Stelle und es ist durch den Handel getrennt Das könnte man argumentieren. Aber lass mich dir etwas zeigen. Lassen Sie mich jetzt an erster Stelle des Streits die Stadt wechseln . Lass mich das machen. Okay, lass mich das entfernen und es einfach umstellen. Nun, technisch gesehen, würden Sie denken, dass Kapstadt an erster Stelle steht, der ein Name sein sollte. Der zweite Punkt hier ist nein und der sollte am Schauplatz sein. Technisch gesehen waren die Positionen in Ordnung. Aber in diesem Fall wird es immer noch so funktionieren, wie es sollte. Wenn ich den Code ausführe, heißt es immer noch, ich bin Arno. Ich komme aus Kapstadt, Südafrika. Obwohl wir technisch gesehen die Reihenfolge geändert haben, können Sie sehen, dass die Reihenfolge überhaupt keine Rolle spielt Wir definieren also die Parameterwerte selbst. Anstatt sie direkt durch die in der Funktion definierten Parameter zu ersetzen , geben wir den Wert im Voraus an Der Parameter sucht also automatisch nach dem, was genau hier in diesem Argument in diesem Argumentaufruf definiert wurde genau hier in diesem Argument in diesem Argumentaufruf , den wir setzen So können wir weitermachen und Ihre Keyword-Argumente definieren. Die Reihenfolge wird also keine Rolle spielen. Okay. Nun, ich habe es in den theoretischen Vorlesungen nicht ausführlich erwähnt , also fragst du dich wahrscheinlich: Okay, wir haben Land gleich, Name ist gleich und Stadt ist gleich Also, wie nennen wir das in Payson ? Weil wir Südafrika kennen, sind Arno und Kapstadt im Wesentlichen das Argument, aber wie nennen wir den Rest Nun, es gibt in Pyson keinen wirklichen Begriff für diese Formen von Okay, es gibt also keinen richtigen Namen dafür. Aber der Name, der am genauesten wäre würde mit Ihren Parameternamen verknüpft Wir haben also: Stadt ist gleich, Name ist gleich, Land ist gleich Sie können diese Parameternamen also nennen, okay, das ist im Wesentlichen das, was Sie hier haben So kann man es also wirklich direkt aufrufen. Sie können es auch als Parameterbeschriftungen bezeichnen. Das ist ein weiterer Begriff, den ich auch schon einmal gehört habe. Es liegt also wirklich an uns, wie Sie es umformulieren möchten Aber die Parameternamen sind hier ziemlich sauber. Und alles, was Sie hier wirklich sehen können, ist, dass Sie Ihren Parameter strikt mit Ihren Argumenten verknüpfen So können Sie sehen, was Sie hier mit Schlüsselwortargumenten machen. Okay. Also ja, so können wir Positions - und Schlüsselwortargumente verwenden Okay. Also, was ich tun werde, ist das auch umzudrehen. Ich werde das Land hierher verlagern und ich werde das jetzt nach vorne verschieben, nur um Ihnen den Unterschied hier zu zeigen. Also, wenn ich den Code ausführe, werde ich immer noch dasselbe ausführen. Aber lassen Sie mich das jetzt ändern, und wir werden das nicht mehr als Schlüsselwortargumente einrichten . Okay? Wir werden es jetzt als Positionsargumente angeben Denken Sie also an das Format in diesem Format hier, diese werden als Schlüsselwortargumente angesehen Wenn wir die Werte einfach so hinzufügen würden, wie sie sind, würden dies als Positionsargumente angesehen Denken Sie also an die Struktur zwischen den beiden. Also, wenn ich meinen Code hier ausführe, wird es hier total verrückt , weil Südafrika heißt, Kapstadt ist Stadt und Nu ist das Land. Okay, also Positions - und Schlüsselwortargumente. Ich möchte nun, dass wir weitermachen und an einem anderen Beispiel arbeiten , nur um zu üben, damit wir eine bessere Vorstellung von Positions - und Schlüsselwortargumenten bekommen In Ordnung, also lasst uns weitermachen und etwas mehr üben. Okay. Beginnen wir also mit der Funktion, die sich auf Positionsargumente konzentriert, und arbeiten wir dann an Schlüsselwortargumenten Okay. Also ich sage Def, und das wird eine Funktion sein, die Underscore Movie ansehen heißt . Sehr einfach Es wird zwei Parameter annehmen . Wir werden zuerst den Filmnamen haben. Also werde ich Film sagen und dann werde ich die Person sagen. Also, mit wem schaue ich mir den Film in meinem Dickdarm an, und dann sage ich Print. Ich habe zugeschaut und dann Leertaste, und ich füge das Plus hinzu, und dann habe ich den Film, Leertaste, und dann sage ich Shiz und Plus und dann haben wir Person Okay. Also da haben wir es, also werde ich so einen Verstand haben Ich könnte es anpassen. Ich habe mir zum Beispiel Star Wars mit Jane angesehen. Einfach sehr einfach. Dann rufe ich diese Funktion auf und ich sage Unterstrich-Film ansehen und Positionsargumente Zuerst werde ich den Namen des Films haben. Also hier werde ich Star Wars sagen. Zweites Argument, ich werde Jane sagen. Sehr einfach. Also sollte es weitergehen und Stars in Filme verwandeln, Jane in Person. Also wird es gedruckt. Ich habe mir mit Jane Star Wars angesehen. Also lass uns weitermachen und diesen Code ausführen. Manchmal müssen wir ihn einfach erneut ausführen. Da haben wir's. Ich habe mir mit Jane Star Wars angesehen. Und das wird es entsprechend für dich ausgeben , so. Okay, das sind also Positionsargumente. Nehmen wir an, ich würde die Position ändern, sagen wir Jane, Star Balls, und ich mache versehentlich einen Fehler und starte das Programm Ich muss sagen, ich habe Jane with Stars gesehen. Das ergibt keinen Sinn. Wie kann das Schlüsselwortargument dieses Problem für uns lösen? Nun, wenn wir es auf diese Weise codieren, müssen wir es nicht ändern. Wir können einfach ein Schlüsselwortargument verwenden. Beziehen Sie sich also auf den Parameternamen. Also sag ausdrücklich, okay, die Person ist Jane. Und Film ist gleich Star Wars. Also, wenn ich den Code ausführe, lass mich speichern, wenn ich ihn ausführe, ging ich mit Jane in Richtung Starwars Auf diese Weise wird es Ihnen helfen, jedes Problem zu lösen , das Sie möglicherweise mit Positionsargumenten haben, und Sie können es einfach anpassen, ohne hier eine grundlegende Änderung vornehmen zu müssen Diese Anpassung wird also vorgenommen. Also haben wir es jetzt durch Schlüsselwortargumente ersetzt. Nun, obwohl ich bereits erwähnt habe, dass wir diese als unsere Parameternamen bezeichnen können, ist ein weiterer Grund, den ich in diesen Prozess, der hier als Schlüsselwortargumente bekannt ist , mit einbeziehen, dass Sie diese Parameternamen, die hier als Schlüsselwörter deklariert werden, auch behandeln können diese Parameternamen, die hier . Das ist auch der Grund, warum sie es in Python Schlüsselwortargumente nennen. Denken Sie also daran , dass der Grund, warum ich mich nicht zu sehr darauf konzentrieren möchte, diese Schlüsselwörter aufzurufen , darin besteht, dass sie hier im Wesentlichen unsere Parameter sind. Okay, ich möchte nur, dass du bezüglich der Logik und der Formatierung hier eine gewisse Unvoreingenommenheit und Perspektive behältst der Formatierung hier eine gewisse Unvoreingenommenheit und . Der beste Weg, Ihr Wissen hier wirklich zu festigen, besteht also darin, sich das Format anzusehen Wenn Sie Ihre Parameternamen definieren und einem Argument gleich sagen, bedeutet das, dass dies als Schlüsselwortargumente angesehen wird Wenn Sie Argumente direkt hinzufügen, um Werte fest zu codieren , handelt es sich um Positionsargumente. In Ordnung, Leute Also ich weiß, das war ein bisschen detailliert, aber ich wollte nur ein bisschen tiefer darauf eingehen , damit Sie den Prozess verstehen Jetzt werde ich eine zusätzliche Laborübung machen, aber sie wird sich darauf konzentrieren, Argumenttypen zu mischen. Also das wird rein praktisch sein. Wir werden uns nicht mit der theoretischen Seite befassen , weil wir sie technisch behandelt haben. Ich denke, es ist am besten , wenn Sie visuell lernen, wie Sie Argumenttypen mischen. Das wird also eine optionale bevorstehende Übung sein , die wir machen werden. Also werde ich den Code oder so etwas noch nicht entfernen. Es muss fortgesetzt werden. Aber wenn Sie weitermachen und zur nächsten offiziellen Lektion übergehen wollen , in der es um Standardargumente geht, können Sie das tun. Es ist also nur etwas, das ich erwähnen wollte , damit Sie sich dessen bewusst sind. Für diejenigen, die mehr über das Mischen von Argumenttypen erfahren möchten , wird es eine einzige Lektion sein, aber sie wird nicht so formal sein. Du kannst einfach so mit mir weitermachen, wie es ist. Wenn nicht, können Sie einfach den Code löschen, den Sie haben und dann mit der nächsten offiziellen Lektion fortfahren. 39. Mischen von Argumentarten – [Optionales Labor]: Hallo zusammen. Willkommen zur nächsten praktischen Laborübung, die eine optionale Zusatzstunde sein wird, Sie sehen könnten, und wir werden im Wesentlichen lernen, wie man Argumenttypen kombiniert. In diesem Beispiel werden wir unsere Positionsargumente und Schlüsselwortargumente mischen unsere Positionsargumente und , wenn wir eine bestimmte Funktion aufrufen Wir haben aufgehört, wie wir Positions- und Schlüsselwortargumente zuordnen können Positions- und Schlüsselwortargumente zuordnen Dieses Mal werde ich Ihnen zeigen, wie Sie beide kombinieren können Es gibt jedoch eine Reihe von Regeln, die Sie befolgen müssen und so weiter. Okay, lassen Sie uns mit dem vorherigen Beispiel beginnen und dort, wo wir zuletzt aufgehört haben. Wie Sie hier sehen können, habe ich diese Funktion, die sagt, ich habe zugesehen, und dann wird der Film und die Person angezeigt. Wenn ich diesen Cody renne , heißt es, dass ich mit Jane zu den Sternen gegangen bin mit Jane zu den Sternen gegangen Nun, die Positionen hier. Also, wie wir sehen können, haben wir Jane und Starwars, und der Parameter ist erwartende Person, erster Film und dann Person Der Grund, warum dieser Code funktioniert, liegt darin, dass wir Schlüsselwortargumente verwenden und den Parameternamen explizit angeben und den zugehörigen Wert zuweisen Dies ist die Verwendung von Schlüsselwortargumenten im Format der Dinge Nun, wenn ich diese Schlüsselwortargumente entfernen und sie durch die reinen Positionsargumente ersetzen würde, mit anderen Worten, wenn ich Steine und sagen wir Jane sagen und den Code ausführen würde Ich habe mir Jane with Sows angesehen, was keinen Sinn ergibt, da jetzt die Standardfunktion für Positionsargumente vorhanden ist Also geht Jane ins Kino und Stows geht zur Person. Okay, das war also der Grund, warum wir weitergemacht haben und unsere Schlüsselwortargumente verwendet haben, um es zu ändern und Person Okay als Jane und dann Film als Star Wars geschickt als Jane und dann Film als Star Wars Und wenn wir das dann ausführen, wird es das für uns reparieren, weil die Schlüsselwortargumente sich anpassen und den Wert hier direkt für uns zuweisen, also wird es sich gut anpassen und nach dem Parameternamen suchen wo er definiert wurde, Argument in diesem Funktionsaufruf, wo wir die Argumente angeben. Jetzt können wir auch Argumente mischen, was ich Ihnen nicht empfehlen würde Ich würde empfehlen, dass Sie sich entweder an Positionsargumente oder an Schlüsselwortargumente halten , so wie sie sind Aber es ist auch gut, ein besseres Gefühl für zusätzliche Funktionen zu haben ein besseres Gefühl für zusätzliche Funktionen zu Okay. Dafür gibt es leider Regeln. Nun, die Idee des gesamten Positionsarguments und der Schlüsselwortargumente ist, dass Sie dies nur auf bestimmte Arten tun können Wenn ich hier zum Beispiel der Optionen hier, eines dieser Schlüsselwortargumente, auf positionell ändern würde, würde das in einigen Fällen funktionieren, in einigen Fällen nicht Wie wir jetzt wissen, ist die Person hier mit dem zweiten Parameter verknüpft hier mit dem zweiten Parameter und der Film ist mit dem ersten Parameter verknüpft Wenn ich das Schlüsselwort-Argument entfernen würde. in der zweiten Wie kann ich in der zweiten Gruppe Staat in der zweiten Gruppe sagen? Sie können sehen, dass ein Fehler auftreten wird, der besagt, dass das Positionsargument nicht nach dem Schlüsselwortargument erscheinen kann Jetzt haben wir dieses Schlüsselwortargument hier und wir haben dieses Positionsargument, sodass Sie niemals ein Positionsargument nach einem Schlüsselwortargument haben können ein Positionsargument nach einem Sie müssen immer zuerst mindestens Ihre Positionsargumente haben, und dann können Sie später Ihre Schlüsselwortargumente haben Okay. Nun, eine weitere Sache, die ich erwähnen möchte, ist, wenn du es andersherum gemacht hast und sagen wir, ich habe das gegen Film ausgetauscht , ist das Jetzt lass mich tun, was vorher gesagt wurde. Jetzt habe ich zum Beispiel Jane, das ist mein Positionsargument, und dann habe ich mein Schlüsselwortargument Nun, technisch gesehen, würden Sie sagen, funktioniert das einwandfrei Davon würde man ausgehen. Aber wenn wir weitermachen und diesen Code speichern und ausführen, erhalten wir eine Fehlermeldung, dass Watch Movie mehrere Werte für das Argument Movie hat . Das ist das Problem, das wir haben. Nun, hier ist der Grund dafür. Hier haben wir Jane und Jane folgt natürlich der Regel der Positionsargumentation, die dem Film zugewiesen wird, aber wir haben hier auch Filme Wir müssen der Person etwas zuweisen. Da fängt der ganze Trick in diesem Bereich an. Okay. Damit Sie diese Argumente effektiv mischen können, müssen Sie hier einige Manöver durchführen. Die erste Regel , die ich erwähnt habe, lautet also , dass Ihre Positionsargumente immer an erster Stelle stehen müssen, und dann können Sie ein Schlüsselwortargument verwenden Und zweitens müssen Sie aufpassen, was Sie hier zugewiesen haben Was wir in dieser Situation tun müssen, ist was wir vorher hatten, zu ändern und es sinnvoll zu machen Hier müssten wir also Star Wars sagen, damit es den Film zuerst zufrieden stellt Und dann werden wir es hier in den Namen der Person ändern wollen es hier in den Namen der Person ändern Und wir müssen das auf Person setzen , damit es hier entsprechend angepasst wird. Wenn ich das jetzt speichern und meinen Code ausführen würde, heißt es, ich bin mit J zu Stalls gegangen Okay? Nun, so würden Sie Ihre beiden Argumenttypen integrieren Ihre beiden Argumenttypen Also geht Stalls ins Kino und die Person geht zu J. Und so würde dieser Prozess funktionieren Okay? Nun, etwas, das ich hier im Ergebnis erwähnen möchte ist, dass Sie Ihren Argumenten immer auf diese Art folgen müssen Ihren Argumenten immer auf diese Art , wenn Sie beide integrieren wollen. Lassen Sie uns also weitermachen und an einem anderen Beispiel arbeiten , das völlig anders ist. Lassen Sie mich weitermachen und diesen Code entfernen. Richtig. Lassen Sie uns also weitermachen und mit dem nächsten Beispiel fortfahren. Okay, nehmen wir an, ich definiere eine Funktion, die Sequenz genannt wird. Ich sage De sequence. Ich habe A, B und C. Ich kann dann einfach die zugehörigen Werte in der Print-Anweisung ausgeben und sagen, A, B, C, dann möchte ich die Funktionssequenz aufrufen, also kann ich Sequenz sagen. Dann kann ich durch ein Tal fahren. Lassen Sie uns hier einen einfachen Check durchführen. Ich möchte eins, zwei, drei sagen. Hier verwende ich Positionsargumente. Lassen Sie mich diesen Code speichern und ausführen. Gibt eins, zwei und drei aus. Lassen Sie mich nun weitermachen und das jetzt gegen Schlüsselwortargumente eintauschen. Ich werde einfach die Positionen wechseln. Ich werde weitermachen und sagen, sagen wir, A ist gleich zwei, C ist gleich drei und B ist gleich eins Rette Zach, Runach Ich kriege zwei, eins, drei, weil wir sehen können , dass A natürlich zwei sein wird B wird eins sein und C gleich drei, und die Reihenfolge hier ist A, B und C, es wird zwei sein, wie Sie sehen können, eins Da haben wir die Schlüsselwortargumente. Lassen Sie uns weitermachen und das wieder auf Position eins, zwei, drei setzen . Lassen Sie uns sehen, wie wir diese Argumente mischen können. Denken Sie daran, dass Sie bei den Regeln, die ich bereits erwähnt habe, kein Schlüsselwortargument vor einem Positionsargument haben vor einem Positionsargument Wenn ich das auf A gleich eins setze, wir zwei sehen und drei werden ein Problem haben, weil Positionsargumente nicht hinter Schlüsselwortargumenten stehen können hinter Schlüsselwortargumenten stehen können Denken Sie daran, dass Sie diese Schlüsselwortargumente nicht zuerst haben können , immer positionell, immer positionell Wir brauchen also eines als Positionsargument. Dann können wir B technisch gesehen gleich zwei setzen, aber dann müssen wir C gleich drei machen, weil wir das Positionsargument nicht alleine haben können Positionsargument Wenn ich das also ausführen würde, würde es dasselbe ausführen, und das ist eine Möglichkeit, wie wir unsere Argumentationszeiten mischen können Aber Sie werden hier feststellen, dass es ein bisschen ist, wie kann ich sagen, unnötig, das zu tun ? Weil Sie zusätzlichen Code für etwas hinzufügen , das Sie mit Positionsargumenten erreichen können Weil technisch gesehen bereits eins, zwei und drei der Reihenfolge entsprachen Wenn Sie sie einfach entfernen würden, hätten Sie das gewünschte Ergebnis erzielt. Sie fügen hier nur zusätzlichen Code hinzu , wo er Ihnen nicht wirklich hilft. Wenn Sie also B und C eingeben, ist es nur zusätzlicher Code, und es ist technisch gesehen in derselben Reihenfolge. Der einzige Nutzen in der Phase der Schlüsselwortargumente besteht darin, dass Sie sie austauschen möchten. Sie können also technisch gesehen den Wert ändern. Wir wissen, dass C gleich drei und B gleich zwei ist. Was Sie technisch gesehen tun können, ist einfach die Reihenfolge zu ändern . Einfach so. Wenn du es dann ausführst, bekommst du natürlich wieder eins, zwei und drei. Sie befolgen also immer noch dieselben Regeln, die erwähnt wurden. Okay? Stimmt, Leute. Das war's mit dieser zusätzlichen praktischen Laborübung der es darum geht, wie Sie Ihre Argumentationsarten mischen können . Stimmt, Leute. Also das ist es. 40. Standardargumente: Hallo zusammen und willkommen zur nächsten Lektion, die sich mit Standardargumenten befassen wird. Schauen wir uns das mal an. Also gut, du fragst dich wahrscheinlich, okay, was um alles in der Welt ist ein Standardargument? Ein Standardargument ist also ein Parameter mit einem vordefinierten Wert in einer Funktionsdefinition, der verwendet wird, wenn während des Funktionsaufrufs kein Wert angegeben wird. Ich weiß, das klingt ein bisschen verwirrend, aber mach dir keine Sorgen. Ich verspreche dir, es wird Sinn machen. Nun, es ist wichtig zu wissen, dass Standardargumente am Ende der Parameterliste stehen müssen, was bedeutet, dass Sie kein Standardargument haben und dann direkt danach Ihre regulären Parameter haben können. Es muss immer hinter Ihren regulären Parametern stehen. Mit anderen Worten, Ihre Parameterliste. Nun, das wird mehr Sinn machen, wenn wir an den praktischen Übungen arbeiten, also mach dir darüber noch keine Gedanken. Okay, lassen Sie uns weitermachen und uns ein einfaches Beispiel ansehen. Auch hier werden wir uns auf ein typisches Beispiel beziehen , bei dem jemand ein Auto kauft. Wir werden hier eine Funktion haben , die sagt „Auto kaufen“ und die folgenden Parameter berücksichtigt. Wir haben Marke, wir haben Modell und dann haben wir ein Standardargument, das als Farbe gleich Schwarz bekannt ist Okay. Nun, wenn Sie sich die Funktion ansehen , die Cladie ist, also rufen wir die Funktion auf und fügen nur zwei statt drei Argumente Also fügen wir Mercedes hinzu, wodurch der Markenparameter ersetzt wird, und die S-Klasse, die den Modellparameter ersetzt Und anstatt ein SRD-Argument hinzuzufügen , um direkt auf die Farbe zu verweisen, wir stattdessen ein Standardargument , das wir zuweisen, nämlich die Farbe auf Schwarz zu setzen Dieses Ergebnis wird nun die folgende Aussage mit der Druckaussage ausgeben , die besagt, dass Sie eine schwarze Mercedes S-Klasse gekauft haben Das ist also eine Möglichkeit, ein Standardargument in dem Sinne zu verwenden, dass Sie das direkte Argument, das Sie in der Funktion, die Sie aufrufen, definieren, weglassen und es stattdessen einfach auf der Parameterebene einrichten, die Sie sagen können Sie definieren dies also als Standardargument. Okay. Richtig. Nun, etwas, das ich auch erwähnen möchte, es ist einem Schlüsselwortargument sehr ähnlich. Es ist quasi rückwärts, könnte man sagen. Anstatt es also im Funktionsaufruf zu haben, haben Sie es in Ihrer regulären Parameterliste in den Klammern Ihrer Also nur eine schnelle Möglichkeit, darauf zu verweisen, um zu versuchen, es besser zu verstehen Das wird also selbst als Standardargument bezeichnet. Eine weitere Situation, die ich Ihnen zeigen möchte , ist, was passiert, wenn Sie beispielsweise Ihr Standardargument wie zuvor haben, aber Ihren Funktionsaufruf so ändern die Argumentliste einschließt. Sie haben also Mercedes, Sie haben S-Klasse und Sie haben Rot. Also, technisch gesehen, bräuchten Sie dieses Standardargument, das Farbe gleich Schwarz ist, nicht wirklich dieses Standardargument, das Farbe gleich Schwarz ist, , weil Sie hier einen vollständigen Satz von Argumenten in Ihrer Aufruffunktion haben und Ihre Parameter unverändert Du wirst wahrscheinlich sagen, okay, was wird jetzt passieren? Wird es einen Konflikt geben? Wird es einen Fehler geben? Nun, das Ergebnis ist wie folgt, es wird im Code ausgegeben, Sie haben einen roten Mercedes der Klasse A gekauft. Nun, das Argument, das Sie in Ihrer aufrufenden Funktion definiert haben , wird im Grunde das Standardargument, das Sie zusammen mit Ihren Parametern in der Parameterliste angeben, ersetzen oder überschreiben zusammen mit Ihren Parametern in der Parameterliste angeben unbedingt Wenn Sie mit Ihren Standardargumenten arbeiten, sollten Sie unbedingt beachten , dass es hier eine Präferenz gibt, die verwendet wird Ordnung, Leute. Nehmen wir an , wir werden auf die theoretische Seite der Standardargumente näher eingehen, und es gibt noch ein paar Dinge, die ich in Bezug auf den Parameter erwähnen möchte , weniger als die Frage, wo Sie Standardargumente definieren können und ob es irgendeine Reihenfolge oder Präferenz gibt, der Sie folgen müssen. Aber das ist der Hauptteil , den ich gerade im Hinblick auf Kern der Theorie für die Standardargumente besprochen habe. 41. Arbeiten mit Standardargumenten – [Lab]: Hallo zusammen und willkommen zur nächsten praktischen Laborübung, die sich auf Standardargumente konzentrieren wird. Lassen Sie uns also anfangen. Lassen Sie uns also unsere Funktionen definieren. Ich sage Df mit Unterstrich. Dann möchte ich meine Parameter durchgehen. Dann sage ich Marke, Modell. Und vorerst werde ich es einfach halten. Ich werde noch kein Standardargument verwenden . Ich werde Farbe sagen. Dann sage ich „Drucken“ und sage „oder A “ und dann sage ich „Plus“. Es fügt die Farbe hier und in den Anführungszeichen plus hinzu. Dann möchte ich Zweig plus Leerzeichen hinzufügen, und wir können dann das Modell am Ende hinzufügen. Da haben wir's. Dann möchte ich die Funktion aufrufen. Ich sage mit Unterstrich und möchte das folgende Argument durchgehen Ich nehme Mercedes und dann S-Klasse und dann Schwarz Wir haben das Set. Lassen Sie uns jetzt unseren Code ausführen. Da steht: Du hast eine schwarze Mercedes S-Klasse gekauft. Mercedes ging zur Marke, S-Klasse zu Modell, Schwarz zu Farbe, und dann haben wir sie in unsere Druckerklärung übernommen. Okay. Perfekt. Da haben wir also eine Standardfunktion mit den regulären Positionsargumenten und Parametern Lassen Sie uns nun sehen, wo ein Standardargument nützlich werden kann. Nehmen wir an, Sie möchten hier nicht explizit ein Argument angeben. Es war in Ihrer Funktion , dass Sie anrufen. Du kannst das einfach entfernen. Was Sie dann verwenden können, ist stattdessen ein Standardargument und Sie können einfach sagen, dass Farbe gleich ist, und in Anführungszeichen können Sie Schwarz sagen Wenn Sie nun Ihren Code ausführen würden , würde er jetzt sagen, dass Sie trotzdem einen schwarzen Mercedes pro Klasse gekauft haben So können Sie ein Standardargument verwenden. Sie können einfach weitermachen und Folgendes einrichten, wie Sie sehen können. Alles, was Sie hier tun, ist im Grunde genommen, Ihren Parameter hier in Ihrer Parameterliste dieser Funktion explizit anzugeben Ihren Parameter hier in . Dies kann beispielsweise nützlich sein, wenn Sie kein bestimmtes Argument haben , das Sie Ihrer Funktion gesto übergeben möchten und Sie in der Zwischenzeit mit einem Standardwert einverstanden sind in der Zwischenzeit mit einem Standardwert Okay. Das Hilfreiche dabei, was Sie hier beachten sollten, ist , dass Sie, wenn Sie dann ein Argument selbst innerhalb des Funktionsaufrufs angeben, Ihr Standardargument hier beibehalten können , ohne dass es zu Konflikten kommt. Wenn ich also explizit das Argument für den dritten Parameter angeben würde , der technisch gesehen Farbe ist, obwohl ihm bereits Schwarz zugewiesen wurde. Wenn ich das fahren würde, würde es rote Mercedes S-Klasse heißen. Der Grund dafür ist, dass jedes Argument, das in der Funktion qual definiert ist , jedes Standardargument überschreibt , das hier in dieser Parameterliste definiert ist , sollte ich sagen Das ist also etwas Wichtiges, das Sie berücksichtigen sollten, wenn Sie damit arbeiten Nun, eine weitere Sache, die ich auch erwähnen möchte, sind die Regeln für das Platzieren von Standardargumenten am Ende der Parameterliste. Also das ist irgendwie das, was ich damit meine. Wenn ich weitermachen und sagen wir, ich setze das auf Schwarz und entferne dieses Standardargument, kann ich nicht am Anfang der Parameterliste weitermachen und Marke sagen, und wenn ich sagen würde und entferne dieses Standardargument, kann ich nicht am Anfang der Parameterliste weitermachen und Marke sagen, , sagen wir, mehr SDs Es wird also auf ein Problem stoßen. Sie können also sehen, wenn ich hier im Modell mit der Maus über den Parameter fahre . Es heißt, dass nicht standardmäßige Argumente vorhanden sind, ein nicht standardmäßiges Argument folgt dem Standardargument Was Sie hier also sehen können, ist, dass Sie einen regulären Parameter oder ein nicht standardmäßiges Argument haben , das auf ein Standardargument folgt Sie können das also nicht in der Reihenfolge haben , obwohl, wenn wir diesen Code ausführen würden , okay, er technisch gesehen immer noch Mercedes hier zeigen würde. Und wenn ich diese Furt zum Beispiel nur als einfachen Test für das Standardargument verwenden würde, würde sie nicht auf Absicherung gehen und wie kann ich sagen, immer noch darauf bestehen, Mercedes zu sagen, obwohl wir ein Standardargument definiert haben, wie ich bereits erwähnt habe , Sie dieses Standardargument nicht vor einem anderen wie kann ich sagen, Argument hier vor Ort haben . Ich werde Ihnen zeigen, wie es funktionieren wird. Es ist also sehr ähnlich, als ob du dir die praktische Laborübung angeschaut die praktische Laborübung hättest und dabei folgst, Argumenttypen zu mischen, du kannst hier etwas Ähnliches mit deinen Parametern haben . Also werde ich dir zeigen , was ich damit meine. Wenn ich das einfach wieder auf die Marke umstellen würde, haben wir die Farbe und wir machen das. Okay? Das ist in Ordnung. Was Sie tun können, ist, Standardargumente festzulegen. Okay? Wenn Sie damit arbeiten, wie kann ich nach Ihrem ursprünglichen Parameter noch etwas sagen? Sie müssen also sicherstellen , dass Sie immer Ihren ersten Parameter haben , damit ein gutes Maß kein Standardargument hat. Sie dürfen nicht mit einem Standardargument beginnen , wenn Sie Ihre Parameter einrichten Sie Ihre Parameter einrichten Es sei denn, Sie arbeiten nur mit einem Parameter. Aber wenn Sie mit mehreren arbeiten, wird es nicht so gut funktionieren. Ordnung. Also lass mich dir zeigen, was ich meine. Also können wir hier Standardwerte setzen, also kann ich die Farbe auf Ridge und das Modell auf F-Klasse setzen Und ich kann diese Argumente entfernen, den Code speichern und ihn ausführen Ich werde sagen, du hast eine rote Mercedes F-Klasse gekauft. Also hier werden Standardargumente verwendet, wie Sie sehen können, und es ersetzt sie einfach, wie Sie genau dort sehen können , und holt sich alle notwendigen Werte und so Okay, so können wir Standardargumente verwenden. Jetzt möchte ich dir nur noch ein paar zusätzliche Dinge zeigen. Also lass uns weitermachen und das tun. Nehmen wir an, ich definiere eine andere Funktion, ich sage Tod und ich sage Person, und sie nimmt nur einen Parameter auf , nämlich den Namen. Ich sage einfach Name drucken. Ich möchte die Funktion aufrufen und sie sagt nein. Das ist also sehr einfach für die Funktion, lassen Sie uns den Code ausführen. Es gibt nein aus. Jetzt kann ich hier ein Standardargument setzen, das sagt, ich werde einfach John sagen. Und bevor ich meinen eingeben kann , werde ich John Dove angeben. Und nehmen wir an, ich füge hier in der Telefonkonferenz kein bestimmtes Argument Es wird John Doe ausgeben. In diesem Fall wird es also funktionieren, hier ein Standardargument zu haben . Okay? Aber es kann nicht der Anfang Ihrer Parameterliste sein. Wenn Sie andere Parameter haben, wie Sie bereits gesehen haben, kann dies nicht einer Situation folgen , in der Sie danach ein nicht standardmäßiges Argument haben . Es funktioniert also nur, wenn Sie, sollte ich sagen, eine Situation haben sollte ich sagen, eine Situation , in der Sie nur einen Parameter haben, aber das ist in Python normalerweise nicht der Fall, normalerweise hat es eine Mehrheit von Parametern, mit denen Sie arbeiten. Deshalb habe ich in diesem Beispiel hier erwähnt , wo Sie es zulassen können. Lass uns weitermachen. Ich werde Ihnen ein anderes Beispiel geben. Lassen Sie uns eine einfache Funktion erstellen. Ich würde sagen, gehörlose Person unterstreicht die Information, was zwei Parameter berücksichtigt Ich sage Name und Land. Ich werde Print sagen und ich werde sagen, ich bin und das wird für den Namen sein. Dann sage ich, und ich komme aus, und dann sage ich Land. Ganz einfach. Dann möchte ich diese Funktionsperson unter Square Info anrufen , und wir können durch Honour gehen und wir können Südafrika sagen, ganz einfach. Lass uns das speichern und unseren Code ausführen. Da steht, ich bin Honor und komme aus Südafrika, ganz einfach. Okay, perfekt. Also haben wir das an Ort und Stelle. Lassen Sie uns nun ein Standardargument verwenden. Also können wir hier weitermachen und zum Beispiel den Standard festlegen, und ich sage, das Land ist Südafrika, und ich kann den Code ausführen, und er wird mit diesem Standardargument ausgeführt Ich komme aus Südafrika. Nehmen wir an, das ist nicht der Fall, und ich komme tatsächlich aus Großbritannien. Und hier würde ich mich einfach anpassen. Eigentlich würde das nicht ganz Sinn machen. Sagen wir, England. Los geht's. Heb dir das auf und dann steht da, ich bin Honor und komme aus England. Also nimmt es jetzt das explizit definierte Argument , das im Aufruf verwendet wird. Nehmen wir nun an, ich möchte keine Argumente explizit hinzufügen . Was ich also tun kann, ist, hier alles zu entfernen. Ich kann die Funktion einfach aufrufen und ich setze sie auf Ehre. Ich kann den Code ausführen und er sagt, ich bin dran und ich komme aus Afrika. Also müssen Sie hier technisch gesehen nicht einmal irgendwelche Argumente angeben. Sie können stattdessen einfach Standardargumente verwenden. Das können Sie also tun und diesen vordefinierten Wert hinzufügen. Denken Sie auch hier daran, was ich zuvor in Bezug auf die Regel gesagt habe , in Bezug darauf, wo Standardargumente platziert werden. Wenn ich also auf eine Absicherung gehen und es anders definieren und es einfach so festlegen möchte eine Absicherung gehen und es anders definieren und es einfach so , dass es mein Argument hat, wenn ich das Argument anders formulieren und mit dem Standardargument beginnen würde, werden Sie sehen, ob ich das entferne. Okay, wir werden eine Art Fehler haben. Okay. Also denk dran, keine Standardargumente, okay? Sie können Standardargumenten nicht folgen. Denken Sie also noch einmal an diese Regel. Ordnung, Leute. Also das ist es für das Standardargument. Ich hoffe, das war eine wertvolle Laborübung für Sie und Sie haben viel gelernt. Okay, das ist es also. 42. Argumente mit variabler Länge: Hallo zusammen und willkommen zur nächsten Lektion, die sich mit Argumenten variabler Länge befassen wird. Lassen Sie uns also anfangen. Richtig, also was sind Argumente mit variabler Länge? In Ordnung. Argumente mit variabler Länge ermöglichen es einer Funktion mehr Argumente als die explizit definierten zu akzeptieren, was eine größere Flexibilität bei der Anzahl der übergebenen Eingaben ermöglicht eine größere Flexibilität bei der Anzahl . Nun gibt es in Pierson zwei Arten von Argumenten mit variabler Länge, nämlich Bögen Argumenten mit variabler Länge, nämlich Bögen Es ist also ein Asterix und wird dann mit Bögen und wird dann Auf diese Weise können Sie eine variable Anzahl von Positionsargumenten übergeben, ohne die genaue Anzahl Positionsargumenten Dann kommen wir zu Quarks, und das wird zuerst durch zwei Sternchen und dann durch Quarks definiert . Und das ermöglicht es Ihnen, ein Wörterbuch mit Schlüsselwortargumenten in Form eines Schlüssel-Wert-Paars ohne feste Obergrenze zu übergeben Schlüsselwortargumenten in Form eines Schlüssel-Wert-Paars ohne zu In Ordnung, lassen Sie uns Bögen und Quarks vereinfachen. Args wird verwendet, wenn Sie nicht wissen wie viele Positionsargumente die Funktion übergeben werden könnten. Dadurch werden zusätzliche Positionsargumente zu einem , wie viele Positionsargumente an die Funktion übergeben werden könnten. Dadurch werden zusätzliche Positionsargumente zu einem Tupel zusammengefasst. Dann haben wir Quarks, das verwendet wird, wenn Sie nicht wissen wie viele Schlüsselwortargumente übergeben werden könnten. Dadurch werden zusätzliche Schlüsselwortargumente in einem Wörterbuch gesammelt , wie viele Schlüsselwortargumente übergeben werden könnten. Dadurch werden zusätzliche Schlüsselwortargumente in einem Wörterbuch gesammelt. Erinnern Sie sich an die wichtigsten Punkte. Wenn Sie Arcs sehen, sammelt es zusätzliche Positionsargumente in einem Tupel und Quarks sammelt zusätzliche Schlüsselwortargumente Denken Sie an den Unterschied zwischen den beiden . Machen Sie weiter und schauen Sie sich eine Analogie an. Nehmen wir zum Beispiel an, wir bereiten Zutaten Wir können eine Funktion namens Zutaten erstellen. Wir können dann mehrere Positionsargumente wie Mehl, Zucker und Butter übergeben , wie wir sie hier in unserem Funktionsaufruf nennen. Und wir können einfach, anstatt weiterzumachen und bestimmte Parameter einzugeben, einfach das Sternchen, gefolgt von Bögen, hinzufügen und das dann an die Funktion übergeben, wo wir es verwenden wollen, wie zum Beispiel in der Print-Anweisung Beachten Sie, wenn wir durch Bögen oder Quarks gehen, wir die Sternchen nicht hinzu Wir fügen die Sternchen nur hinzu, wenn wir sie als Parameter in unserer Funktion übergeben sie als Parameter in unserer Funktion Änderungen werfen einen Blick darauf, wie wir das mit Quarks machen können. Jetzt möchte ich dir nur vorher auch die Ausgabe zeigen , damit du die Zutaten hier sehen kannst Es wird, wie ich bereits erwähnt habe, in einem Tupel ausgegeben , sodass wir Mehl, Zucker und Butter sehen können Okay. Also das wäre dein Output. Sie würden also Zutaten sehen und dann wäre Arc Remember in einem Tupel Das andere Beispiel ist, wenn wir an der Verwendung von Quarks arbeiten Hier wollen wir also mehrere Schlüsselwortargumente übergeben. Also hier haben wir Kaffee getrunken, Größe ist groß, Milch ist Mandel. Okay? Und dann würden wir in der Parameterliste einfach die doppelten Sternchen hinzufügen und dann die Quarks durchgehen Danach werden wir die Bestelldetails ausdrucken und weitermachen und die Quarks ohne die Sternchen durchgehen Quarks ohne die Sternchen durchgehen . Das führt zur nächsten Ausgabe, bei der es sich um Bestelldetails handelt, die in einem Wörterbuchformat vorliegen werden . Das wird also mit dem korrelieren, was ich bereits erwähnt habe, wenn Sie die ganze Idee der Verwendung von Args und Quargs vereinfachen wollen die ganze Idee der Verwendung von In Ordnung, Leute, das war's also mit den theoretischen Erklärungen zur Verwendung von Argumenten Verwendung Denken Sie also noch einmal daran, wenn Sie Argumente mit variabler Länge verwenden, werden Sie Asterix-Quarks und Doppel-Asterix-Quarks verwenden Asterix-Quarks und Doppel-Asterix-Quarks 43. Verwendung von Argumenten mit variabler Länge – [Lab]: Hallo zusammen und willkommen zur nächsten praktischen Laborübung, die sich auf Argumente mit variabler Länge konzentrieren wird Also lasst uns anfangen. Okay. Lassen Sie uns also eine einfache Funktion erstellen. Also sage ich taub und es wird Zutaten heißen Dann sollten Sie, wenn Sie alles in einem Tupel ausgeben wollen , Asterix-Argumente verwenden Okay? Das wird also alle Daten, die Sie an Arcs weitergeben , als Tupel ausgeben alle Daten, die Sie an Arcs weitergeben , als Tupel Dann müssen Sie Ihren Doppelpunkt hinzufügen, Demi kann sagen print. Und ich sage zum Beispiel in Dience, füge Y einen Doppelpunkt hinzu, dann musst du dein Komma hinzufügen dann musst du dein Komma hinzufügen und dann kannst du Nun, wenn Sie ausgeben und args in Ihrer Funktion verwenden möchten, können Sie dann einfach das Sternchen darin entfernen , aber Sie müssen es in dieser Parameterliste behalten Okay. Jetzt wollen wir mehrere Positionsargumente übergeben Lassen Sie mich weitermachen und die Funktion aufrufen , damit ich Zutaten sagen kann, und hier kann ich zum Beispiel Mehl durchgehen Denken Sie daran, Sie können es entweder in einfache oder doppelte Anführungszeichen setzen , es spielt keine Rolle, Zucker und Butter. Sie können sogar eine Sorte hinzufügen. Wir können weitermachen und den Code ausführen, und wir können sehen, dass die Ausgabe hier in Mehl, Zucker und Butter erfolgen wird, und das alles innerhalb eines Tupels Und der Vorteil bei der Verwendung von Argumenten ist, dass Sie so viele Argumente übergeben können, wie Sie möchten, so viele Positionsargumente Sollte ich mich in diesem Punkt so klar ausdrücken, wie Sie möchten Wenn ich also nur ein bestimmtes Argument durchgehen würde, würde es genau das tun Und wenn ich ein Vielfaches hinzugeben würde, Zucker, Butter, Milch, O, spare und laufe Es wird das alles innerhalb eines Tupels ausgeben. Lass uns ein anderes Beispiel machen. Sagen wir Tod und ich sage persönliche Daten. Ich werde Bögen drucken lassen. Ich sage Info-Dolon, füge ein Komma hinzu und dann sage ich Bögen Nennen wir diese Funktionen. Ich sage persönliche Daten. Und hier kann ich alles weitergeben. Ich möchte John Doe sagen. Sagen wir DOB. Dann sage ich zum Beispiel 140295 als Zeichenfolge und dann sage ich einfach Südafrika nur als Beispiel Lassen Sie uns nur als Beispiel diesen Code ausführen, und hier können wir sehen, dass er die Informationen an John Doe, Geburtsdatum für Geburtsdatum, 140295 Südafrika, ausdruckt Doe, Geburtsdatum für Geburtsdatum, 140295 Südafrika, Und all das wird wiederum, wie Sie sehen können, als Tupel ausgegeben , und das sind alles Denken Sie also an Positionsargumente, Bögen, Tastaturargumente , Quarks Lassen Sie uns nun in diesem Sinne einen Blick auf Quarks werfen Okay. Also noch ein Beispiel, und das bezieht sich auf Quarks Also werde ich sagen, Jeff, und lassen Sie mich weitermachen und Ordnung sagen, ich werde Details bewerten, und ich werde den doppelten Stern für Quarks durchgehen. Doppelpunkt. Und hier können wir Bestelldetails sagen, Doppelpunkt-Quark Jetzt werden wir Quarks verwenden und das Sternchen einfach weglassen, da wir das hier nur innerhalb der Definition verwenden, und dann können wir weitermachen und unsere Funktion aufrufen Und wir werden jetzt Schlüsselwortargumente verwenden, und wir können so viele Schlüsselwortargumente übergeben , wie Ich werde sagen, dass Getränk gleich ist, und in Anführungszeichen werde ich Kaffee sagen Größe L und Milchmandel. Also lass uns weitermachen und das speichern und ausgeben. Hier können wir also sehen, dass die Ausgabe in einem Wörterbuch erfolgen wird, und wir verwenden mehrere Schlüsselwortargumente, um Quarks zu verwenden, um alles innerhalb eines Wörterbuchs auszugeben Okay. So können wir das also tun. Und auch hier ist es egal, wie viele wir haben. Jetzt ist es sehr hilfreich, dass dies in einem Wörterbuch ausgegeben wird, und es spielt auch hier eine größere Rolle bei dem, was Sie definieren. Hier, wo wir definieren, könnte man die Parameternamen sagen, wir haben Trinkzeichen und Milch. Das bildet die Form der Schlüssel in Ihrem Wörterbuch, wobei die Werte die Argumente selbst sind Wie Sie sehen können, wird es hier ausgegeben. Wenn Sie auf anfängerfreundliche Lektionen über Wörterbücher zurückgreifen können , können Sie sich die Kombination hier ansehen und sehen , wie das Ganze mit der Referenzierung zusammenhängt Wenn ich hier Getränk auf Getränk umstellen würde, heb dir das auf und lass es laufen Sie werden sehen, dass sich der Schlüssel hier in der Wörterbuchausgabe ändern wird. Denken Sie einfach an diese Struktur. Großartig. Das sind Quarks. Lassen Sie uns ein anderes Beispiel für Quags machen. Lassen Sie uns weitermachen und es wieder für den Autokauf einrichten, also sagen wir, taub und Auto kaufen ist die Funktion Dann werden wir uns mit Quarks befassen, und das wird in einem Deshalb sagen wir Quarks und ich möchte Print sagen Wir konnten keine Bestelldetails sagen. Das können wir auch sagen, Bestelldetails, und wir wollen Quargs auf natürliche Weise weitergeben Dann können wir weitermachen und die Funktion aufrufen und Folgendes spezifizieren Ich möchte zunächst sagen, ich würde Branch sagen, und das entspricht Ford Und wir können dann Modell F-Klasse sagen, und dann können wir sagen, es wird Ford F-Klasse sein, und wir können Farbe sagen Das wird blau sein. Da haben wir's. Also lass uns weitermachen und dieses Programm speichern und ausführen. Wir können hier also sehen, dass es ein Wörterbuch zurückgeben wird, weil wir es mit Quarks zu tun Wir haben die Schlüsselwortargumente und mehrere Schlüsselwortargumente hinzugefügt , und es wird, wie wir sehen können, Folgendes ausgeben Also die Marke, Schmiede, Modell F-Klasse, Farbe Blau. Nochmals, wenn ich nur ein Argument hinzufügen und den Code ausführen würde ein Argument hinzufügen und den Code ausführen , würde er genau das tun. Denken Sie daran, dass es hier keine Einschränkung gibt, sodass Sie mehrere Schlüsselwortargumente übergeben können. Ch. Da haben wir es also. Auf diese Weise können Sie im Grunde genommen eine Absicherung machen und mit Typen mit variabler Länge arbeiten. Ich werde es noch einmal sagen, nur damit Sie sich dessen bewusst sind. Denken Sie daran, dass Sie bei args mit Positionsargumenten arbeiten dass Sie bei args mit Positionsargumenten in Tupelquarks umwandeln, Sie arbeiten in beiden Fällen mit Schlüsselwortargumenten, die nach der Ausgabe in ein Wörterbuch umgewandelt werden Und Sie definieren den Asterix Sie sich innerhalb Ihrer Funktionsdefinition nur dann mit Bögen und den Doppelstern mit Quarks, wenn nur dann mit Bögen und den Doppelstern mit Quarks, wenn Sie sich innerhalb Ihrer Funktionsdefinition innerhalb der Parameterliste befinden. Wenn Sie es beispielsweise innerhalb der Funktionsfunktionalität ausgeben , entfernen Sie einfach diese Sternchen Stimmt, Leute. Das war's für diese praktische Laborübung. 44. Entpacken der Container: Hallo zusammen und willkommen zur nächsten Lektion, die dem Auspacken von Containern befassen wird Lassen Sie uns also anfangen. Okay, du fragst dich wahrscheinlich, was in aller Welt ist das Auspacken von Containern Einfach ausgedrückt, das Entpacken von Containern ermöglicht es Ihnen, Elemente eines Listentupels oder Wörterbuchs als separate Argumente an eine Funktion zu übergeben, Asterix für Listen und Tupel oder einen doppelten Stern für Wörterbücher verwendet Tupel Schauen wir uns das mal an, noch einfacher. Asterix entpackt also eine oder zwei Listen in Positionsargumente und doppeltes Asterix entpackt Positionsargumente und doppeltes Asterix entpackt ein Wörterbuch in Schlüsselwortargumente. Okay, das ist nur etwas, das Sie vielleicht noch einmal durchgehen müssen, nur um es klarer zu Aber lassen Sie uns auf jeden Fall weitermachen und sehen wie wir diesen gesamten Prozess visualisieren können. Okay, nehmen wir an, ich habe zum Beispiel mich selbst und ich sollte ein Programm erstellen, um mich selbst als einfaches Beispiel zu beschreiben Also hätte ich meine Funktion , die besagen würde, eine Person zu beschreiben Ich hätte drei Parameter, wie Name, Alter und Stadt. Ich hätte eine gedruckte Erklärung, Name und dann Alter steht. Und dann natürlich alle folgenden Jahre alt und wohnt in, gefolgt von der Stadt. Jetzt kann ich all diese Daten hinzufügen und in einem Tupel speichern, und dann kann ich das Tupel in Funktionsargumente entpacken Technisch gesehen würde ich dann das einzelne Asterix verwenden und mich dann auf das Tupel beziehen, was Personen-Info ist. Und das würde, man könnte sagen, all diese Argumente in Name, Alter und Stadt auspacken all diese Argumente in Name, , solange sie in derselben Reihenfolge sind Hier können wir also die tatsächlichen Argumente sehen, und so würden wir die Funktion im Wesentlichen aufrufen und diese Argumente einfügen. Und das gibt uns den Output von no ist 29 Jahre alt und lebt Solange wir also alles in dieser bestimmten Reihenfolge haben, wie zum Beispiel Nr. 29 Capetown, wie zum Beispiel Nr. 29 Capetown, und das hier auf den Parameter order verweist, also name agent city , wird es innerhalb dieser Funktion „Person beschreiben“ aufgerufen und es wird als Asterix person underscore info angesehen, da es sich um underscore Und die Reihenfolge, in der es im Tupel war, spiegelt die Reihenfolge wider, die wir innerhalb der Parameter dieser Funktion ersetzen werden . Sobald wir es hier von Asterix person info entpackt haben, wird die Reihenfolge, die wir im Tupel hatten, in die Parameter übernommen. Also nein ist zuerst, dann Alter 29 und dann ist Cert Also nein würde ich meinen Namen nennen. Da es sich in derselben Position befindet, würden 29 Jahre alt werden und Kapstadt wird zur Stadt. Okay. So können wir es also sehen. Ordnung. Nehmen wir an, wir konzentrieren uns auf etwas, das mit Bildung oder Universität zu tun hat, als Beispiel in Form eines Programms Also jemand, der zur Universität gegangen ist oder seinen Abschluss gemacht hat. Unser Programm wäre ein bisschen anders. In diesem Fall haben wir also, wie Sie sehen können, eine Funktion, die Abschlussinformationen oder Abschlussinformationen besagt . Es berücksichtigt die Parameter Name, Abschluss, Universität und Abschlussjahr. Dann haben wir eine gedruckte Erklärung , in der einfach eine Person erwähnt wird und dass sie im Abschlussjahr einen Abschluss an welcher Universität erworben hat, und die Daten werden dann in einem Wörterbuch gespeichert. Sie können sich die Einzelheiten der Ausbildung ansehen, hier werden sie in Schlüsselwertpaaren aufgeführt, denn denken Sie daran, dass ein Wörterbuch mit Schlüsselwertpaaren funktioniert. Wir haben also den Namen, den Abschluss, das Abschlussjahr der Universität als Schlüssel und dann die Werte zum BSC Informationstechnologie, University of Cape Town, 2019 Dann werden wir das Wörterbuch in Funktionsargumente entpacken das Wörterbuch in Funktionsargumente entpacken Im Wesentlichen werden wir dann sicherstellen, dass wir dieses Mal doppelte Sternchen hinzufügen weil wir mit einem Wörterbuch arbeiten, wie Sie hier sehen können, und dann werden alle Werte an die Parameter angehängt , wie Sie hier sehen können Also werden Name, Abschluss, Universität und Abschlussjahr hinzugefügt Okay. So würden wir also weitermachen und das tun. Und Sie werden natürlich sehen, dass die Universität von Kapstadt 2019 mit einem BSE-Abschluss in Informationstechnologie ausgezeichnet wird mit einem BSE-Abschluss in Informationstechnologie Universität von Kapstadt 2019 Nun, Sie werden hier auch feststellen , dass der Name dem Parameter Abschluss mit Abschluss, dem Parameter Universität, dem Abschlussjahr, dem Abschlussjahr, dem Abschlussjahr, dem Abschlussjahr, der mit diesem Parameter eingerichtet wurde, übereinstimmen Abschluss mit Abschluss, dem Parameter Universität, dem Abschlussjahr, dem Abschlussjahr, dem Abschlussjahr, wird, und dann werden die Werte hier den zugehörigen Parametern verknüpft , die wir hier eingerichtet haben Kerl. Ich weiß, das ist vielleicht ein bisschen anstrengend, aber keine Sorge, wir werden viel Übung in den praktischen Laborübungen haben . Lassen Sie uns also zur Sache kommen. 45. Entpacken von Behältern – [Lab]: Hallo zusammen und willkommen zur nächsten praktischen Laborübung, die das Auspacken von Containern konzentrieren wird . Lasst uns anfangen Lassen Sie uns unsere Funktion definieren. Ich sage taub und ich möchte das als Person mit Unterstrich beschreiben bezeichnen Das wird meine Aufgabe sein. Dann möchte ich drei Parameter übergeben . Ich werde einen Namen haben. Alter und Stadt, füge meinen Doppelpunkt hinzu. Dann füge ich meine gedruckte Erklärung hinzu, und ich werde dieses Mal nur den Namen sagen, ich werde nur einfache Kommas verwenden Ich werde keine Zeichenkettenverkettung verwenden, nur um ein bisschen zu variieren, das Komma hinzuzufügen, dann sage ich Alter, und dann sage ich Jahre alt und lebt in dann sage ich Alter, und dann sage ich Jahre alt und Wir haben alles, was entsprechend verabschiedet wurde. Lassen Sie uns nun weitermachen und ein Tupel definieren und wir möchten all unsere Daten speichern , die wir durch Name, Alter und Stadt ersetzen möchten Name, Alter und Stadt ersetzen Lassen Sie uns weitermachen und ein Tupel definieren. Ich sage Person unterstreicht Informationen außerhalb der Funktion gleich und tupel ich werde RNO sagen , das 29 das wird H ersetzen und Capetown, das Als Nächstes müssen wir unsere Funktion aufrufen, sodass wir sagen können: describe underscore person, was unsere Funktion sein wird, was unsere Funktion sein wird, und dann wollen wir die Daten in dem Tupel, das sich hier befindet, in die Funktionsparameter hier entpacken in die Funktionsparameter hier Wir können also einfach sagen, denken Sie daran, da es sich um ein Tupel handelt, können wir weitermachen und ein Sternchen hinzufügen, und wir können sagen, dass die Person Informationen unterstreicht, und wir können sagen, dass die Person unterstreicht Okay, so können wir weitermachen weitermachen Also sollte der Output am Ende lauten Nein, er ist 29 Jahre alt und lebt in Kapstadt Also lass uns weitermachen und dieses Programm ausführen. Da haben wir es. Anu ist 29 Jahre alt und lebt in Kapstadt, also können wir sehen, dass wir jetzt das gewünschte Ergebnis haben . Okay, perfekt. Okay, so können wir weitermachen und Folgendes tun. Also lasst uns weitermachen und noch einmal etwas üben. In Ordnung. Und lassen Sie mich weitermachen und das alles entfernen. Lassen Sie uns an ein anderes Beispiel denken. Nehmen wir an, wir konzentrieren uns auf eines, sagen wir, Mittagessen, zum Beispiel in einem Restaurant. Also hier sage ich Todesort, unterstreiche die Reihenfolge und wir werden einige Parameter durchgehen Ich werde Starter sagen. Hauptgericht und Nachtisch. Ich kann dann einfach Drucken sagen, und ich werde hier sagen, ich werde nur durchgehen, um es einfach zu halten, Vorspeise zu sagen. Ich werde Zeichenkettenverkettung verwenden, Hauptgericht. Und Nachtisch. In Ordnung, wir können das vielleicht einfach verschärfen. Großartig. Jetzt müssten wir die Informationen eingeben. Nehmen wir an, Lebensmittel unterstreichen Informationen, und das wird in einem Tupel Also werde ich die Argumente hier einbringen. Also als Vorspeise nehmen wir an, wir haben eine Knoblauchbrücke. Das Hauptgericht wäre Pizza und Nachtisch. Wir können einfach Eiscreme sagen. Jetzt wollen wir dieses Tupel in ein Funktionsargument entpacken. Ich werde die Funktion aufrufen, also die Unterstriche platzieren. Dann fügen wir in Klammern den Stern hinzu und dann sagen wir Essen, unterstreichen Informationen, und das wird es mit diesen Parametern verbinden und in dieser Print-Anweisung ausgeben Jetzt können wir unseren Code ausführen und er sagt Knoblauchbrot, Pizza und Perfekt. Was wir tun können, um das zu bereinigen, ist einfach ein Komma dazwischen zu setzen. Da haben wir's. Diese notwendige Leistung. In Ordnung, so können wir weitermachen und das Entpacken von Containern verwenden, wenn wir das einzelne Sternchen verwenden, eine Liste oder ein Tupel in Positionsargumente zu entpacken Also hier haben wir ein Tupel benutzt. Okay, das ist also der erste Teil Als Nächstes können wir ein Wörterbuch in Schlüsselwortargumente entpacken . Bevor wir damit fortfahren, möchte ich noch eine letzte Sache erwähnen. Denken Sie daran, wenn wir diesen singulären Stern hier als Asterix verwenden , abgesehen von der Tatsache, dass er das Listaltupel entpackt, sich an das Wichtigste zu erinnern, dass er es Sie müssen sich also der Tatsache bewusst sein , dass das, was Sie hier eingeben, die Werte oder die Argumente , die Sie hier eingeben, sobald wir das Tupel hier bei der Definition hinzufügen, es in sobald wir das Tupel hier bei der Definition hinzufügen der Reihenfolge angezeigt wird, die Sie ursprünglich in Ihrem Tupel angegeben haben der Reihenfolge angezeigt wird, die Sie ursprünglich in Ihrem Tupel angegeben , wodurch es zu einem Positionsargument wird. Jetzt müssen wir das für Schlüsselwortargumente tun. Also können wir weitermachen und das entfernen. Also gut, lass uns weitermachen. Lassen Sie uns also unsere nächste Funktion definieren um mit dem Entpacken von Containern fortzufahren Also wollen wir unsere Daten in einem Wörterbuch in Schlüsselwortargumente umwandeln unsere Daten in einem Wörterbuch in Schlüsselwortargumente Also werde ich meine Funktion als Tod definieren und ich sage Grad unterstreichen, und dann werde ich verschiedene Parameter durchgehen Ich gebe den Namen, den Abschluss UNI an und sage für das Abschlussjahr „ Grad unterstreichen Dann wollen wir die gedruckte Erklärung haben, und ich werde es einfach halten Ich gebe den Namen wortwörtlich und sage Plus und füge das Koma hinzu. Dann habe ich den Abschluss, ich habe UNI und den Grad Perfect. Wir haben das alles vorbereitet. Lassen Sie uns jetzt weitermachen und unsere Daten in einem Wörterbuch speichern. Ich nenne mein Wörterbuch Bildung Unterstriche Details, und das wird in meinen lockigen Nun, hier kommen die Schlüsselwortargumente ins Spiel. Die Schlüssel des Wörterbuchs werden Ihre Parameternamen sein , die mit Name, Abschluss, Uni und Abschlussjahr identisch sein werden. Wir werden hier den Namen sagen wollen . Für den Anfang, und das entspricht vielleicht dem Wert oder in unserem Fall dem Argument Also sage ich nein, Komma. Als Nächstes werden wir einen Abschluss haben, denn das ist das, was wir als Nächstes in der Liste hier haben, und das wird in IT auf BC gesetzt, können wir sagen Dann wird der nächste Parameter hier die Universität sein, also können wir sagen, dass UNI gleich für die Stadt Kapstadt sein wird , und dann haben wir endlich den Abschluss-Unterstrich , der 2019 entsprechen wird Richtig. Da 2019 ein Int ist und wir die Verkettung von Zeichenketten verwenden, lautet die Regel, dass wir es hier in eine Zeichenfolge umwandeln müssen Du musst plus STR sagen, also musst du vielleicht ein bisschen Casting machen, einfach Wir werden in der Lage sein, diese Ganzzahl zu verwalten. Nur eine kleine Anpassung , die Sie vornehmen müssen. Ich zoome einfach für dich raus. Denken Sie daran, als ich gesagt habe, dass sich dies auf Keyword-Argumente konzentrieren wird. Name im Wörterbuch, das würde als unsere Schlüssel angesehen werden und was wir damit verknüpft haben, sind unsere Werte, wie Sie hier sehen können. Wenn wir jetzt mit Schlüsselwortargumenten arbeiten, werden sie so behandelt, als ob Name, Grad, Benutzeroberfläche und Grad unter dem Quadratjahr die Parameter wären. Das werden Parameternamen sein und sie werden den Argumenten „Wie kann ich das sagen“ entsprechen , Ano Besty University of Cape Town 2019 Versuchen Sie, den aktuellen Prozess zu visualisieren. Okay. Also, wenn du mit all dem zufrieden bist, kannst du weitermachen und deine Funktion aufrufen. Am Ende können wir also weitermachen und genau das tun. Also die Funktion hier ist Grad unter Quadrat Info. Also sage ich Grad unter Quadratinfo, und dann wollen wir es nennen. Denken Sie daran, das Wörterbuch auszupacken, Sie müssen zwei Sternchen hinzufügen und dann auf den Namen des Wörterbuchs verweisen , der unter Square Details Bildung lautet So. Und wenn Sie mit allem zufrieden sind, können Sie weitermachen und den Code ausführen. Da haben wir es. Wir können sehen, dass dort Honor BSE und IT University of Capetown, 2019, stehen. Gut gemacht. Auf diese Weise können Sie eine Absicherung vornehmen und ein Wörterbuch in Schlüsselwortargumente entpacken . Lassen Sie uns ein anderes Beispiel machen. Wir können weitermachen und all das entfernen. Eine andere Möglichkeit, wie wir uns absichern und all das in Gang bringen können, besteht darin, dass wir als Beispiel etwas für die Bestelldetails einrichten können. Ich werde Folgendes einstellen. Ich sage DF Order unterstreicht die Details. Und wir können sagen, lass uns weitermachen und ich werde etwas trinken Größe und Milch. Wir können zum Beispiel eine Art Milch haben. Wir können Kuhmilch, Mandelmilch usw. haben. Perfekt. Jetzt die gedruckte Erklärung. Was ich hier tun werde , ist ich nur die Bestelldetails sage, und wir können weitermachen und weitergeben, was wir brauchen. Hier sage ich Getränk. Füge die Anführungszeichen hinzu, ich habe Anführungszeichen und Milch. Großartig. Was wir jetzt tun können, ist, dass wir weitermachen und unser Wörterbuch definieren können. Also werde ich weitermachen und sagen, nennen wir das Getränk Trinkartikel. Okay, da haben wir's. Nenn es so. Denken Sie also zuerst daran, dass wir Schlüsselwortargumente verwenden, also trinken, Größe und Milch. Wir müssen uns also auf die Parameternamen beziehen. Also trinken wir Colon, und das wird, sagen wir, Kaffee sein. Größe, Größe und Milch. Ich sage Mandel. Da haben wir's. Also haben wir Trinkartikel. Wir können auch einfach etwas Platz auf beiden Seiten entfernen. Okay, jetzt müssen wir unsere Funktion aufrufen, damit ich weitermachen und Reihenfolge sagen kann, Details unterstreichen Und in Klammern, okay, du wirst Asterix Asterix sagen, König trinken, du wirst Asterix Asterix sagen, König trinken, Gegenstände unterstreichen. Das wird weitergehen und es so zuordnen, dass Getränk gleich Kaffee, Größe gleich groß, Milch Größe gleich groß Okay, so passt das alles zusammen und wir können das Programm ausführen Wir können hier alle Details sehen, Kaffee, große Ulmen. Also musst du den Raum vielleicht umrühren. Da haben wir's. Und da haben wir es. Also können wir das auch ein bisschen sauberer machen . Also gut, da sind wir. Also können wir jetzt sehen , dass es ein bisschen klarer ist. In Ordnung, Leute. Also das ist es im Grunde. So können wir unseren Container auspacken. Sie können also sehen, dass dies eine sehr nützliche Methode ist, wenn Sie die Verwaltung Ihrer Argumente und deren Weitergabe an Ihre Funktion usw. vereinfachen möchten Verwaltung Ihrer Argumente und deren Weitergabe an Ihre Funktion usw. vereinfachen . Ordnung, Leute. Also das war's für diese praktischen Laborübungen. 46. Lokale und globale Argumente: Hallo zusammen und willkommen zur nächsten Lektion, die sich mit lokalen und globalen Argumenten befassen wird . Lassen Sie uns also einen Blick darauf werfen. Richtig. Globale Argumente beziehen sich also darauf, wo in einem Programm auf eine Variable zugegriffen werden kann. Schauen wir uns nun zunächst die lokalen Argumente an. Dies sind nun im Wesentlichen Variablen , die innerhalb einer Funktion erstellt werden. Sie können nur innerhalb dieser bestimmten Funktion und nirgendwo anders verwendet werden , und sie verschwinden, nachdem die Funktion ausgeführt oder ausgeführt wurde. Bei globalen Argumenten handelt es sich dagegen um Variablen , die außerhalb der Funktion oder einer Funktion erstellt werden . Sie können innerhalb und außerhalb von Funktionen verwendet werden und bleiben während des gesamten Programms bestehen Wir können sehen, dass noch viel mehr Vorteile haben, globale Argumente noch viel mehr Vorteile haben, wie wir hier sehen können Es wird jedoch alles Ihren Projektanforderungen und Bedürfnissen abhängen. Schauen wir uns nun die Analogie an um dies für uns weiter zu vereinfachen Nun möchte ich, dass Sie sich eine Stadt als lokalen Bereich und ein Land als globalen Bereich vorstellen als lokalen Bereich und ein Land als globalen Bereich Nehmen wir an, wir wählen die Stadt Kapstadt als Beispiel für den lokalen Geltungsbereich und das Land Südafrika als globalen Geltungsbereich. Also Kapstadt im Allgemeinen, was eine Stadt ist, sodass eine Stadt ihre eigenen lokalen Mittel vom Bürgermeister erhalten kann, und das kann als Funktionsargument betrachtet werden. Nun, diese Mittel gehören nur dieser Stadt, und okay, sie haben keine Auswirkungen auf den Staatshaushalt. Wenn wir uns zum Beispiel ein Land ansehen, können wir uns vorstellen, dass das Land allen Städten einen Staatshaushalt zur Verfügung stellt und dass jede Stadt Zugriff auf diesen Haushalt hat, aber wenn eine Stadt ihn ändert, wirkt sich das infolgedessen auf das gesamte Land Hoffentlich hilft Ihnen diese Analogie dabei, lokale und globale Argumente ein bisschen besser zu verstehen Wir werden uns auf die praktische Übung zu diesem Thema konzentrieren. Es ist ein ziemlich einfach zu verstehendes Konzept. Ich könnte damit auch eine zusätzliche praktische Übung hinzufügen , aber das ist nur etwas, das ich in Bezug auf die Analogien erwähnen wollte in Bezug auf die Analogien 47. Den Umfang von Argumenten analysieren – [Lab]: Hallo zusammen und willkommen zur nächsten praktischen Laborübung, die sich auf lokale und globale Argumente konzentrieren wird lokale und globale Argumente Lassen Sie uns also anfangen. Zunächst wollen wir mit Global beginnen. Okay. Nun sind globale und lokale Argumente im Wesentlichen Teil der Arbeit mit Variablen. Wir würden also etwas, das als globale Variable bekannt ist, in Form von globalen Argumenten definieren . Wenn ich also eine Variable definieren und sagen würde, dass Name gleich ist, möchte ich sagen, dass dies als globale Variable angesehen werden kann Wenn wir weitermachen und es innerhalb unserer Funktion aufrufen. Wenn ich jetzt also eine Funktion definiere, dann ist das ganz einfach, ist das durch Def Grit definiert Die Funktion ist also Grit. Ich kann „Drucken“ sagen. Ich kann Hallo sagen. Und dann kann ich einfach Zeichenkettenverkettung verwenden und plus Name sagen, und das wird weitermachen und diese Variable, die Name ist, nehmen und sie direkt in meiner Funktion verwenden Und so können wir auf eine globale Variable zugreifen. Wenn wir dann die Funktion aufrufen, indem wir einfach grüßen, sagt sie Hallo und dann RNO Wenn ich jetzt weitermache und diesen Code ausführe, heißt es Hallo RNO So können wir also eine Absicherung vornehmen und eine globale Variable definieren die globale Variable kann also innerhalb einer Funktion zugegriffen werden, sofern sie nicht auf irgendeine Weise geändert wird. Lassen Sie mich Ihnen nun zeigen, wie eine lokale Variable ausgeführt wird. Also entfernen Sie das einfach hier und lassen Sie uns einige Anpassungen vornehmen. Okay. Wir können unsere Greet-Funktion vorerst beibehalten Und es war in unserer Funktion, wir können sagen, dass Nachricht gleich Hallo Und ich kann „Nachricht drucken“ sagen. Die Nachricht hier, es gibt eine Variable in meiner Funktion, die Nachricht sagt und der Wert ist Hello Honor und wir sagen Nachricht drucken. Also, wenn ich grüße, wird es Hallo ausgeben, auch nicht wegen des Prints, wie kann ich sagen, dass die Druckfunktion innerhalb der Funktion ist und wir diese Variable lokal innerhalb der Funktion verwenden lokal innerhalb der Funktion Es ist nicht draußen. Wenn ich also dieses Programm ausführen würde, würde es dasselbe Ergebnis bringen. Aber aus Gründen der Übersichtlichkeit kann ich das einfach ändern, damit Sie die Änderung tatsächlich sehen können. Hallo, John, es wird Hallo sagen, John. Aber wenn ich diese Nachricht ausgeben und außerhalb meiner Funktion darauf zugreifen wollte , wenn ich drucken würde, Nachricht. Sie werden hier sehen, dass, wenn ich sie markiere, steht, dass die Nachricht nicht definiert ist. Das meine ich also mit lokal und global. Das ist jetzt eine lokale Variable. Lokale Variablen existieren nur innerhalb der Funktion und können außerhalb nicht aufgerufen werden. Der Grund, warum wir hier mit „Nachricht drucken“ einen Bereich bekommen hier mit „Nachricht drucken“ liegt darin, dass die Nachrichtenvariable natürlich lokal ist. Stimmt. So können wir weitermachen und die Unterschiede in Bezug auf lokale und globale Argumente erkennen. Diese beziehen sich darauf , wo in einem bestimmten Programm auf eine Variable zugegriffen werden kann. Sie können den Unterschied darin sehen, wir haben global und wir haben lokal. Denken Sie daran, dass alles, was Sie innerhalb dieser Funktion als Variable definieren , in der Funktion bleibt. Alles , was nicht als Variable gilt, ist zum Beispiel überall zugänglich. Denken Sie daran, dass es einen gewissen Umfang gibt, in dem es verwendet werden kann und so weiter. Richtig. Das war's für diese praktische Laborübung. Ich weiß, es war ziemlich kurz und knapp, aber es ist ein ziemlich einfaches Thema , das Sie wirklich verstehen sollten. Aber wie dem auch sei, ich wollte es behandeln, also das ist so. 48. Verwendung des globalen Schlüsselworts – [Optionales Lab]: Hallo zusammen und willkommen zur nächsten praktischen Übung, die sich auf die Verwendung des globalen Schlüsselworts in Funktionen konzentrieren wird Verwendung des globalen Schlüsselworts in Funktionen Nun, das ist ein Bonus, sollte ich sagen, praktische Übung an der Lampe. Sie müssen es nicht tun, aber ich habe darüber nachgedacht und ich habe gesehen, dass es darüber nachgedacht und ich habe gesehen, dass hilfreich sein könnte, es hinzuzufügen, aber es ist definitiv etwas, das manchmal in PySON auf einem mittleren Spektrum auftaucht manchmal in PySON auf einem mittleren Spektrum Lassen Sie uns also einen Blick darauf werfen. Also das globale Schlüsselwort. Lassen Sie mich Ihnen standardmäßig zeigen, ob wir eine globale Variable nur zum Lesen verwenden möchten . Okay? Also, was ich damit meine , ist wie folgt. Wenn ich sagen würde, zählen ist gleich fünf, eine Zahl zum Beispiel Dann würde ich eine Funktion definieren und sagen, anzeigen, zählen. In meinem Dickdarm. Nehmen wir an, ich habe eine Print-Anweisung und sage count ist, und ich füge einfach count hinzu und rufe dann die Funktion auf, indem ich show count sage. Es wird diese Zeile ausführen, die besagt, dass count is ist und der Wert von count fünf ist . Das werden wir sehen, wenn wir diese Funktion aufrufen. Okay. Nun, das verwendet natürlich eine globale Variable, weil wir sie außerhalb referenzieren und wir sie innerhalb dieser Funktion verwenden können Lassen Sie mich weitermachen und diesen Code ausführen. Und es heißt, dass es fünf ist. Okay. Richtig. Das ist also dieser Teil. Jetzt wird das globale Schlüsselwort verwendet , wenn Sie Ihre Variable ändern möchten. Wenn wir also diesen Code ändern würden, sagen wir, ich möchte diesen Wert anpassen , der an diese Variable angehängt ist. Was ich tun kann, ist innerhalb der Funktion hier, ich kann sagen, global. Und das ist das Schlüsselwort, das wir brauchen. Und ich werde das an count anhängen, weil count als globale Variable behandelt wird, also sagen wir global count, und das ist notwendig, weil wir count explizit ändern. Und was wir tun wollen, ist inkrementieren. Wir wollen nur eins hinzufügen, also kann ich sagen, zählen, und Leerzeichen plus ist gleich Es nimmt also den aktuellen Wert und fügt ihm einen hinzu, um ihn anzuhängen Also wird es dann natürlich sein, wie kann ich sagen, dass es dann sechs sein werden. Okay. Also, was wir dann tun können, ist , die Anzahl jetzt anzuzeigen, und dann wird hier sechs ausgegeben. Okay? Das wird also die Anzahl sein, die wir hier in dieser Funktion angepasst haben. Wenn ich also diesen Code ausführen würde, können wir jetzt sehen, dass es sechs ist , was von dieser Funktion kommt. Also machten wir weiter und schnappten uns diese bestimmte Variable, fügten ihr eine hinzu und druckten das Ergebnis aus, indem wir diese globale Variable übernommen und angepasst Wenn wir also eine globale Variable innerhalb einer Funktion ändern und sie nicht nur lesen wollen eine globale Variable innerhalb einer , müssten wir dieses globale Schlüsselwort explizit angeben, und das ist der ganze Sinn davon, eine globale Variable innerhalb einer Funktion zu ändern, und das ist normalerweise eingeschränkt, wenn wir das nicht haben Also, wenn ich mich zum Beispiel dafür entscheide, es zu tun, ohne Global zu sagen, und ich nehme das einfach raus. Und sagen, zählen plus ist gleich eins und dann zählen, Sie werden sehen, wenn ich das starte, wird hier ein Fehler angezeigt. Ungebundener lokaler Fehler. Es behandelt dies jetzt gewissermaßen als lokale Variable , denn das ist die Annahme, weil wir hier im Spiel einige Anpassungen vornehmen Wir sagen nur, dass Zähl+Plus gleich Eins ist und es kann nicht lesen, woher diese Zählung kommt Aus diesem Grund müssten Sie weitermachen und die globale Anzahl explizit angeben, damit Sie weitermachen und die vorgesehene Ausgabe erhalten Ordnung, Leute. Das war's mit dieser Bonus-Übung. Also nur ein bisschen mehr zum gesamten globalen und lokalen Geltungsbereich. Also mach weiter und nimm das auf. In Ordnung. 49. Variablen als Argumente senden: Hallo zusammen und willkommen zur nächsten Lektion, die sich auf das Senden von Variablen als Argumente konzentrieren wird . Schauen wir uns das mal an. In Ordnung. Nun müssen Sie bei unseren Funktionsaufrufen nicht immer einen fest codierten Wert festlegen . Wir können stattdessen auch Variablen übergeben, es ist also ein sehr einfaches Konzept. Schauen wir uns also an, was wir zu Beginn des Kurses gemacht haben. Zuvor haben wir also unsere Funktionen definiert und einen Parameter festgelegt. Also zum Beispiel Name und dann das Argument direkt zu der Funktion hinzufügen , die wir aufrufen. In diesem Fall zum Beispiel Begrüßung. Wir übergeben no mit einem fest codierten Wert um dann den Parameter name zu ersetzen und gelangen dann in die Print-Anweisung, wo wir Hallo im Namen sagen , der dann nu sein wird Was Sie auch tun können, ist eine Variable außerhalb zu definieren. Sie können also ein Programm wie dieses erstellen, bei dem Sie lediglich eine Variable außerhalb Ihrer Funktion definieren und dann diesen Wert festlegen. Und anstatt nein direkt einzugeben, wie wir hier sehen können, übergeben wir einfach diese bestimmte Variable, die zuerst auf dem quadratischen Namen steht, die hier den Namen durch rno ersetzen wird Deshalb hatte ich den Kommentar dort, und er wird genau die gleichen Ergebnisse drucken Das ist also nur etwas, das ich erwähnen möchte , damit Sie sich dessen bewusst sind. Sie können Variablen einfach übergeben , solange Sie sie zuvor zugewiesen haben. Es wird dieselben Programme ausführen, dieselbe Ausgabe, genau ähnlich der, die ich Ihnen gerade hier auf der linken Seite gezeigt habe Ihnen gerade hier auf der linken Seite die fest codiert war. Nur etwas zu erwähnen, es ist sehr einfach und unkompliziert zu lernen und zu verstehen. Das ist einfach etwas, das wichtig ist und das sollten Sie meiner Meinung nach wissen, und so können wir Variablen als Argumente senden. 50. Arbeiten mit Variablen als Argumente – [Lab]: Hallo zusammen und willkommen zur nächsten praktischen Laborübung, die sich auf das Senden von Variablen als Argumente in Funktionen konzentrieren wird . Also lasst uns anfangen. Das wird also eine ziemlich einfache Übung sein, also wird sie nicht so umfangreich sein. Also lass uns weitermachen und einfach ein bisschen üben. Definieren wir also eine einfache Funktion. Ich werde taub grüßen. Ich möchte meinen Parameternamen als Namen festlegen. Dann möchte ich die folgende Anweisung ausgeben, die Hallo sagt, und dann können wir ein Komma hinzufügen und den Namen übergeben Wir sind es gewohnt, die Funktion aufzurufen und dann den Wert direkt hinzuzufügen Wir können zum Beispiel einfach eingeben, sagen wir, Katie führt den Code aus und es heißt Hallo Katie Nehmen wir nun an, wir wollen die Werte nicht direkt hinzufügen, sondern wir wollen sie zunächst einer Variablen zuweisen Sie können zum Beispiel Vorname sagen, und wir können weitermachen und das so einstellen, dass wir sagen, Katie Dann geben Sie hier, wo Sie Ihr Argument nennen, einfach den Vornamen Auch hier möchte ich das nur einrichten Wenn Sie jetzt Ihren Code ausführen , werden genau die gleichen Ergebnisse angezeigt. Nehmen wir an, Sie können weitermachen und Ihre Variablen als Argumente senden . Lass uns ein anderes Beispiel machen. Sag taub und ich sage hier, bevorzuge Getränk, ich werde hier die Erklärung ausdrucken lassen und ich werde sagen, dass ich gerne trinke Und wir werden etwas trinken. Dann kann ich draußen weitermachen und mein Lieblingsgetränk mit dem Unterstrich sagen , die Funktion aufrufen und dort einschalten, zum Beispiel Code ausführen Da steht, ich trinke gerne, okay. Lass uns weitermachen und das ändern. Definieren wir eine Variable außerhalb und setzen wir sie, da wir das sogar so sagen können, als ob Drink gleich ist Wir definieren es einfach hier und dann können wir das Getränk selbst durchgehen Das wird absichern und das ersetzen, was wir hier im Parameter haben, und wenn wir den Code ausführen würden, trinke ich auch gerne. Okay. Also das ist ein weiterer Weg, wie wir weitermachen und es tun können. Also, selbst wenn die Namen hier gesetzt sind, wird drink here die Variable hier berücksichtigen , drink here ersetzen, was ein Parameter ist, und das ist sehr wichtig, weil man manchmal auf Code und verschiedene Programme und Schach stößt Code und verschiedene Programme und , wo alles gleich bleibt, nur um das eigene Wissen zu testen. Denken Sie also daran, dass das Getränk hier ein Parameter ist, o, und der gibt diesen Wert aus. Drink hier ist eine Variable. Denken Sie daran, dass Sie beim Markieren Variablen und Parameter sehen können. Behalte das im Hinterkopf. Aber was Sie tun können, um zu unterscheiden, vor allem, wenn Sie gerade erst anfangen, können Sie klar zwischen den beiden unterscheiden , sodass Sie wissen, dass das meine Variablen sind, das sind meine Parameter. Natürlich auch, wenn ich renne und gerne Tee trinke. Das ist nur ein bisschen mehr Übung Argumente als unsere Argumente zu senden. Das ist Teil dieser Übung. 51. Parameter durch Wert oder Referenz übergeben: Hallo zusammen und willkommen zur nächsten Lektion, die sich mit der Parameterübergabe per Wert oder Referenz befassen wird. Schauen wir uns das mal an. Ordnung. Wenn Sie nun eine Variable an eine Funktion übergeben, behandelt Pyson sie auf eine von zwei Arten Als Wert übergeben oder als Referenz übergeben. Schauen wir uns nun jeden dieser Punkte an, beginnend mit der Übergabe nach Wert. Bei Übergabe nach Wert erhält die Funktion nun eine Kopie der ursprünglichen Variablen, und Änderungen innerhalb der Funktion wirken sich nicht auf die ursprüngliche Variable aus. Das funktioniert jetzt für unveränderliche Datentypen, und dafür haben wir int, also Integer, Float, SDR, für String und Tuple also sehr wichtig , sich daran zu erinnern , dass, wenn Sie einen Wert übergeben, dies für unveränderliche Datentypen und notwendigerweise für diese vier Datentypen funktioniert und notwendigerweise für diese Dann haben wir Pass by Reference. In diesem Fall erhält die Funktion nun eine Referenz oder eine Speicheradresse dieser Variablen, und alle Änderungen innerhalb der Funktion wirken sich auf die ursprüngliche Variable aus, die definiert wurde. Dies funktioniert jetzt für unveränderliche Datentypen, nicht für unveränderliche, sondern für veränderbare Datentypen, die eine Liste, ein Diktat und einen Satz enthalten Diktat Das wäre im Sinne der Weitergabe von Bezugnahme. Leute. Das war's für den theoretischen Überblick. Lassen Sie uns weitermachen und uns mit dem Praktischen befassen. 52. Entdecke Parameterwerte und Referenzen – [Lab]: Hallo zusammen und willkommen zur nächsten praktischen Laborübung, die sich auf die Weitergabe von Parametern als Wert oder Referenz konzentrieren wird. Als Erstes werden wir uns also auf die Übergabe von Werten konzentrieren, wobei wir uns auf unveränderliche Datentypen wie Ganzzahlen und Zeichenketten konzentrieren werden wie Ganzzahlen und Also unveränderlich, was bedeutet, dass der Wert nicht mehr geändert wenn er einmal eingerichtet, übergeben und zugewiesen wurde. Okay, also lass uns anfangen. Also, was ich tun möchte, ist eine Funktion zu definieren. Ich sage Def, ändere die Unterstrichnummer. Das wird mein Funktionsname sein. Dann möchte ich X übergeben oder X als meinen Parameter setzen. Dann sage ich Drucken. Und ich werde etwas Text hinzufügen, innerhalb der Funktion steht, Doppelpunkt. Dann füge ich Leerzeichen, Komma und dann X hinzu. Dann möchte ich meine Funktion aufrufen und sagen, Unterstrichnummer ändern. Und was ich tun werde, ist fest codierte Werte zu übergeben Ich werde zum Beispiel fünf sagen. Wenn ich dann diesen Code ausführe, heißt es in Funktion fünf. Wir können also sehen, dass dieses Argument übergeben wurde und X ersetzt Dann wurde X gesammelt und der Druckfunktion hier hinzugefügt, und ich gebe am Ende fünf aus. Großartig. Lassen Sie uns nun weitermachen und dies vorerst als Variable festlegen. Setze num gleich fünf, und jetzt übergebe ich Ich werde hier eine Variable als Argument an eine Variable übergeben hier , um den Parameter zu ersetzen Jetzt kann ich weitermachen und den Code in Funktion fünf ausführen und wir können sehen , dass er so übergeben wurde, wie er hätte sein sollen Perfekt. Hier kommt der interessante Teil ins Spiel. Nehmen wir zum Beispiel an, ich gehe zu meiner Funktion über und sage, dass X jetzt zehn sein wird. Ich denke bei dir darüber nach, was passieren wird. Denkt daran, was ich gesagt habe: Unveränderlich, keine Veränderung. Wenn ich also weitermachen und das einrichten und den Code ausführen würde , würde da zehn Nun, was hier passiert, ist der numerische Wert , der hier gesetzt wird ist, wie kann ich sagen, dass er an den Parameter X übergeben wird, aber dann definieren wir X neu und setzen ihn auf Zehn Der Wert, der in der lokalen Funktion beibehalten wird, ist also immer zehn Nun, der Teil, den ich in unveränderlich erwähnen werde , ist, dass das Original unverändert bleiben wird Was ich damit meine , ist, wenn ich „ Drucken“ sage und die Seitenfunktion verlasse und dann weitermache und „Num“ sage, und dann weitermache und „Num“ sage dann wirst du sehen, dass sich die äußere Funktion nicht ändert Das wird also unveränderlich sein, also ändert es sich von außen nicht, egal was wir hier tun war in der Funktion selbst lokal Es wird sich nichts ändern. Außerhalb der Funktion hat es also keine Auswirkung auf Num. Das ist also unveränderlich. Nun, wenn wir das so einrichten würden , dass es veränderbar wäre, die Änderungen von außen beeinflusst werden Was wir tun können, ist , dies zum Beispiel mit einer Liste zu testen zum Beispiel mit einer Liste Jetzt werde ich Ihnen zeigen , wie wir anhand von Bezugnahme auf den veränderlichen Typ übergeben können Also lass uns das jetzt machen. Das Wichtigste dabei ist also , dass es sich außerhalb des Num-Werts nicht geändert hat , unabhängig davon , welche Anpassung wir an der Funktion vorgenommen haben , es hat sich nicht geändert Lassen Sie mich Ihnen also zeigen , wo es sich durch einen veränderbaren Typ wie eine Liste ändern wird sich durch einen veränderbaren Typ wie eine Die Änderungen werden sich also auf das ursprüngliche Ergebnis auswirken. Lassen Sie mich weitermachen und eine neue Funktion definieren, def ad für das Score-Objekt, und ich werde den Parameter als meine Liste festlegen Okay, was ich jetzt tun werde , ist, dass ich nur sagen werde, dass die Funktion innerhalb der Funktion druckt Con, dann werde ich meine Punkteliste haben und wir wollen nur das Komma hinzufügen Dann wollen wir diese spezielle Funktion aufrufen, aber wir müssen einige Informationen zu einer Liste hinzufügen Also sage ich Zahlen, gleich, und ich sage eins , zwei, drei Dann sehen wir unter dem Quadrat „Punkt hinzufügen und wir sagen Zahlen Also werden wir diese spezielle Liste hier zu meiner Liste hier weiterleiten , und dann wird es einfach weitermachen und ausgeben, was innerhalb der Funktion ausgeführt wird. Also können wir weitermachen und das jetzt ausführen, es steht in den Funktionen eins, zwei, drei. Das ist genau das, was wir bestehen. Ich möchte dir auch zeigen, was es draußen zeigt. Also, wenn ich Druck sage, Außenfunktion. Und wenn ich Zahlen sagen würde, Innenfunktion eins, zwei, drei, Außenfunktion eins, zwei, drei. Lassen Sie mich also weitermachen und die ursprüngliche Liste innerhalb der Funktion ändern. Ich kann also meine Liste abrufen, die ich hier aus dem Parameter hole, dem ein Wert in Zahlen wie eins, zwei, drei zugewiesen wurde, und ich kann sie an diese Liste anhängen , zum Beispiel kann ich eine Stiftmethode verwenden, also kann ich Punktstift sagen und vier durchgehen Das bedeutet also, dass sich die Funktion jetzt auf eins, zwei, drei, vier ändern wird, aber wir wollen sehen, ob sie sich außerhalb ändert. Wenn ich das jetzt ausführe, G bis drei, da die interne Funktion jetzt 1234 und die externe Funktion 1234 ist. Also, obwohl wir diese Liste innerhalb der Funktion einrichten, wird sie auch externe Konsequenzen haben. Mit anderen Worten, wie Sie sehen können, wird die Liste außerhalb der Funktion geändert. So war es auch in der Funktion. Das macht es also veränderbar. Änderungen wirken sich also auf das Original aus. Das Original war also Nummer eins, zwei, drei. Wie wir schon gesagt haben und uns das Ende angesehen haben, konnte man es nicht ändern, weil es unveränderlich ist. In Ordnung. Hoffentlich erhalten Sie dadurch ein gutes Verständnis dafür, was ich mit veränderbar, unveränderlich meine , was Veränderungen angeht und wie sie alle ins Spiel kommen werden Richtig. Lassen Sie uns nun noch ein paar Beispiele machen. Okay, der nächste, den ich machen möchte, wird diesmal ein unveränderlicher Typ sein Es bedeutet also keine Änderung, und das wird eine Zeichenfolge sein Also sage ich taub, ändern, Text unterstreichen, nur eine Funktion Ich werde Text durchgehen. Und ich werde vorerst sagen, Print-Side-Funktion. Text. Dann kann ich sagen, ändern, Text unterstreichen Und was ich jetzt tun werde, ist einfach Hallo zu sagen. Okay, da haben wir's. Das sind die Grundlagen. Lassen Sie uns nun eine Variable zuweisen. Ich sage Nachricht. Hallo. Jetzt werde ich eine Variable über das Argument durchgehen. Lass das jetzt laufen. Hallo. Gut. Ich mache das schrittweise, sodass Sie aus jedem Teil lernen können , wie ich das alles einrichte Jetzt funktioniert das Äußere, also werde ich zuerst sagen: Drucken, Außenfunktion Und das wird eine Botschaft sein. Jetzt möchte ich ein Update machen , das in der Funktion enthalten war, aber bevor ich das mache, lassen Sie mich diesen Code einfach noch einmal ausführen. Sie können also die innere Funktion, hallo, externe Funktion, hallo sehen . Nun, wenn ich hier in der lokalen Funktion eine Änderung vornehmen und sagen würde : Okay, Text heißt jetzt auf Wiedersehen. Also wird es sich jetzt abschotten und auf Wiedersehen sagen. Das wird also die Änderung sein, und ich mache weiter und führe diesen Code aus. Sie werden sehen, dass es in der internen Funktion „ Auf Wiedersehen heißt und draußen heißt es „Hallo“. Sie können also sehen, dass sich der Text innerhalb der Funktion ändert, und das Original, das wir hier hatten, bleibt natürlich unverändert und es gibt keinerlei Auswirkungen oder Änderungen daran. Sie können hier also sehen, dass es einen Unterschied in der Art gibt. Gretch. Reich. Lassen Sie uns jetzt weitermachen und noch einmal anhand der Referenz weitermachen. Also veränderbarer Typ, und eines davon ist ein Wörterbuch. Das ist ein veränderbarer Typ. Lassen Sie uns also weitermachen und unsere Funktionen definieren. Ich sage Def, aktualisiere es unter dem Diktat der Schule. Und wir können einfach weitermachen und die Parenen definieren und wir können hier eingeben, wir können weitermachen und den Primeter von M dict für mein Wörterbuch eingeben den Primeter von M dict Dann können wir vorerst Drucken sagen und ich möchte Innenfunktion, Doppelpunkt sagen, und wir werden mein Diktat durchgehen Jetzt möchte ich auf Update Dict verweisen und weitermachen und das vorerst offen lassen, die Klammern und dann kann ich ein Wörterbuch definieren Ich sage Person, ist gleich, und ich stelle hier den Schlüsselwert ein, die Schlüsselwertpaare, die Schlüsselwertpaare, Ich sage Name Colon Alice. Wollte ich das durchmachen. Also werde ich Person sagen, und Person wird mein Diktat ersetzen, und es wird interne Funktion sagen, und dann wird mein Diktat Person sein, was den Namen Alice innerhalb der Funktion anzeigt Lassen Sie uns das ausführen. Interne Funktion, Name Alice. Perfekt. Gut, dann nehmen wir unsere Anpassungen vor. Also externe Funktion, ich sage Druck, externe Funktion. C auf Leertaste. Ich habe eine Person. Ich sehe, drinnen und draußen ist es dasselbe , weil wir keine Anpassung vorgenommen haben. Die Funktionalität der Print-Anweisung besteht nur darin, von außerhalb meines Codes zu lesen. Lassen Sie mich weitermachen und innerhalb der Funktion selbst einen Unterschied machen und meinen Underscoreject sagen . Hier füge ich ein neues Schlüssel-Wert-Paar Ich werde das Alter festlegen und ich werde es auf 28 setzen. Jetzt wird dem Namen Alice ein neues Schlüssel-Wert-Paar hinzugefügt. Wir werden auch das Alter und 28 Jahre haben und das wird die innere Funktion anpassen und verändern , und dieses Ergebnis wird sich auch auf das auswirken, was wir auf der äußeren Funktion sehen. Lassen Sie mich also weitermachen und den Code ausführen. Und los geht's, wir können sehen, dass diese Änderung, wie Sie sehen können, veränderbar ist . Änderungen nach Änderungen wirken sich auf das Original Also Person, die Liste der Personen wurde geändert. Wie wir außerhalb der Funktion sehen können, hat sie sich auch geändert. In Ordnung, da haben wir es also. So können Sie Wert und Referenz übergeben und den Unterschied zwischen veränderlichen und veränderlichen Typen Denken Sie daran, dass sich veränderbare Änderungen auf das Original auswirken und unveränderliche Änderungen sich nicht Ordnung. Also da haben wir es. 53. Der Sternchen-Operator: Hallo zusammen und willkommen zur nächsten Lektion, die sich auf den Asterix-Operator konzentrieren wird Lassen Sie uns also weitermachen und einen Blick darauf werfen. Richtig, Asterix-Operator. Wie wir sehen können, ist der Asterix-Operator, der mit einem Asterix bezeichnet wird, ein spezieller Operator, der je nachdem, wo und wie er verwendet wird, unterschiedliche Verwendungszwecke hat und wie er verwendet wird, unterschiedliche Verwendungszwecke Nun, in diesem Kurs, und wenn Sie schon einmal einen anfängerfreundlichen PySON-Kurs gemacht haben , haben Sie diesen Operator vielleicht gesehen , wenn Sie zum Beispiel multiplizieren und so, und wir haben auch ein bisschen mehr in Bezug auf Arcs und Quarks gelernt bisschen mehr in Bezug auf Arcs und , wie wir diesen Operator verwenden können. Aber ich möchte Ihnen nur ein paar weitere Anwendungsfälle und die Szenarien geben, wo und wie es verwendet wird usw. Lassen Sie uns also weitermachen und eintauchen. Jetzt gebe ich Ihnen nur eine Liste der gängigsten Methoden. Also hier sind die gängigsten auf einfache Weise. Wir können Asterix also für die Multiplikation verwenden, also in der Mathematik können wir es zum Beispiel beim Packen mit Listen und Tupeln verwenden Packen mit Listen und Tupeln Kann Asterix-Bögen für mehrere Funktionsargumente verwenden. Wir können doppelte Asterix-Quarks für benannte Argumente in Funktionen verwenden und wir können ein einzelnes Asterix und ein doppeltes Asterix verwenden, um Listen und Wörterbücher an Funktionen zu übergeben. Wie Sie sehen können, gibt es viele Anwendungsfälle, in denen wir Asterixe verwenden können. Richtig. Ich wollte dir nur einen kleinen Überblick geben, damit du einen Überblick hast Wir werden eine Übung über den Asterix-Operator machen, die ein bisschen vielfältiger und integrierter sein wird, nur um etwas zu üben und Aber das ist alles, was ich zum Asterix-Operator erwähnen wollte Asterix-Operator 54. Den Sternchen-Operator verwenden – Teil 1 - [Labor]: Hallo, alle zusammen. Und willkommen zur nächsten praktischen Laborübung, die sich darauf konzentrieren wird, den Asterix-Operator auf mehrere Anwendungsfälle in Pyson anzuwenden den Asterix-Operator auf mehrere Anwendungsfälle in Pyson Jetzt stehen natürlich unendlich viele Anwendungsfälle zur Verfügung. Ich werde jedoch auf die meisten der häufigsten Fälle eingehen , mit denen Sie konfrontiert werden, und ich werde auch ein oder zwei zusätzliche Singles hinzufügen zusätzliche Bonusinhalte angeht , die ein bisschen abwegig sind. Lassen Sie uns also anfangen. Zuallererst der häufigste Anwendungsfall in der Mathematik die Multiplikation Wir können also zum Beispiel sagen, Ergebnis ist gleich, und ich kann sagen, vier multipliziert oder das ist der Asterix In der Mathematik bedeutet das Asterix-Symbol also Multiplikator. Ich kann sagen Druck, Ergebnis. Und ich kriege acht. Großartig. Gehen wir jetzt noch ein bisschen weiter. Nehmen wir an, ich habe Zahl eins gleich sagen wir vier, Nummer zwei, fünf. Dann kann ich einfach sagen, dass das Endergebnis gleich Nummer eins ist und mit Zahl zwei multipliziert wird Und lassen Sie uns weitermachen und das Endergebnis ausdrucken. Und es ist 20 gelaufen. Okay, das ist eine andere Art, wie wir es machen können. Was wir auch tun können, ist, es auf Ergebnisbasis zu tun , um ein Endergebnis zu erhalten. Was ich hier sagen kann, ist das erste Ergebnis, und das bedeutet vier multipliziert mit vier Ergebnis zwei wird drei multipliziert mit drei ergeben, und dann wird das Endergebnis im Wesentlichen Ergebnis eins sein und es dann erneut mit Ergebnis zwei multiplizieren Also werden wir dieses Ergebnis erhalten und es in dieser Variablen speichern, Ergebnis eins Wir werden dieses Ergebnis erhalten und es in der Variablen Ergebnis zwei speichern . Dann erhalten wir eine weitere Variable und multiplizieren die Ergebnisse mit dem, was wir dort haben. Speichern Sie das und führen Sie den Code aus. Oh, ich muss Drucken sagen, entschuldigen Sie mich. Druck, Endergebnis. Und wir bekommen 144. So können wir uns also auf Kopf stellen und es mit Mathematik zur Multiplikation von Zahlen machen zur Multiplikation von Zahlen Was wir auch tun können, ist, dass wir Zeichenketten und Listen wiederholen können Wenn ich zum Beispiel sage, dass Text gleich hoch ist, John. Draußen kann ich das Sternchen hinzufügen und drei sagen. Dann kann ich „Text drucken“ sagen. Wenn ich jetzt diesen Code ausführe, heißt es: Hi, John, hi, John. Hallo, John. Okay. Das ist es also, was wir in dieser Hinsicht tun können. Was ich nun tun möchte, ist dort tatsächlich ein Leerzeichen hinzuzufügen . Los geht's. Hallo John, Hijohn, jetzt ist es etwas klarer zu sehen. Und es wird es einfach mit drei multiplizieren. Nun, da wir mit Zeichenketten arbeiten, wird es das nur dreimal wiederholen. So bezieht sich dieses Sternchen auf Zeichenketten. Im Gegensatz zu Zahlen wird es die Funktionalität tatsächlich selbst in Form der rohen Multiplikation ausführen Funktionalität tatsächlich selbst in Form der rohen Multiplikation Jetzt können wir das tatsächlich anpassen. Text eins ist also hoch. Der zweite ist John Doe. Und wir können sagen, dass das Endergebnis gleich ist. Und was ich hier tun werde, ist mal zwei mal zwei zu sagen. Und dann sage ich Text eins plus Text zwei. Wir verwenden hier also die Verkettung von Zeichenketten, und das wird gut funktionieren, und das wird gut funktionieren weil wir es derzeit mit Zeichenketten zu tun Text eins wird also das Ergebnis von High High mal zwei haben , und dann John Doe, John Doe Und dann kombinieren wir einfach beide miteinander. Und wir können das einfach ausdrucken, also kann ich sagen, das Endergebnis drucken und diesen Code ausführen. Hoch, hoch, Jon Do, Jon. So können wir also mit wiederholten Zeichenketten umgehen. Stimmt. Jetzt können wir auch mit wiederholten Listen arbeiten. Wenn ich also sage, dass Zahlen gleich sind und in meiner Liste eins, zwei, ich kann sagen mal drei, dann drucke die Liste aus und du wirst feststellen, dass sie eins, zwei, eins, zwei, eins, eins, zwei hat zwei, eins, zwei, eins, eins, zwei Anstatt also drei separate Listen zu erstellen , wird das, was in der Liste steht, dreimal geändert und es trotzdem in einer einzigen Liste belassen, wie wir hier sehen können Das ist es also, was die Multiplikation für Sie tun wird. Nun, wir können das ein bisschen komplexer machen , sollte ich sagen? Wir können Zahlen zwei haben und lassen Sie uns hier zum Beispiel einfach vier, fünf mal zwei angeben. Und dann können wir wieder sagen, das Endergebnis ist gleich. Und da wir es mit einer Liste zu tun haben, müssen wir sie zuerst in eine Zeichenfolge umwandeln, sodass wir SDR, Zahlen plus sagen können, also führen wir eine Zeichenkettenverkettung durch, eine Zeichenkette umwandeln, Zahlen zwei Und wenn wir jetzt das Endergebnis drucken würden, hätten wir eins, zwei, eins, zwei, vier, fünf, vier, fünf Jetzt können wir sehen, dass alles zusammen hier ist, aber in diesem Fall ist es getrennt. Wenn Sie also die Zeichenkettenverkettung zwischen den beiden Listen verwenden , werden Sie feststellen, dass sie in diesem Fall getrennt sein wird Also anders als wenn du es alleine machst. Wenn ich also Zahlen drucken würde, wie Sie vorhin gesehen haben, und ich habe dieses Ergebnis, würde es multiplizieren und addieren. Nun, in diesem Fall multiplizieren drei, also würde es eins, zwei, eins, zwei und eins, zwei, drei Mal anzeigen zwei, eins, zwei und eins, zwei, drei Mal Wenn wir eine String-Verkettung an ihm durchführen würden, würde das passieren, dass es sich in seine beiden Entitäten aufteilt und dass es seine verschiedenen Funktionen in seiner eigenen Liste ausführt. Richtig. Also da haben wir das. Also Multiplikation und Masse, Wiederholung von Zeichenketten und weniger fertig Richtig, als Nächstes werden Listen und Tupel ausgepackt. Das ist also ziemlich einfach. Also viele Dinge, die wir jetzt auch sehen werden , haben wir auch behandelt, also wird es auch für Sie eine nette Überarbeitung sein. Nehmen wir an, ich habe ein paar Zahlen und ich habe eins, zwei, eins, drei und vier. Okay. Nehmen wir an, ich sage drucken, und wir können das Sternchen hinzufügen, und das wird unsere Liste für uns entpacken Also werde ich Zahlen sagen. Also denk dran, wenn du deine Liste auspackst, fügst du ein einzelnes Sternchen hinzu Und wir können weitermachen und Code ausführen sagen, und wir haben eins, drei Das gilt nun auch, wenn Sie mit Tupeln arbeiten Wenn ich das also schrittweise auf Tupel umstelle, füge den Singular, den Singularstern hinzu, entschuldigen Sie mich und Es wird auch dasselbe zurückgeben . So würden Sie also Ihre Listen und Tupel auspacken. also Ihre Listenelemente vom Drucken oder Übergeben auf Funktionen erweitern , wird es hier wirklich nützlich sein Nehmen wir nun an, ich möchte mehrere Argumente mit der Asterix-Argumentationsnotation sammeln mit der Asterix-Argumentationsnotation Um dieses Ziel zu erreichen, können wir also eine Funktion erstellen, also möchte ich sagen, dass Tod Zahlen zeigt, und ich werde Rx-Dolon eingeben und Bögen Dann möchte ich meine Funktion aufrufen, und ich werde einfach weitermachen und sie in eins, zwei und Und das alles wird innerhalb des args-Parameters zusammengefügt und es wird hier in args ohne dieses Sternchen ausgegeben Auf diese Weise können wir es auch in einer Funktionsperspektive mit Bögen verwenden Also können wir weitermachen und den Code ausführen. Wir haben eins, zwei, drei, und dieses Mal ist es in einem Tupelformat, damit Sie sehen können, wie es ausgegeben wurde Richtig. So können wir das also machen. So können wir die mehreren Argumente nehmen und sie als Tupel speichern Jetzt können wir auch Schlüsselwortargumente sammeln und sie mithilfe von Quarks als Wörterbuch speichern mithilfe von Quarks als Wörterbuch Also können wir das entfernen und Deaf, Show, Underscore Info sagen Deaf, Show, Underscore Und hier kann ich einfach Quarks und im Doppelpunkt sagen und mich daran erinnern, wenn ich print sage, Quarks, und dann wollen wir unsere Funktion aufrufen Also sagen wir Informationen anzeigen und unterstreichen, und innerhalb der Klammern können wir weitermachen und weitermachen Denken Sie daran, dieses Mal Schlüsselwortargumente , da Sie mit Autoquarks arbeiten, werde ich sagen, Name ist gleich, nein, und wir können sagen, Alter ist gleich, und wir können weitermachen und sagen, nehmen wir 29, und wir können weitermachen und sagen, nehmen wir 29, und wir können weitermachen und Dort sehen wir die Wörterbuchausgabe. Wir haben also den Namen Ehrenschlüssel und den Altersschlüssel 29. Also da haben wir es. So können wir es auch mit Quarks verwenden. Hier haben wir also doppelte Sternchen , die wir anwenden müssen. Großartig. Nun, die nächste Sache ist etwas ganz Neues , das wir uns noch nicht angesehen haben. So können wir mit dem Sternchen auspacken. Und zum Beispiel, wenn wir Mittelwerte in der Liste überspringen wollen , zum Beispiel Wenn ich also zuerst sagen würde und ich meinen Stern für die Mitte hinzufügen könnte, dann könnte ich zuletzt hinzufügen Ich kann das einer Liste zuordnen, die eins, zwei, drei, vier und fünf enthält zwei, drei, vier und Wenn ich nun jede dieser Variablen ausdrucken würde, die erste, die mittlere und die letzte, würden erste, die mittlere und die letzte, Sie sehen, was ausgegeben wird. Wenn ich zuerst drucken, drucken sage und Mitte, Druck, zuletzt sagen möchte. Es läuft das. Wir werden sehen , dass wir einen haben, und dann haben wir zwei, drei, vier und fünf. Dieser Asterix, der hier auf die Mitte angewendet wird , sammelt alle Mittelwerte Wenn du hier nachschaust, ist eins das erste S, fünf ist das Ende, zwei, drei und vier werden in der Mitte sein Es sammelt alle mittleren Werte der Liste, wobei der erste und der letzte als separate Variablen übrig bleiben, und dann, wie wir beim Drucken sehen können, werden sie in einer Liste selbst stehen werden sie in einer Liste und die einzelnen Zahlen hier, in diesem Fall sind es nur ganze Zahlen So können wir also mit dem Sternchen in einem bestimmten Kontext wie diesem auspacken dem Sternchen in einem bestimmten Kontext Richtig. Lassen Sie uns jetzt weitermachen und das bis zum Schluss anwenden. Und wir führen das durch. Jetzt können wir hier den ersten Wert sehen, eins und Mitte, der sich über zwei erstreckt. Die letzte Option hier schreibt nun vor, dass es drei, vier und fünf sein wird Es wird hier ein bisschen anders sein, wenn Sie dies für die letzte Option hier einstellen Es wird sich ein bisschen ändern. Es wird mit den letzten Werten weitergehen und es wird dauern, bis die ersten beiden zugewiesen wurden, könnte man sagen. Technisch gesehen würde man sagen, dass es mit einem gepaart wird. mittlere Wert würde natürlich mit dem nächsten verknüpft werden und der letzte ist natürlich der letzte Satz von Werten in einer Liste. Richtig. Lassen Sie uns als Nächstes die Listen zusammenführen, und wir werden sicherstellen, dass wir sie auch in einer Liste auspacken. Also sage ich zum Beispiel, dass Liste eins gleich ist, und innerhalb der Liste habe ich eins, zwei, Liste zwei, wir werden drei, vier haben, und dann können wir sie zusammenführen Also werde ich sagen, zusammenführen ist gleich, und wir würden hier eine Art von Liste erstellen, Sie würden sagen, Ihren arithmetischen Operator hinzufügen, und Sie können Liste eins sagen und dann den arithmetischen Operator hinzufügen und Liste zwei sagen. Und wenn Sie dann weitermachen und zusammengeführt drucken , werden Sie sehen, dass alles zu einer Liste zusammengeführt wurde dieser Asterix vor der Liste, Wie Sie sehen können, wird dieser Asterix vor der Liste, getrennt durch das Komma in einer Liste, die Liste für Sie zu einer Liste zusammenführen So kannst du deine Liste zusammenführen und sie dann am Ende hier in einer Liste auspacken, sie dann am Ende hier in einer Liste auspacken, sodass alles in einer ist Okay. So können Sie Ihre Liste ganz einfach kombinieren. Nehmen wir an, Sie möchten Wörterbücher zusammenführen. Sie würden natürlich auch den gleichen Vorgang ausführen Es ist jedoch nur ein bisschen anders. Sie müssten diesmal zwei Sternchen anstelle von einem hinzufügen , um Wörterbücher zusammenzuführen Lassen Sie mich also weitermachen und Diktat eins sagen. Und hier werde ich natürlich einen Schlüssel zuweisen, also A ist natürlich eins, gestorben zwei Wir werden B haben und das können wir auf zwei setzen. Dann können wir sagen, zusammengeführt ist gleich, und innerhalb von Klammern können wir einfach doppelte Sternchen einfügen und jct eins, komma , dict zwei sagen Und wenn wir nun „Drucken“ sagen und Sie „ zusammengeführt“ sagen , erhalten wir A eins, B zwei, sodass wir sehen können, dass das zu einem Wörterbuch zusammengeführt wurde, also haben wir hier zwei Schlüssel-Wert-Paare also Also zwei Instanzen. Also A eins und B zwei wurden ausgegeben. So können wir also Wörterbücher zusammenführen. Also denk dran. Wenn Sie eine Liste zusammenführen möchten, die nicht in eckigen Klammern steht, verwenden Sie nur ein Sternchen für die Zusammenführung mit einem Wörterbuch, Sie erhalten Denken Sie also an diesen wichtigen Unterschied, wenn H. Als Nächstes wollen wir zum Beispiel unsere Listen oder Tupel an Funktionen übergeben zum Beispiel unsere Listen oder Tupel an Funktionen Das ist etwas, das wir uns jetzt ansehen wollen. Nehmen wir an, wir möchten weitermachen und Werte hinzufügen, zum Beispiel in unseren Funktionen. Wenn ich D sage, addiere und wir erwarten A und B, und wir sagen, gib A plus B zurück. Was wir tun können, ist, die Werte in einem Tupel zu setzen Also sage ich Nums, wenn Zahlen gleich sind, und in einem Tup sage ich drei Dann sage ich Drucken. Und in diesem Fall beziehe ich mich auf Ich nenne diese Funktion hier add. Ich habe die Print-Anweisung draußen, anstatt die Return-Anweisung drinnen zu verwenden. Ich kann dann weitermachen und einfach durchgehen und Nums sagen, und das wird automatisch weitergehen und so assoziieren, dass A drei und B fünf ist , da es auf Positionsargumenten basiert, da wir nur mit einem singulären Sternchen arbeiten Jetzt können wir also weitermachen und Code ausführen sagen, und es gibt acht Aber was ich hier der Einfachheit halber tun kann, kann ich einfach sagen, Nums hinzufügen. Und wir wollen nicht zurückkehren Wir können einfach „Drucken“ sagen, und ich sage „A plus“, sagen wir, das Endergebnis ist gleich A plus B, und dann möchte ich das Endergebnis drucken Okay, du kannst es also auch so machen. Also wird es weitergehen und das gleiche Ergebnis erzielen. Also nur eine andere Art, es zu tun. So können wir zum Beispiel eine Liste oder ein Tupel an eine Funktion übergeben zum Beispiel eine Liste oder ein Tupel an eine Funktion Nehmen wir nun an, wir machen weiter und machen das mit einem Tupel. Lassen Sie uns also weitermachen und es so einrichten. Aber dieses Mal werde ich es nicht mit der Masse hier machen. Ich werde nur einige Verbindungen auf eine bestimmte Art und Weise machen, also lassen Sie uns das schließen und uns auf die Liste konzentrieren. 55. Den Sternchen-Operator verwenden – Teil 2 - [Labor]: Richtig. Wir können also unsere Funktion definieren, sagen wir def ad und wir haben A und B. Dann möchte ich print sagen, A und B. Dann definiere ich meine Wörterbücher, ich sage Wörter Und hier in der Liste sage ich Hallo, Anzeige im Kommabereich und dann ein Komma für den nächsten Teil , der Welt sein wird Dann kann ich die Funktion „Hinzufügen“ aufrufen, und dann müssen wir hier ein einzelnes Sternchen hinzufügen und wir können Wörter sagen. Also werden wir die Schlüsselwertpaare des Wörterbuchs an AB weiterleiten Schlüsselwertpaare des Wörterbuchs und dann AB drucken Wenn wir dann diesen Code ausführen, brauchen wir Hello World. So können wir weitermachen und die Liste an unsere Funktionen weitergeben . Jetzt wollen wir lernen, wie wir Wörterbücher an Funktionen übergeben können , also machen wir das Oder überarbeiten, sollte ich sagen? Also sage ich DF, create. Name und Alter als meine Parameter. Dann sage ich Drucken. Dieses Mal werde ich F-Strings verwenden und hier Platzhalter verwenden Ich werde einen Namen haben und dann sagen wir, dass er Jahre alt ist. Dann kann ich meine Daten für das Wörterbuch angeben. Hier werde ich einfach den Namen sagen. Doppelpunkt, nein, und dann Komma und dann Alter, Doppelpunkt und dann 29. Dann kann ich die GET-Funktion aufrufen und Folgendes durchgehen, was für das Wörterbuch hier ein doppeltes Sternchen sein wird Jetzt können wir diesen Code ausführen und wir werden 29 Jahre alt. Also habe ich meine Funktion hier definiert. Ich verwende eine F-Zeichenfolge, die als Platzhalter für die eingehenden Werte dient Die Daten hier sind also ein Wörterbuch. Wir geben hier das Wörterbuch an die Parameter Name und Alter weiter und drucken im Grunde nur aus, wie die Werte gesetzt wurden, wie Name und Alter. Und um diese Daten dann aus dem Wörterbuch in unsere Funktion zu übernehmen, fügen wir doppelte Sternchen hinzu, um sie entsprechend zu ersetzen Reich. So können wir also weitermachen und das auch in Gang bringen. Perfekt. Richtig. So können wir also anfangen und das alles einrichten. Nun, eine weitere Sache, die ich Ihnen auch zeigen möchte , ist, wie Sie das Sternchen verwenden können , um Werte zu ignorieren, oder ob Sie auch mehrere Werte überspringen möchten, und das kann auch tangential mit einem Unterstrich funktionieren tangential mit einem Unterstrich Richtig, nehmen wir an, wir wollen nur das erste Element in der Liste extrahieren Was wir zum Beispiel tun können, ist A zu sagen, und dann würden wir das Sternchen mit dem Unterstrich hinzufügen und Nehmen wir an, wir haben in der Liste zehn, 20, 30 und 40. Wir würden sagen, drucken Sie A und es gibt zehn aus. Was hier passiert , ist, dass A dem ersten Element in der Liste zugeordnet wird dem ersten Element in der Liste zugeordnet und die kombinierte Verwendung von Sternchen und Unterstrich alle zusätzlichen Werte ignoriert , die hier verfügbar sind Okay. Was wir auch tun können, ist vielleicht die ersten beiden Elemente zu extrahieren. zu tun , können wir einfach sagen jetzt B hinzufügen und wir können sagen, drucken A, B. Also wird A mit zehn verknüpft. B wird 20 zugeordnet, und die Ausgabe wird zehn und natürlich 20 sein. Und der Asterix-Unterstrich hilft dabei, 30 und 40 zu ignorieren. Also wenn ich das durchführe, haben wir zehn und wir haben 20. Nehmen wir an, Sie können die ersten beiden Elemente extrahieren. Nehmen wir an, wir wollen das letzte Element bekommen, das hier 40 ist. Lassen Sie uns weitermachen und ändern, was wir hier definieren, und alles am Anfang ignorieren und dann können wir sagen, fügen Sie eine Variable hinzu, die zuletzt ist, und fügen Sie letztes Jahr hinzu, und das bedeutet, dass der Asterix und der Unterstrich hier 1020 und Seti ignorieren und nur 40 für die letzte Variable beibehalten werden und das ausgeben Wenn ich das starte, bekommen wir 40. Nehmen wir an, Sie können den letzten Artikel extrahieren. Nehmen wir an, wir wollen eine Absicherung vornehmen und das erste und letzte Element extrahieren. In diesem Fall können wir also sagen, dass zuerst Ihr Sternchen und der Unterstrich hinzugefügt werden und dass Und hier nehmen wir an, wir haben eins, zwei, drei und vier Wir können dann sagen, zuerst drucken und zuletzt drucken. Dann erhalten wir also nur einen und wir erhalten vier, wobei alle mittleren Werte vom Asterix gefolgt vom Unterstrich ignoriert Asterix gefolgt vom Lassen Sie mich nun etwas mehr Informationen zum Sternchen und zum Unterstrich geben Sternchen und zum Unterstrich Der Unterstrich ist also im Grunde ein Platzhalter, okay, und Sie könnten das als eine ignorierte Art von Variable betrachten Der Asterix, den wir hier haben, oder? Das führt dazu, dass Underscore mehrere ignorierte Werte oder Elemente sammelt mehrere ignorierte Werte oder , könnte man sagen, aus Und wenn wir das Sternchen nicht haben, okay, dieser Unterstrich wird nur einen einzelnen Wert enthalten und nicht eine Liste selbst Das ist also nur eine zusätzliche Sache, die wir tun können , wenn wir Werte und dergleichen ignorieren wollen Wir können den Asterix-Operator mit dem Unterstrich kombinieren. In Ordnung, da haben wir es also. Es gibt eine Reihe von Anwendungsfällen, für die Sie sich jetzt mit dem Asterix-Operator bewerben können jetzt mit dem Asterix-Operator bewerben 56. Lambda-Funktionen: Hallo zusammen und willkommen zur nächsten Lektion, die sich mit Lambda-Funktionen befassen wird . Schauen wir uns das mal an Also fragst du dich wahrscheinlich, okay, was in aller Welt ist die Lambda-Funktion Eine Lambda-Funktion ist also eine kurze, anonyme Funktion, die mehrere Argumente akzeptiert, aber nur einen einzigen Ausdruck enthält, was bedeutet, dass Sie Ihre Lambda-Funktion in einer einzigen Zeile definieren Ihre Lambda-Funktion in einer Im Gegensatz zu regulären Funktionen, bei denen Sie natürlich mindestens ein paar Zeilen benötigen , um alles zum Laufen zu bringen Aber bei einer Lambda-Funktion wird sie in Bezug auf ihre Reihenfolge und ihr Muster einen einzigen Ausdruck enthalten in Bezug auf ihre Reihenfolge und ihr Muster einen einzigen Ausdruck Und eine Lambda-Funktion wird oft für kurze einfache Operationen verwendet , bei denen Definition einer vollständigen Funktion unnötig ist Wenn du dir also denkst , okay, ich muss eine Funktion machen, aber es wird eine ziemlich kurze Funktion sein Dann kommt hier der Wert der Verwendung einer Lambda-Funktion Wenn Sie jedoch eine ziemlich umfangreiche Funktion mit vielen Anforderungen, vielen Argumenten, Parametern und Funktionen haben ziemlich umfangreiche Funktion mit vielen Anforderungen, vielen Argumenten, , die Sie hinzufügen müssen, , die Sie hinzufügen müssen oder eine Funktion, die in Ihrem allgemeinen Anwendungsfall einfach komplexer ist , dann bleiben Sie bei Funktionen Aber wie gesagt, alles, was kurz und schnell ist oder das Sie einfach nicht viele Funktionen benötigen, dann sind die Funktionen der beste Weg, und ich würde Ihnen dringend empfehlen, sie zu und ich würde Ihnen dringend empfehlen, nutzen, da sie in bestimmten Situationen sehr nützlich sein können . Ja, auf jeden Fall ist das alles, was ich theoretisch in Bezug auf Lambda-Funktionen zu erwähnen theoretisch in Bezug auf Lambda-Funktionen Wir werden uns dann auf die praktischen Laborübungen konzentrieren , bei denen ich vorsichtig beginnen und Ihnen den Unterschied zwischen einer Funktion und einer Lambda-Funktion beibringen werde vorsichtig beginnen und Ihnen den Unterschied zwischen einer Funktion und einer Lambda-Funktion beibringen , insbesondere und hauptsächlich, sollte ich sagen, in Aber darauf kommen wir in den Laborübungen zurück. Aber wie dem auch sei, das ist alles für den theoretischen Überblick. 57. Vorgänge mit Lambda ausführen – [Lab]: Hallo, alle zusammen. Willkommen zur nächsten praktischen Laborübung, die sich auf die Nutzung von Lambda-Funktionen in PySON konzentrieren wird auf die Nutzung von Lambda-Funktionen in PySON konzentrieren Um es am Anfang ganz einfach zu halten , werde ich Ihnen zeigen, wie Sie reguläre Funktionen mit Lambda-Funktionen vergleichen können , sodass Sie die Syntax verstehen und wie Sie die Syntax verstehen und wie Sie Lambda-Funktionen richtig und von Anfang an nutzen können richtig und von Lass uns anfangen. Definieren wir zunächst eine reguläre Funktion. Ich werde einfach einen Kommentar hinzufügen und reguläre Funktion sagen. Sie würden also natürlich mit Ihrem Schlüsselwort beginnen, das Jeff ist. Dann würden Sie Ihren Funktionsnamen definieren, der zum Beispiel so lauten würde, dass Sie Hallo unterstreichen Dann können wir in der nächsten Zeile einfach print sagen und wir können als Beispiel Hello World sagen Das ist es also, was die Funktion ausgeben wird, sobald sie aufgerufen wird. Dann können wir unsere Funktion aufrufen , also Unterstrich Hallo, und das wird diese Funktion aufrufen und Hello World im Terminal ausgeben Wenn ich das also speichere und den Code ausführe, heißt es Hello World Perfekt. Lassen Sie uns nun sehen, wie wir das anwenden können, wenn wir mit einer Lambda-Funktion arbeiten Ich werde diesen Code nicht entfernen, sondern ihn einfach auskommentieren , damit Sie die Syntax und die Logik besser verstehen können . Ich werde hier einen Kommentar hinzufügen, in dem die Lam-D-Funktion steht. Und das erste, was Sie tun möchten, ist Ihren Funktionsnamen zu definieren. Bei Lambda-Funktionen würden Sie nun festlegen, dass er Lambda entspricht In diesem Fall können Sie zum Beispiel sagen, Unterstrich Hallo sagen, und das ist Ihr Funktionsname in Lambda, sehr ähnlich dem, was wir in der regulären Funktion hatten, wo wir hatten, wo wir sagen, Unterstrich Hallo sagen. Das Gleiche. So definieren Sie eine Funktion in Lambda, und dann sagen Sie gleich und setzen sie auf Und dann möchte ich wissen , dass Lambda hier gleich der Ausdruck für die Einrichtung einer Lambda-Funktion ist , der dem Ausdrücken „Tod“ für eine reguläre Funktion sehr ähnlich ist. Versuche es als dasselbe zu sehen. Dann können wir unseren Doppelpunkt hinzufügen und wir wollen definieren, was wir tun wollen. In dieser Funktion „Hallo sagen“ haben wir also definiert, dass wir Hello World drucken wollen. Aber das haben wir innerhalb der Funktion gemacht. Mit der Lambda-Funktion mit der Lambda-Funktion machen wir das in derselben Zeile Diese Print-Lo-Welt wird also einfach hier in derselben Zeile wie die Lambda-Funktion Das meinte ich in den theoretischen Vorlesungen, als ich erwähnte, dass es sich bei Lambda um einen einzigen Ausdruck handeln wird Also können wir einfach „Drucken“ sagen und „Hallo Welt“ sagen. Da haben wir's. Dann wollen wir unsere Funktion aufrufen, das wird genau so sein wie unsere reguläre Funktion, die wir hier hatten , und wir werden auch die Klammern haben, also können wir einfach Unterstrich, Hallo sagen Jetzt können wir diesen Code ausführen und wir können hier sehen, dass er Hello World ausgibt So gut gemacht, so können Sie eine Lambda-Funktion nutzen, und hoffentlich ist können Sie eine Lambda-Funktion nutzen, das bei der Synchex und Verwendung im Vergleich zu einer regulären Funktion sinnvoll der Synchex und Verwendung im Vergleich zu einer Aber keine Sorge, wir werden hier einige Beispiele durchgehen und einen weiteren direkten Vergleich zwischen einer regulären Funktion weiteren direkten Vergleich und einer Lambda-Funktion durchführen Richtig. Lassen Sie uns hier also alles außer dem obigen Kommentar entfernen, und wir wollen jetzt zwei Zahlen hinzufügen. Also eine reguläre Funktion dafür und eine Lambda-Funktion. Nun, etwas, das ich erwähnen möchte , ist, dass, wenn Sie mit Lambda-Funktionen arbeiten, diese normalerweise nicht für die Definition von Variablen innerhalb einer Lambda-Funktion geeignet Definition von Variablen innerhalb einer Lambda-Funktion Ich weiß, dass man das bei regulären Funktionen mit lokalen Variablen machen kann, aber bei Lambda ist das nicht wirklich ein Knaller Wenn Sie also ein Ergebnis zurückgeben möchten, würden Sie oft return sagen wollen, anstatt eine Variable zu definieren und sie dann auszudrucken Also nur etwas, das ich im Voraus erwähnen möchte. Okay, das sind die letzten regulären Funktionen. Ich sage Def, füge Unterstriche hinzu. Diesmal werden wir mit Parametern arbeiten. Ich werde zum Beispiel X und Y haben, und dann werde ich eine einfache Return-Anweisung haben, die return X plus Y sagt. Dann möchte ich die Print-Anweisung draußen verwenden und print sagen, und dann möchte ich den Funktionsnamen , der zu den Quadratzahlen addiert wird, umbrechen , und dann müssen wir die Argumente eingeben die wir an die Parameter von X senden wollen und Y, damit wir über die Druckfunktion das Ergebnis zurückgeben können , was X plus Y ist. Hier sage ich einfach fünf und sieben. Es wird fünf plus sieben zurückgeben, und das wird als Ausgabe ausgedruckt , das sollte 12 sein. Lassen Sie uns weitermachen und diesen Code ausführen. Wir können also 12 sehen. Also los geht's. So können wir eine einfache reguläre Funktion zum Addieren von Zahlen definieren . Wenden wir diese Funktion nun hier als Lambda-Funktion an oder transformieren wir sie neu Also werde ich einen Kommentar hinzufügen und Lambda-Funktion sagen. Sie müssen sich also nur noch einmal daran erinnern, Sie auf Ihren Lambda-Funktionsnamen verweisen müssen Hier verwenden wir also Additionszahlen für die reguläre Funktion. Wir können das Gleiche tun. Dann willst du Equals und Lambda sagen. Jetzt möchten Sie direkt neben Lambda sicherstellen, dass Sie weitermachen und Ihre Parameter hinzufügen Hier haben wir X und Y, und alles, was wir tun müssen, ist ein Leerzeichen neben Lambda hinzuzufügen und X, Y zu sagen, und das sind Ihre Parameter Dann möchtest du daneben deinen Doppelpunkt hinzufügen. Es ist also dem , was wir hier haben, sehr ähnlich. Wir haben also X, Y, aber hier haben wir keine Klammern und wir fügen den Doppelpunkt am Ende hinzu, und wir machen dasselbe mit unserer Lambda-Funktion Sie möchten definieren, was Sie in Ihrer Lambda-Funktion tatsächlich tun möchten In unserer regulären Funktion sagen wir also return X plus Y. Also hier müssen wir nur sagen, was wir eigentlich direkt tun wollen Ich sage X plus Y, einfach so. Dann sagen wir Drucken, wie wir es zuvor getan haben, und dann möchten Sie Ihren Funktionsnamen durchgeben. In unserem Fall werden also Unterstrichzahlen hinzugefügt. Und genau wie beim Einsenden Ihrer Argumente wird es genau den gleichen Stil haben wie normale Funktionen Sie werden Ihre Klammern haben und in der Position oder den Schlüsselwörtern das eingeben, was Sie zurückgeben möchten Ich werde fünf und sieben sagen. Also haben wir das an Ort und Stelle. Also, wenn wir unseren Code ausführen, bekommen wir 12. Richtig, perfekt. Da haben wir's. So können Sie also eine Lambda-Funktion nutzen und vor allem, wie Sie die Syntax regulärer Funktionen nutzen können , um Lambda-Funktionen schnell zu erlernen und sie im Vergleich zur Funktionsweise einer regulären Funktion zu nutzen . Richtig. Perfekt. Damit wir diesen Stift entfernen können. Also gut, das ist der erste Teil der Nutzung von Lambda-Funktionen Wir werden noch an ein paar zusätzlichen Aktivitäten und Übungen arbeiten , wie soll ich sagen Also mach dir keine Sorgen. Wir haben noch mehr vor uns. Ordnung. Lassen Sie uns jetzt mit Lambda arbeiten, da wir jetzt ziemlich sicher sind, die Definition zu verstehen, wie wir eine Syntax verwenden und so weiter da wir jetzt ziemlich sicher sind, die Definition zu verstehen , wie wir eine Syntax verwenden und so Also werde ich daran arbeiten, ein paar Programme zu erstellen. Zuerst stellen wir uns selbst fest: Okay, wie kann ich ein kleines Programm erstellen, das nützlich und mit einer Lambda-Funktion schnell zu lösen ist, was mit einer regulären Funktion mühsam sein könnte mühsam sein Nehmen wir an, wir wollen eine Zahl quadrieren. Wir müssen die Funktionsnamen definieren. Ich werde sagen, Quadrat ist gleich. Dann müssen wir sagen, dass dies eine Lambda-Funktion sein wird Wir müssen uns entscheiden, ich werde alle Werte eingeben. Ich werde einen Wert eingeben , der einem Parameter entspricht. Ich kann den Parameter einfach so einstellen, sagen wir mal Num. Was möchte ich tun? Möchte ich etwas zurückgeben? Was ich tun möchte, ist tatsächlich die Zahl zurückzugeben die multipliziert mit NUM ist. Dann werde ich sicherstellen, dass ich die Ergebnisse ausdrucke. Ich sage print und ich möchte den Funktionsnamen eingeben , der quadratisch ist, und dann das Argument, das hier an den Parameter übergeben wird, als NUM eingeben, und dann nehme ich die zugehörige Zahl und multipliziere sie mit sich selbst. Also vier mal vier. Wenn wir nun den Code ausführen, können wir sehen, ob wir 16 bekommen, und genau so können wir eine Zahl mit einer Lambda-Funktion quadrieren Richtig, lass uns noch eins machen. Nehmen wir an, wir wollen eine Zahl verdoppeln. Wir würden also eine Funktion erstellen und diese zum Beispiel Double nennen , und das wird eine Lambda-Funktion sein, also müssen wir sie entsprechend definieren Wir werden hier einen Parameter berücksichtigen . Also werde ich das zum Beispiel auf X setzen . Und was möchte ich tun? Ich möchte zurückkehren, was auch immer das Ergebnis von X multipliziert mit zwei ist von X multipliziert mit zwei Okay. Dann möchte ich das ausdrucken, ich sage print und ich möchte drucken was auch immer das Ergebnis der Funktion ist, also muss ich die Funktion aufrufen, damit das passiert, und dann das Argument übergeben, das X ersetzt und dann geht X zum nächsten Code innerhalb der Lambda-Funktion und sagt X mal zwei In diesem Fall sechs mal zwei. Jetzt können wir diesen Code ausführen. Und wir haben 12. Perfekt. Das ist eine Verdoppelung einer Zahl. Lass es uns ändern. Lass uns in die Liste gehen. Nehmen wir nun an, wir wollen das erste Element einer Liste abrufen . Lassen Sie uns weitermachen und unseren Funktionsnamen definieren , könnte man sagen. Ich setze das auf, ich würde sagen, zuerst ist gleich, das wird mein Funktionsname sein Es wird eine Lambda-Funktion sein. Wir werden einen Parameter erwarten, also kann ich diese LST-Liste einfach aufrufen, zum Beispiel im Doppelpunkt Und was möchte ich eigentlich machen? Was möchte ich eigentlich zurückgeben? Also möchte ich das erste Element in der Liste zurückgeben. Und denken Sie jetzt daran, dass die PySon-Liste bei Null beginnt. Also werde ich sagen, okay, die Liste hier, und ich möchte auf Null schauen Okay. Dann möchte ich drucken sagen, auf den ersten Funktionsnamen verweisen und in Klammern eine Liste so definieren , wie sie ist Ich werde in der Liste zehn, 20, 30 sagen. Nun, was passieren wird, ist, dass ich diese Liste hier durchgehen werde , die genau hier in meiner Entschuldigung definiert ist, sie ist hier in der Argumentation hier definiert. Ich habe zehn, 20 und 30, zuerst werde ich all das unterbringen. Es wird an den Parameter weitergegeben. Diese ganze Liste, die ich zuerst definiert habe. Was dann passieren wird, ist, dass wir die Liste aufrufen und nach dem ersten Element suchen, das zehn sein wird, und das wird ausgegeben. Wenn ich diesen Code ausführe, werden wir sehen, dass er zehn ausgibt. Wir übergeben diese Liste nur als Argument selbst innerhalb der ersten Funktion. Okay, so können wir genau das machen. Nehmen wir nun an, wir wollen das zweite Element einer Liste abrufen . Mit anderen Worten, das wird Null, Eins sein. Wir können also sagen, dass Sekunde gleich Lambda ist, und wir können wieder Liste sagen, Doppelpunkt, und dann können wir Liste sagen, und das Ergebnis, das wir zurückgeben wollen, ist das erste Es ist technisch gesehen das zweite Element der Liste, das aber mit Eins bezeichnet Wir können sagen, drucken, die Funktion und die Argumente für die Funktion übergeben , wir werden eine einzige Liste mit den Elementen 15, 21, 87 erstellen Es sollte jetzt 21 ausgeben, also übergeben wir diese Liste hier als Parameter in die Liste, und dann werden wir sie bei der Verarbeitung abfragen und nach dem zweiten Element suchen , das 21 sein wird. Lassen Sie uns das also ausführen. Und dann bekommen wir 21. Perfekt. In Ordnung, Leute Das ist es also im Wesentlichen, wenn wir uns mit Lambda-Funktionen vertraut machen und wie wir sie verwenden können und vor allem, wie wir sie von einer regulären Funktion unterscheiden können Nun, wir sind noch nicht fertig mit Lambda-Funktionen, es gibt noch ein paar weitere eingebettete Funktionen, die ich mit Lambda-Funktionen verwenden möchte, die vielen Entwicklern sehr beliebt sind, und ich möchte mich eingehender mit Lambda-Funktionen befassen, also werden wir nur die allgemeine Idee von Lambda-Funktionen und wie Sie sie integrieren können, behandeln. Jetzt können Sie es zumindest bis zu den Grundlagen üben und anwenden , damit Sie wissen, wie Sie die Parameter übergeben , wie Sie Daten ausgeben können und so weiter. Das war's für diese praktische Laborübung. 58. Lambda-Funktionen auf andere Funktionen anwenden: Hallo zusammen und willkommen zur nächsten Lektion, die sich auf die Anwendung von Lambda-Funktionen auf andere Funktionen konzentrieren wird Lambda-Funktionen auf andere Funktionen So können wir Funktionen in unsere Lambda-Funktionen einbetten , je nachdem was wir tun möchten. Aber lassen Sie uns einen Blick darauf werfen Lambda-Funktionen funktionieren also gut mit integrierten Funktionen wie der Map-Funktion, und dies wendet im Wesentlichen eine Funktion und dies wendet im Wesentlichen auf jedes Element in einer Iterable an und gibt somit eine neue Iterable mit geänderten Werten zurück Wir haben auch die Filterfunktion und diese wählt Elemente aus einer iterierbaren Datei auf der Grundlage einer Funktion aus, entweder wahr oder falsch zurückgibt, sodass wir uns eine mutige Situation mit zwei Zuständen vorstellen können Schließlich ist die Reduce-Funktion eine sehr beliebte Funktion , die mit Lambda verwendet Dabei wird wiederholt eine Funktion angewendet, um alle Elemente in einer iterierbaren Datei zu einem einzigen Wert zu kombinieren alle Elemente in einer iterierbaren Datei zu einem . Da hast du es also Lambda-Funktionen können also auch mit anderen Arten von integrierten Funktionen zusammenarbeiten auch mit anderen Arten von integrierten Funktionen Dies sind jedoch die gängigsten, die die meisten Entwickler verwenden würden wenn sie mit Pison, der Map-Funktion, der Filterfunktion und der reduzierten Funktion mit einer Lambda-Funktion arbeiten der Map-Funktion, der Filterfunktion und der reduzierten Funktion . Sie ist normalerweise darin eingebettet, um eine bestimmte Codeabfrage auszuführen , die an Ort und Stelle hinzugefügt wird In Ordnung, Leute. Also das war's für den theoretischen Überblick. Wir werden uns nun darauf konzentrieren, diese Funktionen in unsere Lambda-Funktionen zu integrieren diese Funktionen in unsere Lambda-Funktionen und alles zusammenzusetzen 59. Lambda mit anderen Funktionen einbetten – [Lab]: Hallo zusammen und willkommen zur nächsten praktischen Laborübung, die sich auf die Verwendung des Map-Filters und die Reduzierung der Funktionen innerhalb der Funktion selbst konzentrieren wird des Map-Filters und die Reduzierung Funktionen innerhalb der Funktion selbst Wir werden alles zusammen integrieren. Lassen Sie uns weitermachen und mit der Kartenfunktion beginnen. Das ist das Erste, womit wir weitermachen und anfangen wollen. Lass uns weitermachen und genau das tun. Nun, das Erste , was wir tun wollen , ist, eine Liste von Zahlen zu definieren. Ich werde Zahlen sagen. Gleich, und ich sage eins, zwei, drei, vier und fünf Der Sinn der Verwendung der Kartenfunktion in diesem Anwendungsfall besteht darin, dass wir jedes Element in einer Liste ändern und dann eine modifizierte Liste zurückgeben wollen eine modifizierte Liste zurückgeben , die einige Funktionen erfüllt Als Nächstes können wir uns also absichern und Folgendes einrichten. Also werden wir eine Absicherung vornehmen und hier eine Variable definieren. Also werde ich sagen, Ergebnis ist gleich, und das setzen wir auf unsere Kartenfunktion Und wir werden map verwenden, um auf jedes Element in unserer Liste eine Funktion anzuwenden , nämlich jeweils eins, zwei, drei, vier und fünf unabhängig voneinander Und in unserer Map-Funktion werden wir die Lambda-Funktion hinzufügen Also sagen wir am D und übergeben einen Parameter Ich nehme zum Beispiel X. Und dann die Aktion , die ich ausführen möchte, ich möchte jedes Element in der Liste mit zwei multiplizieren. Ich sage X Sternchen zwei oder multipliziere es mit zwei. Und dazu werden wir die Zahlenliste verwenden die Zahlenliste Also werden wir weitermachen und uns auf die variablen Zahlen beziehen. Okay, das haben wir also in Ordnung gebracht. Perfekt. Lassen Sie mich Ihnen eine Vorstellung davon geben, was passieren wird. Also haben wir eins, zwei, drei, vier, fünf. Wir werden hier nun Zahlen auf diese Lambft-Funktion anwenden , und im Grunde sollten Sie sie so sehen, als ob Eins aus Zahlen kommt Eins wird X ersetzen, und dann eins mal zwei ergibt zwei, und das wird gespeichert und mit unserer Logik hier verarbeitet, und mit unserer Logik hier verarbeitet die wir mit Map und Lambda-Funktion haben, und das wird gespeichert bis wir es später in einer Liste ausgeben können Dann gehen wir zum nächsten Punkt in der Liste, der zwei sein wird, zwei wird aus Zahlen sein, und dann werden wir X durch zwei ersetzen und dann sagen zwei mal zwei, und das wird vier sein. Wir machen dasselbe für die restlichen Zahlen , sodass am Ende das Ergebnis von zwei, vier, sechs, acht und zehn ist. Dann wollen wir auf eine Hecke gehen und unser Kartenobjekt konvertieren. Dies wird unser Kartenobjekt sein, das wir in der Variablen result speichern. Wir können hier jetzt eine Variable namens doppelte Zahlen erstellen, und wir werden die Liste der Endergebnisse, die wir hier erhalten, konvertieren . Das Ergebnis des Ausgabeprozesses , das wir mit dieser Funktionalität erhalten. Das Ergebnis ist in diesem Fall keine Lambda-Funktion, wie wir weiter oben beschrieben und demonstriert oder referenziert haben, wie in den vorherigen Übungen zu Lambda-Funktionen denn wenn Sie es mit Funktionen zu tun haben , die in Lambda eingebettet sind, wie Map Reduce und Filter, die Variable, die Sie ihr zugewiesen haben, wie in diesem Fall, das Ergebnis hier nicht die Funktion Es wird im Grunde nur variabel sein, das gespeichert wird. Der Wert, der verarbeitet wurde, da alles genau hier ausgeführt wird und nicht in einer separaten Lambda-Funktion In jedem Fall speichern wir die Ergebnisse dann hier in der Liste, sodass wir das Kartenobjekt, das wir jetzt haben , in eine Liste umwandeln können Kartenobjekt, das wir jetzt haben , in eine Liste umwandeln , sodass wir die geänderten Werte sehen können Um das zu tun, können wir jetzt „Drucken“ sagen und uns auf doppelte Zahlen beziehen. Ordnung, perfekt. Jetzt können wir diesen Code ausführen und sehen, ob wir die Ausgabe zwei, vier, 6810 bekommen . So können wir weitermachen und es so einrichten, wie es sollte. Richtig. Schauen wir uns nun die Filterfunktion an. Also noch einmal, wir werden ein paar Zahlen haben. Ich füge einfach, sagen wir, eine zusätzliche Zahl hinzu, und wir werden dann weitermachen und die Filterfunktion nutzen. Jetzt planen wir, die Filterfunktion zu verwenden , um nur gerade Zahlen beizubehalten. Lassen Sie uns nun weitermachen und eine Variable definieren, sich um Ergebnisse handelt, damit wir das Ergebnis, das wir von unserem Wert hier für das Filterobjekt haben, hier speichern können das Ergebnis, das wir von unserem Wert hier für das Filterobjekt haben, hier speichern . Also werden wir das Ergebnis des Filterobjekts speichern. Und wir werden sagen, die Lambda-Funktion filtern und einbetten Und wieder haben wir einen Parameter, den wir X nennen können. Was wir tun wollen, ist eine AM-Defunktion zu verwenden, um zu überprüfen, ob jede Zahl oder X durch zwei teilbar ist, um mit anderen Worten, nur einige Elemente aus einer Liste zu behalten Mit anderen Worten, wir sollten gerade Zahlen ausgeben. Wir können das tun, indem wir X sagen, und dann können wir unser Prozentzeichen, sagen wir zwei, hinzufügen, Null entspricht, und wir werden mit der Zahlenvariablen arbeiten, was im Grunde die Liste ist, mit der wir arbeiten werden. Wir werden uns hier weiter einklinken . Wir werden uns einen schnappen Dann werden wir Ersatz eins an X übergeben und dann werden wir hier weitermachen und prüfen, ob eins durch zwei geteilt wird, wenn die Zahl aus irgendeinem Grund nicht gerade sein wird, werden wir sie einfach von der Liste weglassen, die wir ausgeben werden, und dann nur speichern, was gerade und durch zwei teilbar wenn die Zahl aus irgendeinem Grund nicht gerade sein wird, werden wir sie einfach von der Liste weglassen, wir sie einfach von der Liste weglassen die wir ausgeben werden, und dann nur speichern, was gerade und sein wird Okay. Nach diesem Vorgang , wie bei der Kartenfunktion, wir, wie bei der Kartenfunktion, jedes Objekt oder Element überprüfen, also jedes Mal, und dann die erforderlichen Ergebnisse speichern, während wir weitermachen. Dann wollen wir unser Filterobjekt in eine Liste umwandeln , sodass wir unsere gefilterten Werte sehen können, sodass wir dann zum Beispiel eine Variable finden können, die als gerade Zahlen bekannt ist, und dann eine Liste verwenden , um die Ergebnisse hier darzustellen, diese Variable. Und dann können wir weitermachen und die gefilterte Liste drucken. Wir können also „Drucken“ sagen und wir können einfach „gerade Zahlen“ sagen Und dass wir 24 und sechs drucken werden, was genau das ist, was wir als Ergebnis wollen Auf diese Weise können wir weitermachen und sicherstellen, dass wir filtern können, sodass wir nur einige Artikel von unserer Liste behalten können . Richtig, perfekt. Die letzte Funktion, die wir uns ansehen möchten, ist, wie wir die Reduce-Funktion nutzen können. Im Grunde wollen wir also alle Elemente, die wir haben, zu einem Wert zusammenfassen , also werden wir ihn zusammenfassen, also addieren, könnte man sagen. Und um das zu tun, müssen wir die reduzierte Funktion importieren, und das kommt aus dem Funk-Tools-Modul. Es ist also eingebaut. Wir können also von Funk Tools, dem Modul, sagen , dass ich die reduzierte Funktion importieren möchte . Jetzt wollen wir auch eine Liste von Zahlen haben , mit denen wir arbeiten wollen. Also werde ich Zahlen sagen, und ich werde eins, zwei, drei, vier und fünf haben . Dann werde ich sicherstellen, dass ich reduce verwende, um alle Zahlen zu summieren. Und wieder brauchen wir natürlich eine Variable, damit wir das Ergebnis speichern können, das Ergebnis speichern können, also ist es notwendig, es Ergebnis zu nennen. Und dann können wir die Reduce-Funktion verwenden, die Lambda einbetten wird Und wieder werden wir dieses Mal zwei Parameter haben , denn wir summieren, wir addieren Zahlen. Also haben wir X und Y. Und dann ist die Aktion, die wir ausführen wollen und was wir zurückgeben wollen, das Ergebnis von X und Y. Und worauf werden wir das aufbauen? Was werden wir aus der Zahlenvariablen hier , die wir einfach so zuordnen können, unsere Informationen, die wir addieren wollen, bekommen aus der Zahlenvariablen hier , die wir einfach so zuordnen können, unsere Informationen, die wir addieren wollen , Okay, also die Funktion und, wir nehmen zwei Zahlen, X und Y, aus Zahlen, und es wird sie addieren, und dann wird es addieren, bis wir das Endergebnis haben. Bei den Zahlen hier werden wir also weitermachen wir also weitermachen und die Zahlen entsprechend addieren , bis wir das Endergebnis erhalten . Also wird es eins sein. Also waren es X und Y, es wird eins plus zwei gleich drei sein. Drei plus drei entspricht sechs, sechs plus vier entspricht zehn, und dann ist zehn plus fünf Und so werden wir weitermachen und die Reihenfolge der Operationen im Laufe der Das Endergebnis sollte natürlich 15 sein, aber lassen Sie uns das Ergebnis ausdrucken , damit wir es klären können. Da haben wir 15 und da haben wir es. So können wir als Summenbeispiel alle Elemente zu einem Wert zusammenfassen. Ordnung, Leute. Das war's für diese praktische Laborübung. Ich weiß, das war vielleicht ein bisschen schwierig, aber so können wir weitermachen und weitermachen , wenn wir verschiedene Funktionen kombinieren und sie zusammen mit unserer Lambda-Funktion nutzen wollen verschiedene Funktionen kombinieren und sie zusammen mit unserer Lambda-Funktion nutzen Nun eine wichtige Sache , die ich auch noch einmal wiederholen möchte noch einmal wiederholen möchte Denken Sie nur daran, wenn wir Funktionen mit Lamb wie Map Reduce und Filter verwenden , dass Sie früher, als wir mit Funktionen gearbeitet haben, diktieren konnten und dass Sie das, was wir mit der Lambda-Funktion verbinden, als Funktionsnamen bezeichnen mit der Lambda-Funktion verbinden, als Funktionsnamen konnten, sozusagen Aber in diesem Fall wird das einfach eine Variable sein, um das Ergebnis dessen zu speichern, was passiert Ob es sich bei diesem Ergebnis konkret um ein Filterobjekt handelt oder ob es einen bestimmten Wert zurückgibt oder ob es das Kartenobjekt zurückgibt, dafür verwenden wir es, nicht als Funktionsnamen. Ordnung. Also da haben wir es. Das Letzte, was ich erwähnen möchte , ist, noch eine Sache zu beachten : Wenn wir mit dem Kartenobjekt arbeiten , werden wir es speichern. Wenn wir mit der Kartenfunktion arbeiten, speichern wir das Kartenobjekt, wenn wir mit der Filterfunktion arbeiten, speichern wir ein Filterobjekt und wenn wir natürlich mit Reduce und speziell in diesem Fall mit der reduzierten Funktion arbeiten natürlich mit Reduce und , speichern wir einen bestimmten Wert , den wir natürlich ausgeben werden , wenn wir ihn ausdrucken wollen. Okay, geh Das ist es. können wir andere Funktionen in Lambda integrieren 60. Was ist objektorientierte Programmierung?: Hallo zusammen. Willkommen zur nächsten Lektion, die sich darauf konzentrieren wird, zu untersuchen was objektorientierte Programmierung ist. Nun, diese Lektion wird Teil einer Reihe von Lektionen sein, also wird alles miteinander verbunden sein. In den nächsten Lektionen wird es ein wenig verteilt sein, aber jetzt ist alles zusammen und Teil als eins. Objektorientierte Programmierung ist also ein Programmieransatz , der sich auf das Konzept von Klassen und Objekten konzentriert . Ihre nächste Frage ist also wahrscheinlich, was sind Klassen und Objekte? Darauf werden wir in der nächsten Lektion ausführlich eingehen, die sich darauf konzentrieren wird , sich darauf konzentrieren wird , Klassen und Objekte aus einer Definitionsperspektive und auch aus einer Analogieperspektive zu betrachten einer Definitionsperspektive und auch aus einer Analogieperspektive auch aus einer Analogieperspektive Ich werde zwischen den beiden unterscheiden und insgesamt sehen, wie dies mit dem Fokus der objektorientierten Programmierung insgesamt zusammenhängt Seien Sie also gespannt auf die nächste Lektion, wir werden uns mit Klassen und Objekten befassen. 61. Klassen und Objekte: Hallo, alle zusammen. Willkommen zur nächsten Lektion, die sich auf Klassen und Objekte konzentrieren wird . Lass uns einen Blick darauf werfen. Was ist eine Klasse und ein Objekt? Einfach ausgedrückt ist eine Klasse eine Blaupause für die Erstellung eines Objekts, während ein Objekt eine spezifische Instanz dieser bestimmten Klasse ist eine spezifische Instanz dieser bestimmten Klasse Ich weiß, dass das zunächst etwas verwirrend sein könnte, aber schauen wir uns eine Analogie an, um das besser zu veranschaulichen Nehmen wir also an, wir haben eine Person. Wir können eine Person eine Klasse nennen. Nun hat eine Person eine Reihe von Attributen. So wird eine Person zum Beispiel einen Vornamen haben. Sie werden einen Nachnamen haben. Sie werden ihr Alter und ihre Nationalität haben. werden in PySon also als Attribute betrachtet , bei denen die Person selbst, wie die Struktur, die Person die Klasse ist Jetzt können wir etwas weiter gehen und uns Objekte ansehen Nun, Objekte sind, wie ich bereits erwähnt habe, natürlich die Instanzen selbst. Wir können zum Beispiel ein Objekt haben, das sich auf eine Person bezieht, und diese einzigartige Person kann zum Beispiel Lucy Johnston heißen, 22 Jahre alt und ihre Nationalität Sie kommt aus Deutschland. Nehmen wir an, wir haben ein anderes Objekt, eine weitere spezifische Instanz. Wir haben also eine weitere einzigartige Person. Diese Person ist Mark Smith. Er ist 21 und kommt aus Österreich. So hängt alles zusammen mit der Klasse, dem Bauplan, den Attributen, um diese Klasse hier zu beschreiben, und dann mit den Objekten, die die spezifischen Instanzen sind Schauen wir uns eine weitere Analogie an, um unser Verständnis von Klassen und Objekten zu festigen Nehmen wir an, wir haben ein Auto. Jetzt kann das Auto als Klasse und als Blaupause angesehen werden. Jetzt wird ein Auto mehrere Attribute haben, wie zum Beispiel die Marke, die Farbe, das Modell, die Farbe, das Modell, das Modelljahr, und es wird eine Reihe von einzigartigen Exemplaren in Bezug auf die Objekte haben einzigartigen Exemplaren in Bezug auf die Objekte Wir können ein bestimmtes einzigartiges Auto haben , das die Marke GMC Die Farbe Sage, es ist das Modell GMC E Two und das Modell Y ist 2007 Dann haben wir noch ein anderes konkretes Beispiel, das zum Beispiel das eines BMW sein wird Die Farbe ist blau, der BMWX Three und das Modell E ist 2011 Ordnung. So möchte ich, dass Sie den Prozess der objektorientierten Programmierung verstehen , wenn wir mit unserer Klasse arbeiten, den zugehörigen Attributen dieser Klasse und den Objekten, die spezifische Instanzen sind, die miteinander korrelieren Ch. Also versuche alles zusammen als Zach zu sehen Und was ich auch empfehlen würde, wenn es auch ein bisschen verwirrend wird, gehen Sie einfach noch ein paar Mal mit den Analogien und der Definition, die ich gegeben habe, durch und versuchen Sie, es miteinander zu verknüpfen Aber mach dir keine Sorgen. Sobald wir das in den praktischen Laborübungen geübt haben, werden Sie sehen, wie leicht Sie es erlernen werden. Und so möchte ich, dass Sie es sehen , wenn wir mit objektorientierter Programmierung arbeiten und speziell mit den Klassen und den Objekten, um die es geht. 62. Erstellen unseres ersten Kurses und Objekts – [Lab]: Hallo, alle zusammen. Willkommen zur nächsten praktischen Laborübung, die sich auf Klassen und Objekte konzentrieren wird . Lass uns anfangen. Als Erstes müssen wir nun unsere Klasse definieren. Denken Sie daran, eine Klasse ist wie ein Bauplan Wir werden eine Klasse für eine Person erstellen Ich werde Klassenperson sagen. Als Nächstes können wir zur nächsten Zeile übergehen und einen Gedankenstrich ziehen. Und als Nächstes werden wir Innit-Methode definieren wollen unsere Innit-Methode definieren wollen Nun, die Innit-Methode ist im Wesentlichen eine spezielle Methode, auch bekannt als Dunder-Methode. Sie wird aufgerufen, wenn ein neues Objekt erstellt wird, und sie hilft, die Attribute unseres Objekts zu initialisieren den Attributen gehören nun beispielsweise die ID der Person, ihr Vorname, ihr Nachname, ihr Alter, ihre Nationalität usw. Wir können also weitermachen und D double underscore init sagen D double underscore Und innerhalb unserer Klammern müssen wir zunächst self durchgehen, und self stellt die Instanz unserer Klasse dar, und es ermöglicht den Zugriff auf Instanzattribute und Mesoden, es ermöglicht den Zugriff auf Instanzattribute und falls wir Mesoden hätten Jetzt wollen wir unsere Parameter definieren. Nun, dazu gehören zum Beispiel Informationen der Person, also ihr Vorname, Nachname, asiatische Nationalität usw. Und wir werden es zuerst als Parameter einrichten, okay? Also das wird temporär sein, und dann wird es als permanente Variable mit self zugewiesen , aber dazu kommen wir gleich. So können wir weitermachen und zum Beispiel ID definieren. Wir werden den Namen mit dem ersten Unterstrich haben, wir werden den Namen mit dem letzten Unterstrich haben, wir werden das Alter und die Ordnung. Lassen Sie mich aus Gründen der Übersichtlichkeit die Ansicht verkleinern. Und dann wollen wir nur noch einen Doppelpunkt hinzufügen und fahren wir fort. Ordnung. Als Nächstes möchten wir unsere Parameter unseren Instanzattributen zuweisen unsere Parameter unseren Instanzattributen zuweisen Wir werden also Self Dot ID sagen. Entspricht ID. Wir weisen hier also im Wesentlichen ID-Parameter dem Instanzattribut von Self Dot ID zu Instanzattribut von Self Dot Und das wird im Grunde die eindeutige ID für die Person sein, und wir machen dasselbe für den Rest, dieselbe Art von Prozess Wir sagen Selbstpunkt, erster Unterstrich des Namens. Das entspricht dem Namen mit dem ersten Unterstrich. Dann machen wir Selbstpunkt, Name des letzten Unterstrichs, entspricht dem Namen des letzten Und Sie können sehen, wie es entsprechend eingerichtet wird , während es verwendet wird Dann können wir sehen, dass der Selbstpunkt G dem Alter entspricht. Selbstpunkt-Nationalität entspricht Nationalität, einfach so. Wir haben das alles instanziiert. Nun, nur um hier ein bisschen mehr Klarheit mit dem Self-Schlüsselwort zu schaffen, das wir Denken Sie daran, dass es sich um einen Verweis auf die aktuelle Instanz dieser Klasse handelt, und er ermöglicht es uns, auf unsere Attribute zuzugreifen und diese zu ändern , die für jedes Objekt, das wir haben, spezifisch sind . Denk einfach daran. Dann haben wir hier Self Dot ID, Self Dot Vorname, Self, den Nachnamen, Self Dot Alter und Self Nationalität. Sie können diese als Attribute betrachten, und jedes Attribut ist eine Variable, die objektspezifische Daten speichert . Also hier wird es natürlich das D der Person sein, ihr Vorname, ihr Nachname, ihr Alter und ihre Nationalität. Das ist also im Wesentlichen das, was wir dort tun. Als Nächstes müssen wir nun eine Instanz unseres Objekts der Personenklasse erstellen . Also lass uns das machen. Und wir müssen sicherstellen, dass wir anpassen , wo wir das tun. Also muss es in der gleichen Zeile sein wie unsere Klasse hier. Lassen Sie uns also ein Objekt der Personenklasse erstellen. Wir können diesem Variablennamen also alles geben, was wir wollen. Ich werde sagen, dass Person eins gleich ist, und dann müssen wir auf die Personenklasse verweisen. Und innerhalb dieser Klasse werden wir im Grunde weitermachen und unsere Werte oder Argumente, man könnte sagen, zu den Attributen hinzufügen , die wir haben Okay, also können wir weitermachen und den Wert eingeben. Also zuerst haben wir Ausweis, Vorname, Nachname, Alter und Nationalität. Ich werde sie weitergeben. Ich sage eins für den Ausweis. Dann haben wir den Vornamen. Ich sage Ono, dann haben wir den Nachnamen, ich sage Pretorius und dann haben wir Alter, LLC, 29, und dann haben wir Nationalität, sagt von Afrika, einfach so So können wir also ein Objekt der Klasse Person erstellen Objekt der Klasse Person Dann wollen wir die Attribute der Person drucken. Denken Sie also daran, dass wir unsere Attribute entsprechend eingerichtet haben. Also ID, Vorname, Nachname, Alter und Nationalität. Jetzt wollen wir sie drucken, also zeige ich Ihnen, wie wir das machen können. Wir können dann zum Beispiel print sagen und dann wollen wir uns auf die Variable beziehen , die wir hier setzen und die der folgenden zugewiesen ist, und wir können einfach Person eins sagen und Sie können einfach Punkt sagen und dann das Attribut. Wir können also vorerst ID sagen, Person zuerst einen Punkt drucken und den Namen unterstreichen Und die Person mit einem Punkt drucken und schon hatten wir den Namen des letzten Unterstrichs. Das macht weiter und druckt den Wert aus, der unserem Attribut zugewiesen wurde Wir haben einen, wir haben Arno und Pretors und das ist es, was in unserer Ausgabe ausgedruckt wird Lassen Sie uns weitermachen und diesen Code ausgeben und ausführen. Lass uns das machen. Los geht's, wir kriegen einen, wir bekommen Ehre und wir kriegen Pretorius Auf diese Weise können wir uns absichern und sicherstellen, dass wir den Output so haben, wie er sein sollte Lassen Sie uns das etwas klarer machen, damit Sie sehen können, wie die Ideale aussehen, der Vorname und der Nachname So können wir im Wesentlichen unsere Klasse erstellen, wie wir unsere Innit-Methode definieren, unsere Parameter einrichten und wie wir eine Absicherung machen und den Rest einrichten können und wie unsere Parameter im Wesentlichen zu Attributen werden Ordnung. Das war's für diese praktische Laborübung, gut gemacht bei der Erstellung Ihrer allerersten Klasse und Definition Ihres allerersten Objekts hier und der Ausgabe aller notwendigen Daten indem Sie referenzieren, indem Sie Punkt gefolgt vom Attributnamen sagen und dann alle Daten abrufen , die mit dem S-Objekt verknüpft wurden Das ist es also. Ich werde hier eine zusätzliche praktische Laborübung hinzufügen, die sich mehr auf die Erklärung konzentrieren wird. Also werde ich nur ein bisschen mehr erklären, und wir können ein bisschen üben, ein bisschen mehr üben. Sie können also auf die nächste Übung gespannt sein, oder Sie können mit der nächsten Lektion fortfahren. Es liegt wirklich an Ihnen , was Sie tun möchten. Aber das ist es, würde ich sagen, für diese spezielle Laborübung. 63. Vertiefung in Klassen und Objekte – [Optionales Labor]: Hallo, alle zusammen. Und willkommen zur nächsten praktischen Laborübung, die im Grunde ebenfalls optional sein wird. Wenn Sie also eine Hecke überspringen möchten, können Sie dies gerne tun und mit der nächsten Lektion fortfahren. Andernfalls werden wir einfach mit den Klassen und Objekten detaillierter fortfahren. Stimmt, also möchte ich etwas mehr über Parameter und Attribute sagen. So können wir die wichtigen Felder sehen , die wir definiert haben und die wir verwenden möchten, wie ID, Vorname, Nachname, Alter, Nationalität. Nun, wie kann ich sagen, in den Klammern der int-Methode werden diese als unsere Parameter angesehen, werden diese als unsere Parameter angesehen, und sie existieren nur vorübergehend innerhalb dieser int-Methode Dann benutze ich Self Dot. Wir richten hier im Wesentlichen unsere Attribute wie ID, Vorname, Nachname, Alter und Nationalität ein, indem wir unsere Attribute wie ID, Vorname, Nachname, Alter und Nationalität ein, Self-Punkt sagen und uns dann entsprechend auf Nationalität, Alter, Nachname, Vorname und ID beziehen Nachname, Vorname und ID Diese gehören zum Objekt und können später abgerufen werden Unsere Attribute gehören zu unserem Objekt und können später abgerufen werden Dann erstellen wir natürlich, wie wir wissen, ein Objekt, das auch als Erstellung unserer Instanz bezeichnet wird. Und was wir hier danach mit unseren Print-Anweisungen hier machen , ist, dass wir auf unsere Attribute zugreifen, weil sie jetzt in unserem Objekt angegeben sind. Eine weitere Sache , die ich hier mit den Parametern, die wir hier definiert haben, erwähnen sollte , ist , dass sie außerhalb unserer Innit-Methode nicht existieren Nur unsere Attribute, die wir definiert haben, bleiben erhalten und können außerhalb unserer Klasse aufgerufen werden Also nur etwas, das ich erwähnen wollte , damit Sie wissen, was wir einrichten Okay, und eine letzte Sache, wisse einfach, dass unsere Parameter hier wieder temporär sind und nur existieren, solange innit läuft, und dass unsere Attribute, die wir mit Self Dot definiert haben, permanent sind und in unserem Objekt existieren Ordnung. Das ist alles, was ich weiter erwähnen wollte, damit Sie besser verstehen, wie wir beide Optionen nutzen können. Ordnung. Als Nächstes machen wir einfach eine weitere praktische Übung. Also werde ich dir nur zeigen, wie wir eine weitere Klasse erstellen können, damit wir einfach mehr damit üben können. In Ordnung, also lass uns weitermachen und etwas mehr üben. Also wollen wir jetzt eine weitere Klasse definieren, unsere Attribute einrichten, unser Objekt erstellen usw. Also werde ich das löschen und lass uns anfangen. Also ich will Klasse sagen und wir werden zum Beispiel mit einem Auto arbeiten. Dann wollen wir weitermachen und unsere Innit-Botschaft einrichten. Ich sage de double underscore init, pass through self und dann, womit wir arbeiten werden und was wir letztendlich als unsere Attribute wollen als unsere Attribute Wir werden also Marke, Modelljahr und Farbe haben. Im Dickdarm. Dann haben wir unsere Parameter definiert , die temporär sind. Jetzt wollen wir unsere Attribute einrichten, die in unserem Objekt gespeichert werden. Um uns zu helfen, benutzen wir uns selbst und sagen: Selbst Punkt Marke ist gleich Marke Dann haben wir Selbstpunktmodell, entspricht Modell, Selbstpunkt hier entspricht hier und Selbstpunktfarbe entspricht Farbe Da haben wir's. Also haben wir das entsprechend definiert. Jetzt wollen wir unser Objekt oder unsere Instanz unserer Autoklasse erstellen , und wir müssen sicherstellen, dass wir dies in Übereinstimmung mit unserer Klasse und nicht innerhalb dieser Init-Methode tun Übereinstimmung mit unserer Klasse und nicht innerhalb dieser Init-Methode Also möchte ich sichergehen, dass ich hier der Klasse entspreche. Dann mache ich zum Beispiel ein Auto und setze eine Variable. Dann werde ich dieses Objekt meiner Autoklasse erstellen. Ich möchte auf die Klasse verweisen, dann kann ich die Werte übergeben. Hier werde ich zum Beispiel Ty Yota sagen. Dann nehme ich Cola und dann kann ich 2021 sagen. Und wir können Blau sehen. Sie können sehen, dass das passt. Zunächst können wir natürlich sehen, dass wir eine Marke haben, also Toyota, Corolla, wir werden das Modell, das Jahr 2021 und die Farbe Blau haben . Das haben wir alles definiert Jetzt wollen wir auf die Attribute unseres Objekts zugreifen. Ich scrolle jetzt nach unten und lasse mich hier tatsächlich herauszoomen. Und sagen wir drucken, und wir wollen uns auf diese Variable beziehen. Also sagen wir Auto mit einem Punkt, und wir können uns einfach auf das Attribut beziehen , das Marke sein wird. Dann können wir sagen, Auto mit einem Punkt drucken, und dann können wir Modell, Auto mit einem Punkt drucken sagen , und wir haben, und dann Auto mit einem Punkt drucken, und das ist Farbe. Also werden wir irgendwann die Werte ausgeben , die wir hier haben. Marke Dot wird Toyota sein, Punktmodell wird Corla sein, Dot wird 2021 sein und die Punktfarbe wird Blau sein Lassen Sie uns weitermachen und diesen Code ausführen. Und hier können wir sehen, dass wir hier wie erwartet das folgende Ergebnis erzielen . In Ordnung. So können wir weitermachen und mit unseren Klassen, unseren Objekten, Parametern und unseren Attributen arbeiten Objekten, Parametern und unseren Attributen und so können wir das alles zusammenfügen. Letztlich konzentrierte sich dies jedoch hauptsächlich auf Klassen und Objekte. Ordnung, Leute. Also das ist es. Ich habe gesehen, dass ich ein bisschen mehr machen werde , damit wir mehr üben können und so, aber das ist es für diese spezielle Laborübung, also können wir das einfach verschieben und fertig. 64. Benutzerdefinierte Methoden: Hallo zusammen und willkommen zur nächsten Lektion, die sich mit benutzerdefinierten Methoden befassen wird . Lass uns einen Blick darauf werfen. Das Programm, was ist eine benutzerdefinierte Methode? Einfach ausgedrückt handelt es sich um Methoden, die wir innerhalb einer Klasse selbst definieren können , um die Aktionen zu bestimmen , die ihre Objekte ausführen können Wenn wir also eine Analogie nehmen, sollten wir eine verwenden, mit der wir zuvor gearbeitet Deshalb haben wir zuvor eine Klasse erstellt , die auf dem Personen-Blueprint basierte den Attributen, die wir haben, gehören natürlich ID, Vorname, Nachname, Alter, Nationalität. Mit unseren Objekten können wir beispielsweise so viele Objekte erstellen, wie wir möchten Aber hier haben wir zum Beispiel zwei Objekte, und sie beziehen sich auf jede einzigartige Person Was wir auch tun können, ist, diesen Objekten Methode hinzuzufügen In diesem Fall würden die geeigneten Methoden also für eine Person Folgendes beinhalten : Unterricht, Essen, Lernen und Schlafen. Wenn Sie zum Beispiel eine Fahrzeugklasse hätten, wäre es wahrscheinlich sinnvoll, Methoden wie Service Car, Drive Car, Kilometerstand oder irgendeine Art von Methode oder Aktion, sollte ich sagen, zu haben Methoden wie Service Car, Drive Car, Kilometerstand oder irgendeine Art von Methode oder Aktion, sollte ich sagen, In jedem Fall könnten Sie die Nachricht als eine Aktion behandeln , die Sie Sie erstellen , in den Anwendungsfall einbeziehen Art Ihrer Klasse und der zugehörigen Objekte, die können Ordnung. Das war's also für den theoretischen Überblick. Wir werden jetzt weitermachen und in den Laborübungen arbeiten und diese Logik auf eine bestimmte Klasse anwenden. 65. Integrieren von benutzerdefinierten (Instanzen)-Methoden – [Lab]: Hallo zusammen und willkommen zur nächsten praktischen Laborübung, die sich auf die Verwendung benutzerdefinierter Methoden mit unseren Klassen und Objekten konzentrieren wird . Lassen Sie uns zunächst mit den Grundlagen beginnen, indem wir unsere Klasse definieren, unsere Struktur einrichten und dann unser Objekt erstellen. Wir werden ein bekannteres Beispiel wählen , damit wir uns viel leichter mit der Idee von benutzerdefinierten Methoden vertraut machen können. Definieren wir also zunächst unsere Klasse. Also werden wir wieder Person benutzen. Dann wollen wir weitermachen und unsere Init-Methode zusammen mit den erforderlichen Parametern definieren mit den erforderlichen Parametern Dann sagen wir defunds init, gefolgt von einem doppelten Dann müssen wir uns selbst durchgehen, dann ID. Erster Unterstrichname, letzter Unterstrichname und dann haben wir Alter und Zoomen wir einfach hier raus und vergrößern unser K am Ende. Ordnung. Jetzt können wir self verwenden, um die Werte in unserem Objekt zu speichern. Jetzt wollen wir unsere Attribute einrichten. Also werde ich sagen, Selbstpunkt-ID ist gleich ID, Selbstpunkt, Unterstrichname entspricht erstem Unterstrichnamen, dann Selbstpunkt, letzter Unterstrichname entspricht letztem Unterstrichnamen Dann entspricht Selbstpunktalter dem Alter und Selbstpunkt-Nationalität entspricht Nationalität. Dann entspricht Selbstpunktalter dem Alter und Selbstpunkt-Nationalität entspricht Nationalität. Perfekt. Wir haben dieses Setup. Nun, außerhalb unserer Methode hier in Übereinstimmung mit unserer Klasse müssen wir unser Objekt erstellen. Ich sage, Person ist eins gleich beziehe mich dann auf die Personenklasse Dann kann ich meine Werte weitergeben. Dann nehme ich einen. John, dann Doe, dann 28 Jahre und Nationalität, wir können einfach USA sagen. Okay, da haben wir es. Also haben wir alles definiert. Es gibt ID, Vorname, Nachname, Alter und Nationalität. Lassen Sie uns nun fortfahren und diese Werte entsprechend den Attributen drucken , auf die wir verweisen. Ich werde also ein bisschen nach unten scrollen und wir können „Drucken“ sagen. Beziehen Sie sich auf Person eins, Punkt, und dann ist das Attribut. Wir werden natürlich zuerst den Namen unterstreichen, und dann können wir sagen, Person eins drucken, Punkt, und wir können zum Beispiel Nationalität sagen Jetzt können wir weitermachen und diesen Code ausführen. Da sind wir bei den Ausgängen, wo wir John und USA sehen können. Wir haben unsere Basisklasse definiert. Wir haben auch ein Objekt erstellt und die gewünschten Werte entsprechend dem definierten Attribut ausgegeben , und es werden die Werte aus dem Vornamen und der Nationalität entsprechend abgerufen. Perfekt. Uhrzeit der benutzerdefinierten Nachricht. Stellen Sie sicher, dass Sie das an Ort und Stelle haben und dass Sie es verstanden haben. Wir hatten jetzt viel Übung mit Klassen und Objekten. Lassen Sie uns nun die Botschaft anwenden. Vorerst können wir einfach die Print-Anweisung entfernen und nun unsere Mesoden definieren. Richtig. Lass uns weitermachen. Nun, wenn Sie Ihre Methoden einrichten, müssen sie mit Ihrem Innit-Mesod übereinstimmen Es wird in Ihrer Klasse sein, entsprechend der Innit-Botschaft Wie Sie hier sehen können, gibt es eine Linie mit Einrückungen. Ich müsste Folgendes tun. sich an Ihre Init-Methode, und dann können Sie Ihre Methode definieren Ich sage Tod und nenne das vorstellen Ich werde ein Einführungsmesod sein, könnte man sagen. Dann muss ich hier self als Parameter angeben. Und wir verwenden self, damit wir auf unsere gespeicherten Attribute zugreifen können. Also haben wir, wie Sie sehen können, Vorname, Nachname, Alter und Nationalität. Und als Nächstes wollen wir weitermachen und eine einfache gedruckte Erklärung erstellen , auf der nur Hallo gesagt wird. Mein Name ist Doppelpunkt, und dann verwende ich die Verkettung von Zeichenketten, weil wir es mit einem Zeichenkettenwert zu tun haben werden Also werde ich sagen, dass der Name mit einem Punkt zuerst unterstrichen wird. Richtig. So können wir eine einfache Methode definieren. Jetzt sucht self dot Fn nach dem Attribut und dem Wert , der für das Objekt eingerichtet wurde , das mit diesem Attribut verknüpft ist. In diesem Fall wird es so sein, dass John am Ende ausgegeben wird. Jetzt wollen wir nur noch diese Methode aufrufen. Diese Methode heißt Introduce und wir werden sie auf die erste Person anwenden, die natürlich auf diese spezielle Art gesetzt ist als Objekt mit dem Wert John als Vorname gesetzt. diese Weise können wir den Vornamen von Sele angeben, und er wird mit diesem Objekt verknüpft , das wir erstellen, und dem Objekt , das wir als Vornamensattribut erstellt haben , nämlich John Um das zu tun, müssen wir es aufrufen, und um diese Funktion aufzurufen, können Sie einfach Person eins sagen Punkt und Intro-Saft, Klammern öffnen und schließen Und hier, was passieren wird , ist, dass wir unseren Vornamen selbst eingeben und das wird diese Aussage ausdrucken, und das wird diese Aussage ausdrucken da wir das Mesod nennen Und was wir jetzt tun können, ist weitermachen und den Code ausführen. Und da steht: Hallo, mein Name ist John. Okay, so einfach ist es also. So können wir einfach weitermachen und eine Methode erstellen. Ordnung. Lassen Sie uns jetzt weitermachen und eine andere Methode erstellen. Ich möchte eine erstellen, auf der alles Gute zum Geburtstag steht. Wir können sehen, dass John Doe derzeit 28 Jahre alt ist, also muss ich eine neue Methode erstellen. Lass mich nach unten scrollen. Ich werde sagen, das wird DF sein und es wird Underscore Birthday the Mess einen Namen geben Underscore Birthday the Mess einen Namen Ich werde selbst durchgehen damit wir auf die Attribute zugreifen können, und dann müssen wir einige Funktionen hinzufügen Wir können also sagen, dass Self Dot Age Plus gleich Eins ist, und dadurch wird das Altersattribut aktualisiert , das im Objekt gespeichert ist, und es wird um eins erweitert John wird dann technisch gesehen 29 Jahre alt sein. Lassen Sie uns das jetzt aber ausdrucken . Ich werde Drucken sagen. Herzlichen Glückwunsch zum Geburtstag und ich sage Kommazeichen, Zeichenkettenverkettung Ich sage selbst und ich sage Selbstpunkt zuerst und unterstreiche den sage Selbstpunkt Also heißt es Happy Birthday. Und ich werde auch weitermachen und sagen, am Ende sage ich, dass du es jetzt bist. Und dann möchte ich weitermachen und casten, denn denken Sie daran, dass das G hier als Ganzzahl behandelt wird, also muss ich es hier in eine Zeichenfolge umwandeln, und das liegt daran, dass wir eine Zeichenkettenverkettung verwenden Ich möchte Zeichenfolge sagen. Wir müssen hier Plus sagen. Und es wird Self Dot H sein . Und das heißt jetzt sind. Und der Grund, warum ich hier das Plus hinzufüge, ist, dass wir Zeichenkettenverkettung verwenden und in eine Zeichenfolge umwandeln werden . Okay? Und das wird funktionieren. Wenn ich das Plus nicht hinzugefügt habe, wird es einen Fehler geben, also müssen wir sicherstellen, dass wir hier wie folgt hinzugefügt haben. Jetzt kann ich diese Nachricht einfach nennen, damit ich dann Person einen Punkt sagen kann und es heißt, habe Geburtstag mit Unterstrich, und wir können die Klammern öffnen und schließen , die sagen werden, Happy Birthday, John, du bist jetzt und es wird auf eine Hecke gehen und das Alter ermitteln und daran denken, dass du bist jetzt und es wird auf eine Hecke gehen und wir es plus eins hinzufügen, also wird es das Alter bekommen und plus eins dazu hinzufügen, also ist es 29, es sollte diese vollständige Struktur ausdrucken. Wenn ich den Code jetzt ausführe, können wir jetzt sehen, dass wir ihn wie folgt haben. Es sieht ein bisschen hässlich aus, weil ich das Leerzeichen nicht hinzugefügt habe. Ich kann das Leerzeichen dort einfach hinzufügen. Da haben wir's. Da sind wir jetzt viel sauberer. Sie können jetzt sehen, dass da steht: Hallo, mein Name ist John. Herzlichen Glückwunsch, John, du bist jetzt 29. Richtig. So können wir also Methoden in unseren Klassen und Objekten erstellen und verwenden und auch Message aufrufen. Denken Sie also daran, dass dem Anwendungsfall abhängt , den Sie verwenden. Also hier ist der vollständige Code, damit Sie ihn sehen können. Es hängt also von dem Anwendungsfall ab, den Sie verwenden, und die Nachricht wäre auf dieser Grundlage angemessen. In diesem Fall hatten wir also vorstellen“ und „Geburtstag“ als Botschaft verwenden, weil es für eine Person angemessen ist, eine Person vorzustellen und ihr Botschaft verwenden, weil es für eine Person angemessen ist, eine Person vorzustellen auch alles Gute zum Geburtstag zu sagen . Richtig. Das war's für diese spezielle Laborübung. Ich werde eine weitere Laborübung hinzufügen , die sich auf Methoden konzentrieren wird, aber etwas detaillierter, und darauf werden wir in der nächsten praktischen Laborübung eingehen. Dies sind jedoch die Grundlagen für die Verwendung benutzerdefinierter Methoden. 66. Arbeiten mit statischen und Kursmethoden – [Lab]: Hallo, alle zusammen. Willkommen zur nächsten praktischen Laborübung , bei der es weiterhin um Methoden gehen wird. Nun möchte ich erwähnen, dass wir früher gelernt haben, wie man benutzerdefinierte Methoden einsetzt. Diese werden im Bereich der Klassen und Objekte auch als Instanzmethoden bezeichnet , da wir mit self arbeiten, um mit unseren Objektattributen zu arbeiten. Jetzt gibt es auch zwei andere Methoden, die wir bekommen. Diese werden als statische Methoden und auch als Klassenmethoden bezeichnet. Wir werden auch daran arbeiten und auch darauf Wert legen. Richtig, also fangen wir mit statischen Methoden an. Okay. Eine statische Methode verwendet also nicht self, weil sie nicht mit den Attributen unserer Objekte interagiert, und sie verhält sich sehr ähnlich wie eine normale Funktion, könnte man sagen, aber sie ist in unserer Klasse, nur um besser organisiert zu sein Und wir können sie aufrufen, ohne ein Objekt erstellen zu müssen. Lassen Sie uns also weitermachen und eine einfache statische Methode erstellen. Richtig. Okay. Hier haben wir also unsere benutzerdefinierten Methoden vorgestellt und haben Geburtstag , auch bekannt als Instanzmethoden. Lassen Sie uns eine statische Methode definieren und sie wird auch einen Dekorateur haben Wir müssen uns natürlich innerhalb unserer Klasse und wieder mit unserer Init-Methode übereinstimmen, und wir müssen sicherstellen, dass wir so eingestellt sind Wir müssen etwas Platz hinzufügen. Und ich werde eine statische Nachricht erstellen , die überprüft, ob die Person erwachsen ist oder nicht. Also werde ich sagen, dass der Tod ein Erwachsener ist. Also können wir weitermachen und das Attribut selbst direkt durchgehen , nämlich Alter Wir können also einfach das Alter so sagen, wie es ist. Und denk dran, wir benutzen uns selbst nicht, okay? Und das wird sicherstellen, dass wir direkten Zugriff auf die Attribute haben. Okay. Nun, nachdem wir das definiert haben, müssen wir unser Cerlon hinzufügen und dann wollen wir die Funktionalität ausführen Also sagen wir, dass ein höheres Alter gleich 18 ist, dann können wir sagen, gib „ true“ zurück, andernfalls gib „false“ zurück Und denken Sie daran, um daraus am Ende ein statisches Mesod zu machen, müssen Sie den Decorator hinzufügen , das ist eine Und jetzt haben wir unsere allererste statische Methode eingerichtet . Okay. Nun, eine weitere Sache, die ich hier über die statische Methode, die wir erstellt haben, erwähnen möchte , ist, dass sie zur Klasse gehört, aber nicht auf unsere Instant-Attribute zugreift. Okay? Also nur etwas , das ich erwähnen möchte. Und was wir hier einfach machen, ist dass wir durch das Alter gehen, und wir werden anhand ihres Alters überprüfen, ob die Person erwachsen ist . Jetzt können wir diese Methode als Erwachsenen-Methode bezeichnen und sie auf eine bestimmte Klasse anwenden. Und in unserem Fall ist unsere Klasse eine Person. Also können wir nach unten scrollen. Okay, etwas Platz hinzufügen. Nun wollen wir print sagen und das statische Mesod aufrufen und wir werden uns auf die Klasse Person beziehen, und Sie wollen sagen, Punkt steht für Unterstrich für Erwachsene und wir rufen hier die statische Nachricht auf, wie Sie sehen können, dann können wir hier einen bestimmten Wert übergeben Hier sage ich zum Beispiel 25, und es wird geprüft, ob die Person erwachsen ist oder Also können wir diesen Code ausführen. Und hier können wir sehen, dass es hier unten wahr ist. Wenn ich hier raufgehe, können wir sehen, dass das als wahr ausgegeben wurde. Okay. Und lass uns weitermachen und noch einen machen. Nehmen wir an, die Person ist erwachsen, und lassen Sie mich 17 eintragen. Und wir können sehen, dass wir hier unten falsch liegen, oder? So können wir also eine Absicherung machen und unsere statische Methode aufrufen und so können wir sie absetzen. Es war also nur eine sehr einfache, explizite Methode ich überprüfe, die wir verwendet haben. Okay. Also das ist nur etwas, das ich nur der Klarheit halber erwähnen wollte . Okay. Nun, das nächste, was wir uns ansehen wollen, ist eine Klassenmethode. Okay, wir haben also unsere statische Methode. Nun, eine Klassenmethode funktioniert mit der Klasse selbst, okay, nicht mit einem einzelnen Objekt, könnte man sagen. Und sie verwendet CLS anstelle von self, um auf unsere Klasse zu verweisen, und wir können damit unsere Objekte auf andere Weise erstellen Mit anderen Worten, was wir tatsächlich tun können ist Standardwerte hinzuzufügen Es ist also in gewisser Weise sehr ähnlich, wenn Sie den Standardargumenten folgen, und Sie werden gleich sehen, was ich meine. Okay? Definieren wir also zunächst eine Klassenmethode. Ich werde es gleich hier unten erstellen, statische Methode. Und was wir tun werden, ist wir mit dem Dekorateur beginnen können, und ich werde weitermachen und Klassenmethode sagen Okay. Und wir können dann Tod sagen. Und ich bin hier. Ich gebe als Methodennamen WIS, Unterstrich Standard, Unterstrich Nationalität Okay. Und dann wollen wir als Erstes CLS durchgehen Und denken Sie daran, CLS bezieht sich auf das Klassenobjekt auf die Klasse selbst, und wir erstellen damit ein neues Objekt. Okay. Und im Wesentlichen wollen wir sicherstellen , dass statt nach einer Nationalität gefragt wird, sie automatisch auf einen bestimmten Wert gesetzt wird, der dann als unbekannt festgelegt wird. Okay. Also, was wir dann durchqueren werden, ist, dass wir auf eine Hecke gehen und unsere Felder durchqueren werden. Also werden wir einen Ausweis haben. Wir werden den Namen mit dem ersten Unterstrich haben Wir werden den Namen mit dem letzten Unterstrich verwenden, und wir werden das Alter haben, natürlich ohne Nationalität Dann wollen wir, wie ich bereits erwähnt habe, eine Person mit unbekannter Nationalität erschaffen mit unbekannter Ich kann „CLS zurückgeben“ sagen, und dann geben wir ID, den ersten Unterstrichnamen, Namen des letzten Unterstrichs, das Alter zurück, und dann können wir für den Block Nationalität „ unbekannt“ eingeben , falls kein bestimmter Wert hinzugefügt wurde Was wir jetzt tun können, ist ein Objekt mit unserer Klasse message zu erstellen Das wird also sehr spezifisch sein. Also für den Moment werde ich das erstmal entfernen, und Sie werden hier sehen, ich nenne diese Person zweifach gleich, und wir werden Person Punkt sagen Und wir werden diese Klassenbotschaft nutzen. Also hier sage ich W unterstreichen Standard unterstreichen Nationalität Okay. Und darin werde ich meine Werte weitergeben. Hier lege ich Ideen zwei fest, nenne, ich sage Jane Smith, ich sage 24. Sie werden sehen, dass ich die Nationalität jetzt weglassen werde. Lassen Sie mich das also entsprechend ausführen und die Ergebnisse überprüfen Ich sage Drucken, beziehe mich auf Person zwei, die Variable, sagen Punkt, und dann sage ich einfach zuerst den Namen unterstreichen und ich sage Person zwei drucken, und es ist einfach das, was hier ist, Punkt und ich werde Nality sagen Jetzt können Sie sehen, dass ich keine bestimmte Nationalität angegeben habe , also wird zur Ausgabe zurückgekehrt Lassen Sie uns das jetzt ausführen. Und hier haben wir Jane und Unknown. Und wie Sie sehen können, war das der Fall, als ich auf das Nationalitätsattribut Bezug genommen habe, aber ich habe hier keinen Wert angegeben, also wurde dieser Mesod geändert Und wie Sie hier sehen können, gebe ich Vornamen, den Nachnamen, das Alter und die ID zurück , aber ich lasse die Nationalität hier als unbekannt Okay? Das kann also eine sehr nützliche Klassennachricht sein, und in diesem Fall wollten wir eine andere Möglichkeit haben, ein Objekt zu erstellen. Das ist also eine weitere Möglichkeit , ein Objekt zu erstellen. Und wenn Sie zum Beispiel einen Standardwert festlegen möchten, wenn ein Benutzer nicht selbst einen bestimmten Wert angibt, z. B. die Nationalität, wie Sie sehen können, okay. Und das ist sehr hilfreich , wenn wir unsere Klassenebenenattribute selbst ändern möchten . In Ordnung. Das sind also die einfachen Möglichkeiten, wie Sie Ihre statischen Methoden und auch Ihre Klassenmethoden selbst verwenden können Ihre statischen Methoden und auch . Okay. Nun, das Letzte, was ich tun werde, ist, dass ich einfach noch einmal tief in diese spezielle Übung eintauchen möchte . Ich werde nur einige Zeit damit verbringen, mehr über die statische Methode und die Kursbotschaft zu erklären mehr über die statische Methode und , nur um Ihr Wissen zu festigen, damit Sie richtig lernen, sollte ich sagen Also werden wir das ein bisschen genauer untersuchen Richtig. Das nächste, was ich erklären möchte, ist hier mit unserer statischen Methode, wir haben das Alter. Nun, das Alter dient hier nur als normaler Parameter, und wir geben diesen bestimmten Wert weiter, wie wir es zuvor getan haben. Wenn ich also weitermachen und wiederholen würde, wenn ich „Drucken“ sage, würde ich mich entsprechend darauf beziehen , indem ich sage, dass der Punkt der Person für Erwachsene steht, und wir geben zum Beispiel 19 Um den Code auszuführen, und wir haben hier Wahr. Im Grunde ist es der Art und Weise, wie wir Funktionen hätten, sehr ähnlich , aber man könnte die statische Methode als Funktion innerhalb einer Klasse behandeln , man könnte sagen, was ihre Organisation angeht . Wir rufen hier die statische Methode auf und geben einfach das Argument oder den Wert zurück , der hier übergeben und hier durch das Alter ersetzt wird, das als Parameter fungiert , den wir tatsächlich überprüfen. Das ist nur etwas, das ich hier der Klarheit halber erwähnen wollte . Der Versuch, statische Methoden zu sehen, sind Funktionen, die nur innerhalb einer Klasse definiert sind. Ich möchte, dass du es so siehst. Okay. Okay, die Person ist hier. Die Person ist also tatsächlich Art von Berührung , die ich erwähnt habe, liegt daran, dass dies eine Art Funktion ist, weil es sich hier um eine Funktion innerhalb einer Klasse handelt, und wir beziehen uns auf die Klasse. So müssten wir uns zuerst darauf beziehen. Wir beziehen uns zuerst auf die Klasse und dann natürlich auf den Mesodnamen Okay, jetzt ein bisschen mehr Klarheit über die Klassenmethode hier. Also, was hier mit unserer Klassenmethode vor sich geht , in diesem Fall verwenden wir CLS anstelle von self, verwenden wir CLS anstelle genau das, was wir hier tun, und das bezieht sich auf die Personenklasse selbst Und dann sind ID, Vorname, Nachname H im Grunde nur die Parameter, die wir benötigen, um eine Person zu erstellen Wie wir sehen können, wird die Nationalität nicht weitergegeben, da wir sie bei der Erstellung der Rückmeldung standardmäßig auf unbekannt setzen möchten bei der Erstellung der Rückmeldung standardmäßig auf unbekannt . Okay? Richtig. Wie wir später sehen können, geben wir CLS zurück, was wir hier im Wesentlichen tun, ist, dass wir weitermachen und die Konstruktorklasse aufrufen, die hier def init ist, und sie wird uns helfen, ein neues Person-Objekt mit den angegebenen Details zu erstellen und im Wesentlichen die Details, die wir hier beim Aufrufen der Klasse mesod und in der Standardfunktionalität hinzufügen können wir hier beim Aufrufen der Klasse mesod und in der Standardfunktionalität hinzufügen der Klasse mesod und in der Die Nationalität wird auf unbekannt gesetzt, sodass wir uns keine Sorgen machen müssen dass wir einen zusätzlichen Wert angeben müssen, den wir übergeben möchten , wenn wir die Parameter hier entsprechend einrichten. Ordnung, Leute. Nur ein bisschen mehr Details dazu, nur um ein bisschen mehr zu erklären. Aber mit anderen Worten, Leute, das würde ich sagen, ist es. Wir haben jetzt gelernt, benutzerdefinierte Methoden zu verwenden, mit anderen Worten , Instanzmethoden, statische und auch Klassenmethoden. Das war's für diese spezielle Vorlesung, und wir werden uns dann in der nächsten Lektion auf Vererbung konzentrieren. 67. Was ist eine Vererbung?: Hallo zusammen und willkommen zur nächsten Lektion, die sich mit Erbschaft befassen wird. Schauen wir uns das mal an. Reich. Mit der Vererbung können wir eine untergeordnete Klasse erstellen, die alle Attribute und Methoden von einer übergeordneten Klasse erbt Methoden von einer übergeordneten Klasse Schauen wir uns das also visuell an. Wir haben also eine übergeordnete Klasse und dann haben wir zum Beispiel zwei untergeordnete Klassen, und diese untergeordneten Klassen werden im Wesentlichen sowohl Attribute als auch Methoden von dieser Elternklasse erben Methoden von dieser Elternklasse Schauen wir uns nun eine Analogie an unser Wissen über Vererbung zu festigen Nehmen wir an, wir haben einen Elternteil. Nehmen wir an, wir haben eine Mutter und sie hat zwei Kinder. Nun, das könnten wir mit der Genetik und mit der Fortpflanzung und all dem, was die Kinder erben werden, sagen mit der Fortpflanzung und all dem, was die Kinder erben werden, wir zum Beispiel, blondes Haar und grüne Augen sagen Nehmen wir an, das Kind, das Männchen erbt die blonden Haare und das Weibchen, das Mädchen, erbt grüne Augen Das ist also Erbschaft. Nehmen wir an, die Eltern oder die Mutter bringen ihnen auch bei, wie man spricht und wie man geht. Die Kinder erben jetzt also diese Methoden des Sprechens und Gehens Und das würde das gesamte Konzept zwischen Vererbung in Python festigen gesamte Konzept zwischen Vererbung in Wir hätten also die Elternklasse und wir hätten die untergeordneten Klassen. In Ordnung, Leute. Also, soweit es um Erbschaft geht, was den theoretischen Überblick angeht. Wir werden uns jetzt mit der praktischen Laborübung befassen . 68. Verwendung von Vererbung – [Lab]: Alle zusammen und willkommen zur nächsten praktischen Laborübung, die sich mit dem Thema Erbschaft befassen wird . Lasst uns anfangen. Das erste, was wir tun müssen, ist, unsere übergeordnete Klasse oder Basisklasse zu erstellen , könnte man sagen. Lassen Sie uns weitermachen und ein Beispiel verwenden, mit dem wir bereits vertraut sind , um uns das gesamte Konzept der Vererbung zu erleichtern . Richtig. Zuallererst definiere ich meine Klasse als Person. Dann wollen wir unsere Innit-Methode definieren, auch bekannt als Konstruktormethode, und diese wird aufgerufen sobald ein neues Personenobjekt erstellt wurde, und sie wird dann zu initialisierten Attributen und Instanzvariablen unserer Wir können also De underscore init, double underscore sagen. Dann geben wir den Self-IGF-Unterstrichnamen, den Nachnamen, das Alter und die Nationalität durch Self-IGF-Unterstrichnamen, den Nachnamen, . Großartig. Im Moment wollen wir unser Attribut definieren und zuordnen. Also ID, Vorname, Nachname, Alter und Nationalität mit mir selbst. Ich kann also sagen, dass Selbstpunkt-ID gleich ID ist. Dann kann ich sagen, dass der Name mit dem ersten Punkt zuerst der Unterstrich steht, und das ist dann der erste Unterstrichname und der Nachname dem Selbstpunkt Okay, und dann Selbstpunkt G und Selbstpunkt Nationalität. Okay, perfekt. Großartig. Jetzt möchte ich auch eine Nachricht erstellen damit Sie wissen, wie Sie neben Attributen auch Nachrichten erben können neben Attributen auch Richtig, also in Übereinstimmung mit deiner Init-Nachricht werde ich Tod sagen und noch einmal vorstellen Ich werde mich selbst durchschneiden. Und denken Sie daran, dass es sich bei diesen benutzerdefinierten Methoden, die wir erstellen, um Instanznachrichten handelt. Wenn wir es also mit uns selbst zu tun haben, wird es eine Instanzmethode sein. Man könnte also technisch sagen benutzerdefinierte Methode. Richtig. Also in dieser Instanz wird Mesod es der Person ermöglichen, sich vorzustellen, und wir wollen eine Zeichenfolge mit dem Namen der Person zurückgeben, mit dem Namen der Person ist das völlig in Ordnung Also können wir „Rückkehr“ sagen. Und dieses Mal werden wir F-Strings verwenden, nur um es ein bisschen zu ändern, und ich werde Hallo sagen. tue ich, und dann füge ich einfach meine Platzhalter für die Zeichenketten mit dem Namen des ersten Unterstrichs ein, und dann haben wir einen Selbstpunkt als letzten Unterstrichnamen, einfach so Und am Ende. Da haben wir es. Da ist auch unsere Methode an diese spezielle Klasse gebunden Ich will einfach nur. Da haben wir's. Machen wir es ein bisschen sauberer. In Ordnung, wir haben das Set. Nun, als Nächstes wollen wir unsere Kinderklasse definieren. Hier haben wir also unsere Personenklasse, und diese untergeordnete Klasse wird die abgeleitete Klasse sein im Grunde genommen von der Personenklasse, okay. Und sie wird alle vorhandenen Attribute und alle vorhandenen Methoden erben vorhandenen Attribute und alle vorhandenen Methoden Wir können also unsere Attribute hier sehen und wir können sehen, wie diese Methode eingeführt wird Okay, wenn Sie also mit Vererbung arbeiten, werden Sie von Ihrer übergeordneten Klasse erben, und es muss etwas sein, das Sinn macht Sie können also zum Beispiel keine Kinderklasse haben, die Auto ist, und Sie haben eine Elternklasse , die Person ist Das ergibt keinen Sinn. Person und Auto. Es ist ein bisschen verwirrend. Ein geeignetes Beispiel in diesem Fall wäre also Employee. Der Mitarbeiter ist also aus der Personenklasse abgeleitet. Das ergibt Sinn. Also lass uns weitermachen und das tun. Jetzt müssen wir eine weitere Klasse definieren. In Übereinstimmung mit der Personenklasse wollen wir also eine weitere Klasse erstellen. Also scrolle ich nach unten und sage Klasse. Und das wird Mitarbeiter genannt, was alle Eigenschaften und Methoden von der Person erben wird alle Eigenschaften und Methoden von der Person Und wir können hier einfach in Klammern auf die Personenklasse verweisen , um Und dann wollen wir weitermachen und solche schließen, und dann müssen wir unsere Init-Methode definieren, das wird die Personenklasse erweitern, und wir werden auch neue Attribute hinzufügen Es wird alle Attribute und Mesoden der Personenklasse beibehalten , und wir werden auch zusätzliche Attribute hinzufügen Lass mich dir zeigen, was ich meine. Wir können Def sagen, und wir können Double Underscore Init, Double Underscore sagen und wir sagen Self Um das einfacher zu machen, können wir einfach alles kopieren , Und das willst du einfügen. Dann können Sie zusätzliche Attribute hinzufügen. Was ich zum Beispiel tun werde, ist Job zu sagen , Titel und Gehalt zu unterstreichen. Denken Sie daran, am Ende einen Doppelpunkt hinzuzufügen Hier sind die zusätzlichen Attribute, die wir hinzufügen. Okay. Großartig. Jetzt können wir reingehen und weitermachen. Und jetzt müssen wir etwas nutzen, das als Superfunktion bekannt ist . Okay. Jetzt wird die Superfunktion verwendet, um den Konstruktor unserer übergeordneten Klasse Person aufzurufen unserer übergeordneten Klasse Person Also das wird hier natürlich unser Konstruktor Und wir werden sicherstellen, dass wir dies tun, damit wir die Attribute, die bereits persönlich existieren, nicht neu definieren müssen die bereits persönlich existieren, Wir wollen das nicht neu definieren , wir werden unseren Konstruktor unserer übergeordneten Klasse nennen, die natürlich Person sein wird Und dann können wir hier eine Absicherung machen und sicherstellen, dass wir Super-Opening- und Closing-Prinzen sagen, und Sie wollen Punkt, doppelter Unterstrich in KIT sagen, doppelter Unterstrich in KIT Und was Sie dann hier tun werden, ist die ID, den Namen mit dem ersten Unterstrich, den Namen mit dem letzten Unterstrich, das Alter und die Nationalität einzugeben Das werden also die von der Person vererbten Eigenschaften sein vererbten Eigenschaften Hier erben Sie die Attribute. Und dann wollen wir unsere neuen Attribute definieren , die die Mitarbeiterklasse spezifisch sind Und das wird dem folgen, was wir hier zuvor mit Self Dot, Self Dot usw. gemacht haben. Und das wird, wie Sie sehen können, für die Berufsbezeichnung und das Gehalt Sie können also sehen, dass sie nicht hervorgehoben wurden. Also, was Sie tun können, ist, dass Sie selbst sagen können und wir Punkt sagen, und Sie werden sagen, Job unterstreicht Titel, entspricht Job Unterstrich Titel, und dann Selbstpunkt, Gehalt entspricht Gehalt, Gehalt entspricht Gehalt, Deshalb haben wir nun unsere Attribute definiert, die für diese Mitarbeiterklasse einzigartig sind Im Moment können wir weitermachen und eine Funktion definieren , die nur für die Mitarbeiterklasse bestimmt ist. Hier können Sie entsprechend Ihrer Init-Methode eine gründliche Arbeit ausführen, die Informationen unterstreichen, und Sie möchten sich selbst durchgehen, und wir werden diese Methode bereitstellen damit sie uns berufsbezogene Informationen über den Mitarbeiter geben kann , und wir werden eine Zeichenfolge zurückgeben seine Berufsbezeichnung angibt Also werde ich einfach return sagen, und wir werden weitermachen und F-Strings verwenden, ich sage F, und ich werde sagen, dass ich als A arbeite, und dann für den Parameter, der übergeben wird, Self-Punkt-Job, Unterstrich-Titel und Punkt da. In Ordnung, da haben wir es also. Also, da ist die Botschaft , die sich nur auf den Mitarbeiter bezieht Richtig. So, jetzt können wir weitermachen und eine Instanz oder ein Objekt von Employee erstellen. Also lass uns das machen. Nochmals, das wird in der Reihe der Klasse hier in der ersten Zeile stehen. Also einfach so, damit wir sehen können, dass es in der Reihe ist, wie es sein sollte. Ich möchte nur etwas Platz hinzufügen. Okay. Jetzt können wir einfach eine Variable erstellen und diesen Mitarbeiter eins-gleich nennen Wir wollen die Mitarbeiterklasse aufrufen und nutzen . Welche Person und alle Eigenschaften hat sie geerbt. Jetzt können wir also die Werte übergeben, okay, die sich auf ID, Vorname, Nachname, Alter und Nationalität beziehen , zusammen mit ID, Berufsbezeichnung und Gehalt Also, was ich tun werde, ist meine Kanzlei zu öffnen und ich werde sagen, dass die ID eine sein wird Nennen wir John Joe und dann haben wir das Alter. Ich sage 28 und ich sage Nationalität, es wird USA sein, und dann hätten wir die Berufsbezeichnung. Ich sage Softwareingenieur und dann lege ich das Gehalt fest. Ich sage 80.000. Da haben wir's. Wir haben das alles an Ort und Stelle. Sie können also die zusätzlichen Werte sehen, die den zugehörigen Attributen zugewiesen werden , und dann alle Werte , die für die Attribute gesetzt werden , die in der Klasse Person definiert wurden . Okay. Also hier haben wir das Objekt und wir können sehen, dass wir die ersten paar geerbt und wir haben die letzten , die nativ sind, um unsere Klasse zu erben , die von einer Person, also einem Angestellten, erben wird Jetzt können wir print sagen und Mitarbeiter eins sagen und wir können Vorname sagen , das wird im Wesentlichen aus der übergeordneten Klasse stammen und dann können wir print sagen, Mitarbeiter einen Punkt, Mitarbeiter einen Punkt, und hier können wir Job underscore-title sagen Das wird in der Mitarbeiterklasse üblich sein. Richtig, also lasst uns weitermachen und diesen Code ausführen. Dann holen wir uns John und natürlich holen wir uns den Softwareingenieur. Also los geht's. Also gut gemacht, wenn Sie an diesem Punkt angekommen sind, Sie haben die Vererbung erfolgreich eingerichtet und sie gut konfiguriert. Jetzt wollen wir die Methoden aufrufen, die wir definiert haben. Also die erste Methode, die von der Klasse Person eingeführt wird , und dann die Work-Info-Methode aus der Employee-Klasse. Was wir hier unten tun können, ist, dass wir einfach Drucken sagen und Sie sagen Mitarbeiter eins, Punkt, und Sie können vorstellen sagen, und dann Mitarbeiter einen Punkt drucken, und Sie können Arbeit, Unterstrich, Info, öffnende, schließende Klammern sagen Info, öffnende, schließende Klammern Stimmt, da haben wir das, und ich werde vorerst nur die ersten beiden auskommentieren Und wir können den Code ausführen. Hier steht: Hi, ich bin John Doe. Ich arbeite als Softwareingenieur. Die erste Methode wurde aufgerufen. Hi, ich bin John Doe, und dann arbeite ich als Software-Ingenieur, was auf die Work-Info-Methode zurückgeht, die wir definiert haben. Wir können das sehen, indem wir uns auf die Variable dort beziehen , die das Objekt im Grunde erzeugt. Wir können darauf verweisen und dann die Methoden aufrufen , die für jede Klasse einzigartig sind, und wir können sehen, dass wir die Methode von der Personenklasse geerbt haben dass wir die Methode von der Personenklasse weil wir darauf zugreifen und diese Funktion entsprechend verwenden können . Ordnung, Leute, also los geht's. Wie Sie sehen können, zeigt dies, wie Sie Vererbung nutzen können, und es ist auch sehr hilfreich, wie Sie sehen, müssen Sie das Testament nicht neu erstellen und separate Klassen und alles definieren Sie können sich wirklich viel Zeit sparen, indem diese Superfunktion verwenden , die wir hier haben, um automatisch die Attribute der vorherigen Klasse für uns zu konfigurieren und dann weiterzumachen und uns im Wesentlichen zu ermöglichen, unsere eigenen Attribute zuzuweisen, die von der vorherigen Klasse für uns zu konfigurieren und dann weiterzumachen und uns im Wesentlichen zu ermöglichen, unsere eigenen Attribute zuzuweisen der neueren Klasse abhängig sind, die nur für diese Klasse typisch ist. Okay. Perfekt. In Ordnung, Leute. Das ist es. Lass uns weitermachen und das entfernen. Das ist alles für diese spezielle praktische Laborübung zum Thema Erbschaft. 69. Abstraktion: Hallo zusammen und willkommen zur nächsten Lektion, die sich mit Abstraktion befassen wird Lass uns einen Blick darauf werfen. Sie fragen sich wahrscheinlich, was in aller Welt Abstraktion ist Abstraktion ist einfach der Prozess, bei dem unnötige Details versteckt und nur die wichtigen Teile angezeigt werden Dies hilft, komplexe Systeme zu vereinfachen, indem man sich darauf konzentriert , was etwas tut, und nicht darauf, wie es funktioniert Wenn wir das nun in OOP, der objektorientierten Programmierung, nutzen würden , würde Abstraktion einfach bedeuten, einfache, benutzerfreundliche Oberflächen zu erstellen und gleichzeitig all die komplexen Implementierungsdetails zu verbergen all die komplexen Implementierungsdetails Wenn ich Ihnen nun eine einfache Analogie geben würde , um meinen Standpunkt zur Abstraktion zu veranschaulichen, wäre es eine so einfache Nehmen wir an, wir haben eine TV-Fernbedienung und wollen fernsehen. Um den Kanal zu wechseln, müssten wir auf die Fernbedienung klicken, und dann wird ein Signal an den Fernseher gesendet, um zu sagen: Okay, ich möchte, dass du zu diesem Kanal gehst. Ich möchte, dass du zu diesem Kanal gehst. Und ich möchte, dass du versuchst, den ganzen Punkt der Abstraktion zu rationalisieren Um das zusammenzufassen, wir müssen im Grunde nicht verstehen oder wissen , wie die Fernbedienung den Kanal verändert oder warum Wir wollen einfach nur fernsehen. Nun, wenn wir das auf Abstraktion anwenden, ist die ganze Idee, dass wir nicht verstehen müssen , wie etwas intern funktioniert , genau wie eine Abstraktion Wir verwenden es einfach, um das gewünschte Ergebnis zu erzielen. Ordnung. In Ordnung, Leute. Das war es also mit der Lektion der Abstraktion im Sinne eines theoretischen Überblicks Wir werden uns eingehender Anwendung auf die praktischen Laborübungen Lassen Sie uns also weitermachen und gleich darauf eingehen. 70. Arbeiten mit Abstraktion – [Lab]: Hallo zusammen und willkommen zur nächsten praktischen Laborübung, die sich auf Abstraktion konzentrieren wird . Lasst uns anfangen Jetzt müssen wir als Erstes das ABC-Modul aufrufen. Und aus dem ABC-Modul importieren wir ABC und Caps, was für die abstrakte Basisklasse steht. Wir werden also eine abstrakte Basisklasse und auch die zugehörige abstrakte Methode verwenden . Um nun eine abstrakte Methode zu importieren, müssen Sie einfach ein Komma hinzufügen und Appstrct mesode einfach so sagen . Okay, perfekt. Jetzt wollen wir eine abstrakte Klasse erstellen. Jetzt sage ich Klasse und bezeichne das als Person. Dann möchten Sie in den Klammern ABC eingeben, was für abstrakte Basisklasse steht Das Wichtigste an der Abstraktion ist, dass, wenn Sie eine Klasse als abstrakte Klasse betrachten, sie nicht instanziiert werden kann sie Mit anderen Worten, Sie können hier keine Instanz erstellen. Sie können keine Objekte erstellen. Das ist das Wichtigste , was ich gegen Ende dieser Laborübung auch testen werde, um Ende dieser Laborübung Ihnen zu beweisen, was ich damit meine. Stimmt. Jetzt, da wir eine Klasse erstellen, werden wir das Gleiche tun wie zuvor. Wir werden unsere Init-Methode mit unseren Parametern definieren und dann unsere permanenteren Variablen einrichten und speichern, bei denen sich natürlich um Attribute Ich werde also Deere Inner Score sagen, wir werden uns selbst, Namen und Alter durchgehen Dann wollen wir sagen, dass Selbstpunktname gleich Name und Selbstalter gleich Alter ist . Sehr einfach Dann wollen wir in derselben Zeile unsere abstrakte Methode definieren. Jetzt frage ich mich, was eine abstrakte Methode ist? Die abstrakte Methode ist im Wesentlichen eine Methode, die als Dekorator verwendet und an eine bestimmte Methode angehängt wird . Sie wird erzwingen, dass alle Unterklassen oder untergeordneten Klassen, sollte ich sagen, diese Methode implementieren müssen Es ist eine obligatorische Methode, die Sie für alle Ihre Unter- oder Unterklassen festlegen. Was ich tun werde, ist DF zu sagen und ich werde sagen, dass Job-Unterstrich meine abstrakte Beschreibung sein wird meine abstrakte Beschreibung sein und wir werden durch uns selbst gehen Was Sie tun müssen, ist direkt darüber, Sie müssen Ihren Decorator hinzufügen und App Abstract Method sagen Das basiert auf dem, was wir hier aus dem ABC-Modul importiert haben . Stimmt, perfekt. Nun, diese Methode muss, wie ich bereits erwähnt habe , von all unseren Klassen implementiert werden, und wir werden nicht definieren, wie sie verwendet wird. Wir werden es einfach verpflichtend machen. In jeder Klasse, die wir jetzt erstellen, den Unterklassen, die wir erstellen, okay? Im Wesentlichen können wir ihr unsere eigene Funktionalität hinzufügen, aber die Methode selbst muss genutzt werden Das ist wirklich das Wichtigste bei abstrakten Methoden. Wie Sie hier sehen können, habe ich eine rote Linie und das bedeutet natürlich, dass wir einen Fehler bekommen werden. Wir können diese Methode nicht einfach leer lassen. Was Sie tun sollten, ist das Schlüsselwort pass zu übergeben, was eigentlich ziemlich ironisch ist, nur damit es keinen Fehler gibt und das bedeutet, dass es in unserer abstrakten Klasse keine Implementierung gibt in unserer abstrakten Klasse Im Moment wollen wir als Nächstes hier eine reguläre Nachricht definieren Also eine, die wir aufrufen und nutzen können, was wir auch tun werden, aber sie wird keine strikte Vorstellung von abstrakter Botschaft haben . Es wird also sehr einfach sein und ich werde nur De sagen und ich werde vorstellen als Namen für den Mesod sagen Wir wollen uns selbst durchdringen, und wir werden eine feste Aussage Ich sage Return F, und ich werde sagen, hier ist meine Zeichenfolge, mein Name ist und Zen-Klammern, ich werde Self-Punkt-Name sagen Und ich bin, und wir können sagen, Selbstalter, wir können Jahre alt werden. Gib mir ein paar hier raus. Dies wird eine standardisierte Methode sein , die wir verwenden werden , wenn wir unsere erstellten Objekte in unseren Unterklassen aufrufen Okay. Im Moment wollen wir in derselben Zeile wie Klassenperson unser erstes Kind oder unsere erste Unterklasse definieren Ich werde also weitermachen und Klasse sagen und diesen Lehrer nennen, und das wird die abstrakte Klasse erben, die jetzt als Person bekannt ist die jetzt als Person bekannt Also, wir vererben jetzt etwas und ich werde weitermachen und Person sagen. Komm schon. Und dann, wie zuvor, müssen wir unsere innere Botschaft definieren, selbst durchqueren, Alter benennen und dann können wir dieser Klasse etwas Einzigartiges hinzufügen, das Gegenstand sein wird Name und Alter werden also von der Personenklasse übernommen Okay, jetzt wollen wir weitermachen und den Personenkonstruktor aufrufen Also wollen wir sicherstellen , dass wir das nennen. Und was wir tun werden, ist Super zu verwenden, und dann können wir Superpunktblond-Score, D-Blond-Score sagen. Und dann werden wir hier in Klammern durchgehen , was wir erben werden Also werden wir Name und Alter erben. Okay? Und Sie werden hier sehen, dass das Fach in der Lehrerklasse heimisch ist. Richtig. Jetzt können wir einfach sagen, dass Selbstpunktsubjekt gleich Subjekt Also hier nur regulärer Trotz, regelmäßig definierend, sollte ich sagen, das Attribut, das dieser Klasse eigen ist Antwort: Als Nächstes möchten Sie nun abstrakte Methode , die wir hier definiert haben, so aufrufen , dass wir sie verwenden müssen, und wir werden sie in diesem Fall auch selbst definieren Also, was ich hier tun werde, ist definitv zu sagen, Stellenbeschreibung durch mich selbst zu unterstreichen Jetzt können wir weitermachen und unsere eigene spezifische Stellenbeschreibung hinzufügen , zum Beispiel für einen Lehrer Ich sage zurück, verwende S-Zeichenketten, ich sage, ich unterrichte Selbstpunktfach an einer Schule. Sehr einfach. Richtig, da haben wir's. Also haben wir das Set. Jetzt können wir weitermachen und hier unsere zweite Klasse einrichten. Also haben wir einen Klassenlehrer und lassen uns eine weitere Klasse einrichten, und wir können zum Beispiel diesen Arzt anrufen. Sie können das Muster hier sehen, wir haben Leute oder Personen, und dann haben wir Berufsrollen , die wir anhand von Unterklassen analysieren Jetzt wollen wir alle Eigenschaften der Person übernehmen und sie erben, nämlich Name und Alter Also können wir das auf diese Weise weitergeben. Und dann wollen wir unsere Innit-Methode definieren. Sehen wir uns einfach die Struktur an. Ja, wir fügen dort Platz hinzu. Sagen wir Def, doppelter Unterstrich, Nit, doppelter Unterstrich, und wir werden immer noch Selbstname und Alter haben, aber was für diese spezielle Klasse einzigartig sein wird diese spezielle Klasse Da haben wir's. Und dann pausieren wir Superterscore, NTBLEscore. So können wir den Namen und das Alter, die wir in unserer persönlichen Klasse festgelegt haben, übernehmen und erben, genau wie wir es in der Lehrerklasse getan haben Okay. Richtig. Jetzt wollen wir die Spezialität des Arztes als Attribut speichern, sodass wir sagen können, Self-Punkt, Räumlichkeit ist gleich Räumlichkeit Okay, da haben wir's. Also haben wir das Set jetzt in derselben Reihe. Wir müssen uns auf die Stellenbeschreibung der Methode beziehen. Ich kann also sagen, dass der Job die Beschreibung unterstreicht. Ganz durch dich selbst. Und was wollen wir hier machen? Wir können Return F sagen. Ich würde sagen, ich bin ein spezialisierter Arzt und wir können hier in unseren Platzhaltern Self Dot Speciality sagen unseren Platzhaltern Self Dot Speciality Einfach so, und wir setzen den Punkt ans Ende. So können wir diese Beschreibung also nennen. Also gut, da haben wir es. Stellen Sie also sicher, dass Sie alles wie folgt hinzugefügt haben. Also haben wir jetzt weitergemacht und alles gut hinzugefügt. Ich werde auch nur den Code aufräumen, ihn ein bisschen sauberer machen Ordnung, das ist es, was wir brauchen, um alles in Gang zu bringen . In Ordnung. Machen wir also weiter und führen wir einige Tests durch, damit wir wirklich verstehen, welchen Wert abstrakte Klassen haben und wie alles zusammenarbeitet. Also lass uns weitermachen und ich werde ziemlich tief in das Thema eintauchen. Lassen Sie uns also zur Sache kommen. Ordnung. Jetzt unten können wir uns einfach auf unsere beiden Klassen beziehen Wir haben also Lehrer und wir haben einen Arzt, also unsere Unterklassen, sollte ich sagen? Ich werde Instanzen erstellen und sie testen. Ich werde Lehrer eins gleich sagen, Lehrer, das ist der Name der Klasse und ich möchte die Werte, die ich als meine Attribute festlegen werde , weitergeben die Werte, die ich als meine Attribute festlegen werde Hier habe ich Ale, dann 28, und dann sage ich Msmatics Dann nehme ich einen Arzt die Unterklasse der Ärzte verweist Dann setze ich Bob ein und er ist 31 und er ist nur Hausarzt, Allgemeinmediziner Okay. Jetzt möchte ich also weitermachen und nach der Einführungsmethode drucken , die ich zuvor definiert habe. Und ich möchte sehen, wie es beim Lehrer und beim Arzt angewendet wird . Also, was ich tun kann, ist drucken zu sagen und wir können den Lehrer auf die Lehrerinstanz verweisen , Punkt Intro DoS Dann kann ich dasselbe tun und sagen: Drucken, Doktor Eins vorstellen Lass uns weitermachen und das machen, du bekommst. Mein Name ist Alis und ich bin 28 Jahre alt Mein Name ist Bob und ich bin 31 Jahre alt. Also, was hier passiert ist, ist wir diese Einführungsmethode genannt haben, bei der Sie erwarten, dass den Namen und das Alter eingeben, wo auch immer Sie es definiert Nun sind wir weitergegangen und unsere Werte hier in dieser Instanz, die wir eingerichtet haben, dargelegt. Dann unterrichten wir einen und Arzt einen. Dann wendete ich diese spezielle Methode auf jedes dieser Objekte an und führte dann diese Funktion aus, um anhand der Werte zu sammeln , die in diesem bestimmten Objekt festgelegt waren, nämlich deren Namen und Alter. Das ist eine sehr hilfreiche Methode , mit der Sie Ihre eingeführte Methode übernehmen können . Okay? Richtig, perfekt. Das nächste, was ich Ihnen zeigen möchte, ist der Teil mit der Stellenbeschreibung. Also lass uns weitermachen und uns das ansehen. Deshalb möchte ich jetzt meine abstrakte Methode nennen, die ich sowohl in meiner Arzt- als auch in meiner Lehrerklasse angewendet habe . Also können wir einfach „Drucken“ sagen. Und wieder wollen wir uns auf unsere Instanzen beziehen. Also Lehrer eins, Punkt, Beruf, Unterstrich Beschreibung, Eröffnungs- und Klamottenklänge Dann möchte ich „Drucken“, „Doktor einen Punkt“ und „Stellenbeschreibung unterstreichen “ sagen einen Punkt“ und „Stellenbeschreibung unterstreichen Und wir können sie nur für die Zwischenzeit auskommentieren. Und lauf. Ich unterrichte Mathematik an einer Schule. Ich bin Facharzt für Allgemeinmedizin, also Allgemeinmedizin usw. In Ordnung, da haben wir es also. Also können wir jetzt sehen , dass es das ausgibt, was wir brauchen, wie Sie jetzt sehen können Richtig. So können wir Abstraktion nutzen Ich werde jetzt etwas genauer darauf eingehen, damit wir verstehen können den ganzen Sinn dessen, was wir hier tun Fangen wir hier oben an. Die Personenklasse ist eine abstrakte Klasse, das heißt, wir können sie nicht direkt instanziieren. Damit meine ich, dass Sie kein Objekt oder eine Person erstellen können . Ich zeige dir, was ich meine. Hier kreieren wir Objekte des Lehrers und des Arztes. Wenn ich sagen würde, dass Mensch eins gleich ist und ich sagen würde, welche Werte wir hier haben, dann hätten wir Name und Alter Ich würde John und 24 sagen. Sie werden feststellen, wenn ich weitermache und sage Person mit einem Punkt Namen drucken, werden Sie sehen, dass wir jetzt eine Fehlermeldung bekommen. Ich möchte das vorerst nur kommentieren . Und führe den Code aus. Sie können hier sehen, dass wir eine Rückverfolgung erhalten, wo es heißt, dass Sie eine abstrakte Klassenperson nicht instanziieren können , ohne eine Implementierung für die abstrakte Methode zu haben, was eine Jobbeschreibung ist Das ist es, was wir verwenden, bevor wir unsere Stellenbeschreibung hier verwenden, eine abstrakte Methode, sodass wir sie im Wesentlichen in unseren Unterklassen verwenden könnten sie im Wesentlichen in unseren Unterklassen verwenden Sie können keine Instanz erstellen, wie Sie bei einer abstrakten Methode sehen können Wenn ich diese abstrakte Methode entfernen und sie einfach als reguläre Klasse behalten würde, oder wenn es sich um eine Unterklasse handeln würde, wäre das völlig in Ordnung Dies ist eines der wichtigsten Dinge, die ich hier mit der Abstraktion hier erwähnen möchte mit der Abstraktion hier erwähnen möchte Sie können nicht einfach so etwas tun. Nun, eine weitere Sache, die ich hier erwähnen möchte , ist, dass wir, wie Sie sehen können, hier zwingend die Stellenbeschreibung verwenden müssen . Diese beiden Methoden. Nun, das Gute daran, in beiden Methoden eine Stellenbeschreibung zu haben und hier in beiden Methoden eine Stellenbeschreibung zu haben und die abstrakte Methode zu verwenden , ist , dass sie die Struktur mit unseren untergeordneten Slash-Unterklassen erzwingt mit unseren untergeordneten Slash-Unterklassen Es sagt uns, dass sie diese Methoden implementieren müssen . Wie Sie sehen können. Wenn Sie nun zum Beispiel die Methoden in Ihren Klassen weglassen würden , würden Sie auf einen Fehler stoßen Also behalte das einfach im Hinterkopf. Sie müssen sicherstellen, dass Sie diese abstrakten Klassen, auf die Sie verwiesen haben , in Ihren Unterklassen Okay, es ist also sehr wichtig, das im Hinterkopf zu behalten. Nun, eine andere Sache, die Sie sich wahrscheinlich fragen, ist, warum dieser ganze Prozess abstrakt ist Wo siehst du sie eigentlich? Abgesehen von der Tatsache, dass die Klassenperson hier einfach auf eine Hecke geht und einen Pfeil wirft, einfach auf eine Hecke geht und einen wenn Sie versuchen, eine Klasse zu instanziieren, warum ist diese Nun, eine Sache, die Sie hier beachten sollten , ist , dass der Benutzer nicht wissen muss, wie die Stellenbeschreibung Okay? Das ist also der Punkt, den ich in den theoretischen Lektionen ansprechen wollte, ist, dass Ihr Benutzer nicht wissen muss, wie die Stellenbeschreibung intern funktioniert. Okay? Wie Sie hier sehen können, geben wir weiter, wir geben keine Informationen oder Funktionen weiter. Wir sagen nur, ich will eine Stellenbeschreibung, Lehrerkurs, einen Doktorkurs, macht das selbst. Okay? Und das ist der Punkt , an dem ich versucht habe, die Analogie mit der TV-Fernbedienung und dem Fernseher hier herzustellen, okay? Sie müssen die zusätzlichen Details und alles nicht wissen. Sie können also sehen, dass eine abstrakte Klasse versucht alles ohne all die zusätzlichen Details viel einfacher zu verwalten. Sie können sich also vorstellen, dass sie es für uns vereinfacht , indem sie eine abstrakte Methode verwendet. In Ordnung. Nun, eine andere Sache, die ich auch erwähnen möchte und die wichtig ist , sind natürlich unsere Benutzer , sollte ich sagen, wenn wir unsere Objekte hier definieren und die Instanzen erstellen? Sie werden hier nur mit unserer Einführungsmethode und unserer Stellenbeschreibungsmethode interagieren , hier nur mit unserer Einführungsmethode und unserer Stellenbeschreibungsmethode ohne sich um all diese Implementierungsdetails kümmern zu müssen . Sie können sogar hier nach der Einführungsmethode suchen. Wir haben es hier schon eingerichtet. Es verwendet keine abstrakte Methode, aber wir haben sie bereits zu einer abstrakten Klasse hinzugefügt, was Sie als Startercode oder als Code betrachten können, der so formatiert ist, dass Sie sich darauf vorbereiten können, ohne dass Sie es selbst tun müssen Sie können hier sehen, dass wir das nicht manuell in jede dieser Klassen einfügen manuell in jede dieser Klassen Sie waren bereits für uns erledigt. Nochmals, um die Abstraktion zusammenzufassen. Komplexität verbergen und gleichzeitig eine sehr saubere Struktur erzwingen. Okay. Richtig. Okay, Leute, das ist es also in Bezug wie Sie Abstraktion in PySon nutzen können Okay, was wir jetzt tun können, ist, das zu kopieren und wieder abzunehmen Und da haben wir es. 71. Kollektionen: Hallo zusammen und willkommen zur nächsten Lektion, die sich auf Sammlungen konzentrieren wird. Schauen wir uns das mal an. Sie fragen sich wahrscheinlich, was in aller Welt Sammlungen sind? Das Modul bietet Zugriff auf spezielle Datentypen in PySON Sie könnten Sammlungen als ein bestimmtes Modul betrachten, und das wird Ihnen den Zugriff auf diese speziellen Datentypen ermöglichen Zugriff auf diese speziellen Datentypen Im Gegensatz zu den integrierten Datentypen, mit denen wir bereits vertraut sind, wie SDR für Zeichenfolge, It Bull List Set und Dit, müssen diese vor der Verwendung importiert werden, und sie bieten wiederum erweiterte Funktionen, die über unsere Standarddatenstrukturen hinausgehen unsere Standarddatenstrukturen Zu den wichtigsten Spezialdatentypen gehören die Zählernamen Tuple Order Dit, Default Dit und DQ Schauen wir uns das grafisch an, um es sinnvoller zu machen Also, welche Datentypen bekommen wir? Jetzt erhalten wir, wie ich bereits erwähnt habe, SDR für String, Tuple, Int, Set, Float Range, Bull, Dict Diese werden nun als die integrierten Datentypen in PySON bezeichnet integrierten Datentypen in PySON Dies sind die gängigen Datentypen, die wir täglich und ständig verwenden Dann erhalten wir Counter Name tuple, order dict, default dict und DQ. Diese werden als unsere speziellen Datentypen angesehen, und DQ. Diese werden als unsere speziellen Datentypen angesehen die importiert werden müssen, damit sie verwendet werden können Das sind die Unterschiede. Versuchen Sie, den Unterschied zwischen den beiden zu visualisieren und sie zu gruppieren. Wenn wir mit Sammlungen arbeiten, werden wir in der Lage sein diese speziellen Datentypen zu importieren. Lassen Sie uns nun einen tiefen Einblick in die Datentypen werfen, die wir erhalten. Zähler. Kein Zähler ist im Grunde ein Tool, das zählt, wie oft jedes Element in einer bestimmten Liste erscheint. Wir haben dann Tuple genannt. Nun, das ist ein spezieller Tupeltyp, bei dem die Elemente Namen haben, um den Zugriff zu erleichtern Dann haben wir Dict bestellt. Ordered Dict ist nun im Grunde ein Wörterbuch, das die Reihenfolge beibehält , in der Artikel hinzugefügt wurden Wir haben dann eine Standardeinstellung. Nun, default dict ist im Grunde ein Wörterbuch, das einen Standardwert für alle fehlenden Schlüssel bereitstellt , die es gibt Und schließlich haben wir DQ. das ist so etwas Man könnte sagen, das ist so etwas wie eine listenartige Struktur, die schnelles Hinzufügen und Entfernen von beiden Seiten ermöglicht , richtig Also nur ein kleiner Einblick in die theoretischen Konzepte der folgenden speziellen Datentypen 72. Entdecke das Modul Kollektionen – [Lab]: Hallo, alle zusammen. Und willkommen zur nächsten praktischen Laborübung, die sich auf die Verwendung der speziellen Datentypen konzentrieren wird , die aus dem Modul der Sammlung stammen . Ordnung. Nun möchte ich hier auch vorab erwähnen, dass diese speziellen Datentypen typischerweise in Form einer Klasse oder einer Funktion verwendet werden . Das ist also nur etwas, das ich erwähnen wollte , damit Sie sich dessen bewusst sind, bevor wir beginnen. Okay. Nun werden wir zunächst die Counter-Klasse verwenden. In diesem speziellen Beispiel werde ich Ihnen zeigen, wie Sie die Zählerklasse verwenden können , um beispielsweise zu zählen, wie oft jedes Element in einer Liste erscheint. Wir müssen aus dem Sammlungsmodul sagen, dass ich die Zählerklasse importieren möchte. Ich möchte eine Liste definieren und ich werde zum Beispiel eine Liste von Früchten definieren. Ich sage, Obst ist gleich. In einer Liste hier werde ich ein paar Artikel hinzufügen. Ich nehme Apple, ich nehme Birne. Und ich werde auch das Gleiche hinzufügen, sollte ich sagen, Artikel? Ich werde zwei Äpfel oder zwei Birnen oder zwei Orangen usw. hinzufügen . Ich werde einige Dinge wiederholen, damit wir die Anzahl der Vorkommnisse zusammenzählen können , wenn wir alle Also werde ich auch noch einen Apfel, eine Orange und ein Paar hinzufügen. Da haben wir's. Also das ist vorerst gut. Als Nächstes möchte ich ein Zählerobjekt erstellen , um das Vorkommen jeder Frucht zu zählen Also definiere ich einfach eine Variable, die besagt, dass Fruchtunterstrich zählt, gleich ist, und ich werde eine Zählerklasse verwenden, und diese wird an die Fruchtliste angehängt Jetzt werde ich das Zählerwörterbuch ausdrucken, das die Anzahl der einzelnen Früchte anzeigt Wenn ich also sagen würde, drucken, Fruchtunterstrich zählt und den Code ausführen würde, gehen wir etwas tiefer Wir werden sehen, dass hier Counter Apple Two, Pair Two, Orange Eins steht Pair Two, Orange Eins Sie können sehen, dass es die Vorkommnisse zählt. Ich sehe zwei Äpfel, einen, zwei Paare und eine Orange, und das wurde für mich in der Ausgabe mitgezählt , wie Sie hier sehen können Wir können sehen, dass es als Gegenwörterbuch ausgegeben wird , wie wir hier sehen können. Nehmen wir zum Beispiel an, ich möchte auf einzelne Zählungen zugreifen, oder? Um das zu tun, kann ich weitermachen und „Drucken“ sagen, und wir können sagen, dass der Fruchtunterstrich zählt Und dann können wir hier einfach die eckigen Klammern hinzufügen und uns auf den jeweiligen Artikel beziehen Also hier möchte ich Apple sagen. Wenn wir das jetzt ausführen, können Sie hier sehen, dass wir das vorherige Ergebnis erhalten, und dann können wir Apple hier sehen. Okay, wir können sehen, dass die Ausgabe hier zwei ist , weil Apple zweimal erschienen ist. Okay, auf diese Weise können Sie den direkten Wert dafür ermitteln, wie viele Wiederholungen es gab oder wie oft es in der Liste aufgerufen wurde Also für Paar sind es natürlich auch zwei, aber bei Orange gibt es nur ein Vorkommen, also schauen wir mal, ob es eins sein wird, was es auch sein sollte Und wir können sehen, dass es eins ist. Perfekt. In Ordnung. Da haben wir's. So können Sie also die Counter-Klasse nutzen. Als Nächstes wollen wir das benannte Tupel verwenden Nun, benanntes Tupel ist im Wesentlichen eine Funktion, und wir können damit eine sehr einfache Klasse mit benannten Attributen erstellen eine sehr einfache Klasse mit benannten Attributen diesem Grund erstellen wir jetzt Sammlungen, damit Sie sich mit Klassen bereits auskennen Das sollte dir helfen, es besser zu verstehen. Okay, also nochmal, ich möchte aus dem Sammlungsmodul die benannte Tupelfunktion importieren Ich möchte eine benannte Tupel-Person mit benannten Feldern oder Attributen erstellen , könnte man sagen Ich würde sagen, Person ist gleich, benanntes Tupel wird durch Person gehen, in Dann werden wir hier zum Beispiel Name, Alter und Stadt haben Name, Alter Nun, das ist Attributen sehr ähnlich, man könnte sagen, aber wir bezeichnen sie hier als Felder, aber es ist den Attributen, die wir in unserer Klasse definieren, sehr ähnlich . Richtig, da haben wir's. Jetzt wollen wir eine Instanz von Person erstellen. Ich sage also, Person eins ist gleich Person. Dann können wir einfach weitermachen und sagen, dass Name gleich John ist. Alter ist gleich 24 und Stadt ist gleich Kapstadt, einfach so. Auf diese Weise würden Sie dann die Werte verknüpfen und diese Instanz erstellen Nehmen wir nun an, wir möchten mithilfe der Namen auf die Werte zugreifen . Wir können zum Beispiel „Drucken“ sagen und ich sage „Person“, „Punkt“, Name“ und ich sage auch „Person mit einem Punkt, Stadt drucken“. Dann schiebe ich das einfach nach oben. Lassen Sie uns weitermachen und uns die Ausgabe ansehen. Also haben wir John und Cape unten. Das bezieht sich also auf den Wert, der dem Namen zugeordnet ist, und auf den Wert der der Stadt zugeordnet ist. In Ordnung. Sie sehen also, es ist , wie ich bereits erwähnt habe, ein sehr einfacher Weg, eine leichtgewichtige Klasse zu erstellen, man könnte sagen, mit benannten Attributen. Okay. Perfekt. Richtig. Nun, was Sie auch tun können ist, eine Absicherung vorzunehmen und auf eine andere Art und Weise zu produzieren. Also verhalten sich auch Namenstupel wie normale Tupel. Also kann ich das ändern und sagen, Person eins drucken. Und innerhalb von Drucken kann ich Null eingeben und dann Person eins, und ich kann eins eintragen. Und wenn ich das überprüfe, werden John und 24 angezeigt. Es wird sich also in gewisser Weise dem Verhalten eines Tupurs oder einer Liste sehr ähnlich verhalten , man könnte sagen, indem den ersten Wert von ausgibt, so wie wir die Instanz sehen können Also haben wir John hier und dann haben wir 24. Wenn ich hier den letzten Wert haben möchte , der in den Klammern steht, kann ich ihn einfach auf zwei umstellen Und dann gibt es Cape Down für mich aus. Leute. So können Sie ein benanntes Tupel verwenden Großartig. Wir haben das eingerichtet. Das nächste, was wir weitermachen wollen , ist, dass wir weitermachen und Order Dict verwenden wollen Jetzt können wir das einfach entfernen und einfach Import sagen oder wir können sagen, ich glaube, es ist EncapsiaO-Diktat Da haben wir's. Dann wollen wir ein geordnetes Diktat erstellen, lassen Sie uns das machen Ich möchte sagen, geordnete Unsca-Daten, nur eine Variable. Wir werden es hier der Klasse Ordered Dict zuweisen hier der Klasse Ordered Dict Was ich dann tun werde, ist die zugehörigen Werte hier und dieses geordnete Wörterbuch, könnte man sagen Geordnete Daten ohne Kodierung, und wir sagen, dass A gleich eins ist, und wir können das einfach kompilieren und es einfach so setzen , dass B gleich zwei Und sehen Sie sich an. Jetzt wollen wir die Reihenfolge ausdrucken in der die Schlüssel in der Reihenfolge stehen, in der sie eingefügt wurden Zuerst war A eins, B ist zwei und C ist drei Es wird nicht in einer anderen Reihenfolge gedruckt. Jetzt kann ich also „Drucken“ sagen. Bestellte Unterstrich-Daten. Wenn ich das jetzt starte, heißt es Order Dict A eins, B zwei, C und drei Okay. So können Sie also weitermachen und die bestellte Dict-Klasse nutzen Nehmen wir zum Beispiel an, Sie möchten einen neuen Schlüssel hinzufügen, wir haben die drei Schlüssel hier, aber Sie möchten einen neuen hinzufügen, also möchten Sie sagen, dass D gleich Was Sie tun können, es ist ganz einfach, Sie können einfach weitermachen und Daten sagen oder unterstreichen G ist gleich vier, und wir sagen, dass die Schuldaten gedruckt wurden. Okay. Ich möchte auch, um besser zu lernen, ich werde das auch verlassen. Stellen wir das als ein. Da haben wir's. Okay, jetzt wirst du den Unterschied sehen. Okay, das können wir hier sehen, bevor wir A eins hatten, b2c3, und dann haben wir entsprechend hinzugefügt, einen neuen Schlüssel hinzugefügt, dass D gleich vier ist, und Sie können jetzt sehen, dass D angehängt ist. D Okay. So können wir also weitermachen und ein geordnetes Diktat verwenden. Das wäre also eine spezielle Klasse. Stimmt. Als Nächstes wollen wir uns das Standard-Diktat ansehen . Dies stellt nun einen Standardwert für fehlende Schlüssel bereit und Standardeinstellung stellt automatisch einen Standardwert für alle fehlenden Schlüssel bereit, anstatt einen Fehler auszulösen, sodass Sie sehen können, wo der Verwendungszweck liegen würde Aus dem Sammlungsmodul möchte ich das Standarddikt importieren Es wurde einfach so definiert. Ordnung. Und dann können wir ein Standarddiktat erstellen, bei dem fehlende Werte ganze Zahlen und die Standardeinstellung natürlich Null sein wird Also können wir Obst sagen, Zähler unterstreichen gleich, Standarddikt, und wir können Dann wollen wir ein paar Früchte hinzufügen. Also sage ich Fruit Underscore Counter, und das wird Apfel sein Und wir können sagen, dass Plus gleich eins ist. Dann können wir Fruit Underscore Counter sagen, und dann sagen wir, dass Paar plus gleich Jetzt wollen wir unsere vorhandenen Schlüssel ausdrucken, also sollten wir sie absichern und eins und eins für uns beide ausgeben Wenn ich also print, fruit underscore-counter sage und ich mich auf Apple beziehen würde, können wir das ausführen und wir können sehen, dass es eins ausgibt, und dasselbe sollte passieren, wenn ich weitermache und Pair sage. Das Gleiche sollte passieren Speichern Sie den Code, führen Sie ihn aus, wir haben einen. Aber lassen Sie uns weitermachen und es differenzieren. S drei und zwei, und wir werden es bei einem Paar belassen. Wir bekommen zwei für ein Paar, und mit Appn sollten wir drei bekommen. Wir bekommen drei, so wie es sein sollte. Perfekt. Nehmen wir an, das ist der wichtige Teil. Nehmen wir zum Beispiel an, ich möchte auf einen fehlenden Schlüssel zugreifen und ich möchte zum Beispiel auf Orange zugreifen, was, wie Sie hier sehen können, nicht existiert. Wenn ich Print, Fruit Underscore-Counter und Orange sage, sehen Sie, dass hier einfach die Standardeinstellung Null ist hier einfach die Standardeinstellung Null Wenn eine Ganzzahl fehlt und wir eine Stufe eingeben , um sicherzustellen, dass wir natürlich mit unseren ganzen Zahlen arbeiten und wir sehen können, dass sie Null haben Es wird kein Fehler ausgelöst, Sie können also sehen, wie nützlich Standard-Dig sein kann Wenn Sie mit einem Programm arbeiten und nicht unbedingt über eine Fehlerbehandlung verfügen und Sie nur nach einer kürzeren oder einfacheren Lösung suchen, können Sie, wie Sie sehen können, das Standard-Dickie verwenden damit Sie einen Standardwert angeben können, falls Ihnen ein Schlüssel fehlt Wie Sie sehen können, gab es schon einmal eine Zuweisung, aber Orange gibt es für einen Schlüssel überhaupt nicht Stimmt. Großartig. Nun, die letzte Klasse, die ich dir zeigen möchte, wird DQ sein Wir würden sagen Import D Q, ungefähr so. Okay. Im Grunde ermöglicht uns das schnelle Hinzufügen und Entfernen von beiden Enden eines Q, DQ ist die Abkürzung für Double Ended Q, es wird uns ermöglichen, schnell sowohl links als auch rechts von unserem Q hinzuzufügen und zu entfernen . Alles klar. Lassen Sie uns also ein DQ mit einigen Zahlen erstellen. Ich werde sagen, dass D gleich DQ ist, und innerhalb von Klammern fügen wir eine Liste hinzu, also habe ich eins, also habe ich eins Dann möchte ich nach rechts anhängen, genauso wie man die Liste Ich möchte D anhängen und sagen, ich füge vier hinzu und sagen wir, ich drucke D. Lassen Sie uns weitermachen und uns die Ausgabe ansehen Es wird eins, zwei, drei und vier haben. Wir können also sehen, dass diese Stiftmethode die Nummer an die Liste anhängt , die wir hier festgelegt haben. Nehmen wir an, wir wollen sie auch links anhängen Okay. Wie wir sehen können, ist DQ hier, dass wir eine spezielle Methode für den Umgang mit Listen festgelegt haben , wie wir hier sehen können Was mit Listen für sich genommen natürlich nicht möglich ist, ist, dass man sie nicht links anhängen kann Lassen Sie mich das demonstrieren. Wenn ich Dt sagen würde, links anhängen und ich Null sage und ich sage Print D, dann können Sie einfach sehen, dass wir jetzt Null, Eins, Zwei, Drei und Vier haben Eins, Zwei, Drei und Vier Okay. Und das ist sehr nützlich , um weiterzumachen und entsprechend anzupassen. Nehmen wir an, wir möchten jetzt von rechts entfernen. Okay? Also lass uns das machen. Also kann ich Dt Pop, Ar sagen und wir können dann Print G sagen . Also schauen wir mal, wo wir stehen. Jetzt haben wir also Null, Eins, Zwei und Drei aus dem letzten Pop, sodass wir es von der rechten Seite entfernen. Nehmen wir an, wir möchten von links entfernen . Ich kann einfach sagen, dass D nicht nach links erscheint, und dann D drucken. In Ordnung, los geht's. Wir können jetzt sehen, dass wir keine Null mehr haben. Wir haben eins, zwei und drei. Richtig, also da haben wir es. So können Sie auch DQ nutzen. Ordnung, Leute, das war's in Bezug auf die Nutzung dieser speziellen Datentypen aus dem Sammlungsmodul Wie Sie sehen können, sind sie sehr hilfreich und sie sind sehr nützlich. Aber ja, Leute, das ist alles für diese praktische Laborübung. 73. Itertools: Hallo, alle zusammen. Willkommen zur nächsten Lektion, die sich mit IR-Tools befassen wird. Lassen Sie uns also einen Blick darauf werfen. Also, was sind IR-Tools? Jetzt bietet das Iter-Tools-Modell Funktionen für die Arbeit mit Iteratoren Nun, ich kann das auf einfache Weise ausdrücken, und das heißt, dass Iteratoren Datentypen sind, die in einem Follow-up verwendet werden können, wobei die Liste das häufigste Hier sind nun einige der wichtigsten Funktionen, die Sie aus dem IR-Tools-Modul importieren können, und dazu gehören: Produktpermutationen, Kombinationen, Akkumulations-, Gruppen- und unendliche Iteratoren Lassen Sie uns nun einen genaueren Blick auf diese Schlüsselfunktionen werfen. Richtig. Wir haben also ein Produkt. Jetzt berechnet das Produkt das kartesische Produkt der Eingabe-Iterables und generiert alle möglichen Kombinationen und generiert alle möglichen Dadurch werden alle möglichen Anordnungen von Elementen in einem Iterable erstellt . Dann haben wir Kombinationen. Dadurch werden aus einem Iterable einzigartige Sätze von Elementen ohne Wiederholung generiert einem Iterable einzigartige Sätze von Elementen ohne Wiederholung Dann müssen wir akkumulieren, und das berechnet kumulative Summen oder wendet andere binäre Funktionen Dann haben wir Gruppe i, und diese gruppiert aufeinanderfolgende Elemente in einer iterierbaren Tabelle, die auf einer Schlüsselfunktion basiert Richtig. Das war's also für den theoretischen Überblick. Lassen Sie uns tiefer in die praktische Laborübung eintauchen. 74. Arbeiten mit Itertools – [Lab]: Erstens, willkommen zur nächsten praktischen Laborübung, die sich auf die Arbeit mit IR-Tools und den damit verbundenen Funktionen konzentrieren wird IR-Tools und den damit verbundenen Funktionen , die damit genutzt werden können Richtig. Als Erstes möchten wir nun die Produktfunktion der Iter-Tools nutzen. Produktfunktion der Iter-Tools nutzen. Also können wir von Iter Tools aus sagen, wir können einfach sagen, Produkt importieren, einfach so. Nur um etwas näher darauf einzugehen, dass I Tools im Wesentlichen ein Modul mit Tools für die Arbeit mit Iteratoren Und wir werden jetzt speziell die Produktfunktion nutzen jetzt speziell die Produktfunktion In unserem Fall wollen wir nun in diesem Anwendungsfall für die alle möglichen Elementpaare aus zwei Listen generieren Produktfunktion alle möglichen Elementpaare aus zwei Listen generieren. Also werde ich zwei kleine Listen definieren. Ich werde sagen, A ist eins und zwei, B entspricht drei und vier Moment, in unserem Fall hier, werden wir eine Variable definieren und sie prod equals nennen Dann sagen wir Liste weil wir am Ende eine Liste ausgeben wollen und das um die Produktfunktion wickeln können, die A und B aufnehmen wird. Jetzt erzeugen Produkt A und B einen Iterator, alle Paarkombinationen erstellt , und wir wickeln ihn um eine Liste, die sie in eine Liste umwandelt, sodass wir alle Werte auf einmal sehen können . Nun, wenn ich print prod sagen und das ausführen würde. Jetzt sehe ich, was ich beabsichtigt habe, eins, drei, eins, vier, zwei, drei, zwei, vier Schau mal hier, eins bis drei, eins bis vier, zwei bis drei, zwei bis vier. So können wir die Produktfunktion nutzen. Richtig. Jetzt wollen wir immer noch sicherstellen, dass wir die Iter-Tools verwenden, aber dieses Mal wollen wir Permutation verwenden Wir wollen alle möglichen Anordnungen von Elementen erstellen. Ich werde sagen, Permutationen importieren. Okay. Und lassen Sie uns eine Liste definieren. Ich sage, Nums ist gleich, und ich nehme zum Beispiel eins bis drei und ich nehme zum Beispiel eins bis drei. In Ordnung Jetzt definiere ich eine Variable. Ich nenne das einfach Dauerwelle. Auch hier möchte ich eine Liste haben und Permutationen eingeben und das auf meine Liste namens Nums anwenden Nochmals, Permutationszahlen. Wir werden die Liste hier ergänzen und einen Iterator generieren , der alle möglichen Bestellungen unserer Wie Sie sehen können, fassen wir es wieder in einer Liste zusammen, und das wird die Ausgabe natürlich in eine Liste umwandeln Lassen Sie uns also weitermachen und Perm ausgeben. Und wir können jetzt eine ganze Liste von Permutationen sehen. Wir können eins, zwei, drei, eins, drei, zwei, zwei, eins, drei, zwei, drei, eins, drei, eins, zwei, drei, zwei, eins sehen eins, drei, zwei, drei, eins, drei, eins, zwei, drei, zwei, eins Wir können sehen, dass wir hier alle Variationen haben. Ich schätze, das ist etwas außerhalb des Geltungsbereichs, aber es ist hilfreich, vor allem in Bereichen der Statistik oder wenn Sie mit vielen Daten arbeiten und mit der Permutationsfunktion arbeiten müssen und so weiter Richtig. Als Nächstes möchte ich zeigen, wie Sie das Kombinationsmodul, die Kombinationsfunktion, nutzen können , entschuldigen Sie mich. Dies wird verwendet, um eindeutige Gruppen von Elementen oder Elementen auszuwählen, sollte ich sagen, und die Reihenfolge spielt keine Rolle , in welcher das geschieht. Wir können einfach Kombinationen sagen. Aus dem itertools-Modell wollen wir das Kombinationsmodul importieren Auch hier möchte ich eine Liste definieren und diese zum Beispiel auf eins, zwei und drei setzen zum Beispiel auf eins, zwei und drei Auch hier werde ich eine Variable definieren. Ich sage C und wir wollen die Ausgabe in eine Liste umwandeln. Wir werden es mit der Kombinationsfunktion umwickeln, und wir werden Num und Zwei einfüllen Kombination aus Zahlen und zwei. Auf diese Weise können wir einen Iterator generieren , und dieser Iterator wählt alle beiden Wir können wieder sehen, dass es in unserer Liste zusammengefasst ist, sodass wir diese Liste wie zuvor ausgeben können Wir können „print C“ sagen. Lassen Sie uns den Code ausführen. Und hier können wir sehen, dass wir die angegebenen Kombinationen erhalten , die wir festgelegt haben. Wir haben hier also zwei in jedem Satz. Wenn wir einen machen würden, würden wir einfach einen in separaten Sets bekommen. Und wenn wir drei sagen würden, würden wir das ganze Set in einem zusammenfassen. Richtig. So können wir hier also Kombinationen verwenden. Okay. Nun, wenn wir das ausführen würden, könnten wir sehen, dass wir dieselben Ergebnisse erzielt haben, also generieren wir korrekt. Großartig. In Ordnung. Als Nächstes werden wir uns das Akkumulieren ansehen. Nun, das ist interessant. Wir können zum Beispiel eine kumulative Addition durchführen. Damit haben wir uns zu einem früheren Zeitpunkt im Kurs befasst , aber lassen Sie mich Ihnen zeigen, wie Sie das mit der Akkumulationsfunktion tun können mit der Akkumulationsfunktion tun Das ist sehr nützlich , damit Sie die Akkumulationsfunktion importieren können . Dann möchten Sie eine Liste von Zahlen definieren. Ich sage eins, zwei, drei und vier. Dann wollen Sie wieder einfach eine Variable definieren, Ihre Liste hinzufügen, damit Sie sie konvertieren können, und Sie können die Ausgabe der Akkumulationsfunktion konvertieren und hier Zahlen für Ihre Akkumulationsfunktion einfügen, und die Ausgabe wird in einer Liste erscheinen, die mit AC verknüpft Also werde ich sagen, Druck A und los geht's. Jetzt können wir sehen, dass wir eins, drei, sechs und zehn haben. Was sammelt sich jetzt an. Ich erkläre, was passiert. Wir beginnen mit dem ersten Punkt oder Element in unserer Liste, dann sagen wir, eins plus zwei ergibt drei Das ist der nächste Teil in dieser angegebenen Liste. Dann haben wir drei plus drei, das ergibt sechs. Dann haben wir sechs plus vier, das ergibt zehn. Das ist der Prozess der Akkumulation, wie wir entsprechend akkumulieren können. Wenn ich das jetzt auf zwei, drei, vier, 25, vier, acht umstellen würde, zum Beispiel Code, würden wir Folgendes bekommen. Also fängst du bei zwei an. Zwei plus drei ergibt fünf. Fünf plus fünf ergibt zehn, zehn plus acht ergibt 18. In Ordnung, so weiter und so weiter und so weiter. Sie können sehen, dass es eine sehr hilfreiche Funktion ist. Ich mag dieses von den meisten Iter-Tools, weil es extrem einfach und sehr nützlich ist. Richtig. Jetzt konzentrieren wir uns auf die Gruppe nach Funktionen. Also werde ich das Folgende verschieben und wir können mit Gruppe B beginnen . Okay. Bei Gruppe B werden wir im Grunde wieder einen Iterator erstellen, der Gruppen nacheinander generiert Okay, lassen Sie uns weitermachen und mit dem Prozess beginnen. Richtig. Und eine weitere Sache, die ich auch erwähnen möchte ist, dass wir mithilfe der Funktion Gruppe B Elemente im Wesentlichen anhand eines Schlüssels gruppieren werden. Aber das wird geklärt werden, bevor wir das tatsächlich tun. Zuallererst müssen wir eine Liste von Tupeln mit Kategorien erstellen, in der der Schlüssel und die zugehörigen Werte gruppiert Wir können Daten sagen, und wir werden das in eine Liste aufnehmen. Ich werde zum Beispiel A haben . Dann das nächste, wir können A haben, und das werden zwei sein. Dann können wir noch eins haben, das B ist, und drei. Dann können wir zum Beispiel B und vier haben, und dann können wir A und Sechs haben. Da haben wir's. Perfekt. Also haben wir jetzt dieses Setup. Jetzt wollen wir nach dem ersten Wert sortieren, um sicherzustellen, dass die Funktion „Gruppieren nach“ ordnungsgemäß funktioniert. Also werde ich Datenpunkt SOT sagen, mit dieser Methode darin werde ich K sagen, Lambda entspricht Wir werden Lambda hier mit einem Parameter von X verwenden, und dann wird es hier X und Null haben Okay. Okay, da haben wir es also. Als Nächstes wollen wir eine Variable definieren und wir können diese Gruppe aufrufen und sie auf Gruppe B setzen ist die Gruppe B-Funktion. Hier werden wir die Daten durchgehen , die sortiert wurden, und wir werden sagen, dass K gleich Lambda ist und wir werden sagen, dass K gleich Lambda X, X und Null. Was wir jetzt tun, gehört im Wesentlichen zu dem, was wir tun , und wir werden sicherstellen, dass wir unsere Elemente entsprechend gruppieren können . Gemäß der Lambda-Funktion , die wir dem Schlüssel entsprechend festgelegt haben Jetzt können wir uns auf den Kopf stellen und eine Schleife einrichten. Wir werden also vier Schlüsselgruppen gruppiert sehen, Okay. Und dann können wir print, key sagen und dann wollen wir die Liste in eine Gruppe umwandeln. Okay. Richtig. Also innerhalb dieser Schleife werden wir im Grunde innerhalb der Schleife konvertieren, wir werden jede Gruppe in eine Liste umwandeln, um alle Elemente auf einmal zu sehen. Lassen Sie uns also weitermachen und diesen Code ausführen. Und hier können wir nach den Kategorien suchen. Wir können für A sehen, wir haben A eins, A zwei, A sechs, für B haben wir B drei und B vier. Ordnung, so können wir weitermachen und unsere Kategorien gruppieren, wie Sie sehen können. Okay. Also da haben wir es im Wesentlichen an Ort und Stelle. Nun möchte ich hier bei uns auch die Definition und Sortierung nach Lambda erwähnen . Wir werden im Wesentlichen die Werte über unsere Lambda-Funktion entsprechend hinzufügen die Werte über unsere Lambda-Funktion entsprechend , um sie zu sortieren, und dann werden wir sie gruppieren, und danach werden wir jede Iteration drucken, und sie wird in der Gruppe nach wie folgt angezeigt Okay. Also das ist die Gruppierung nach Funktionen, die wir verwendet haben. Okay? Nun möchte ich ein bisschen mehr und mehr Details erwähnen , insbesondere bei der Lambda-Funktion Wir werden also ein bisschen mehr darüber sprechen und uns dann den letzten Satz von Iteratoren im Hinblick auf die Funktionen zählen, Zyklus und Wiederholung ansehen den letzten Satz von Iteratoren im Hinblick auf die Funktionen zählen, Zyklus und Dazu kommen wir bald, aber lassen Sie uns einfach mit Gruppe B fertig werden. Richtig, also lassen Sie uns weitermachen und hier näher darauf eingehen Eine Datensortierung. Jetzt wissen wir bereits, dass Daten eine Liste von Tupeln sind, und natürlich haben Sie das in ein Listenformat eingebettet Dann wollen wir hier im Wesentlichen die Daten sortieren , die wir festgelegt haben Im Wesentlichen wird die Punktsortiermethode die Liste anhand unserer Schlüsselfunktion an Ort und Stelle sortieren die Liste anhand unserer Schlüsselfunktion an Ort Okay. Wir haben K gleich Lambda X, Doppelpunkt und dann X und Null hier Was wir tun werden, ist, jedes Tupel zu nehmen und es wird natürlich ersetzt , wie Sie für X sehen können. Jedes Tupel kann natürlich zum Beispiel A eins, A zwei, P drei sein Wir werden weitermachen und das ersetzen. Dann werden wir hier das erste Element extrahieren, das entweder ein A oder ein B sein wird, und dann werden wir die Liste nach dem ersten Element sortieren . Okay. Dann, was wir tun werden, da Sie hier sehen können, dass wir Gruppierung gleich Gruppe B haben. Wir definieren hier nur eine Variable, um das Ergebnis der Funktion Gruppe B zuzuweisen, und Gruppe gruppiert Wir definieren hier nur eine Variable, um das Ergebnis der Funktion Gruppe B zuzuweisen , im Wesentlichen die aufeinanderfolgenden Zahlen , die denselben Schlüssel haben Okay? Dann haben wir hier natürlich die Schlüsselfunktion, die das erste Element extrahiert. Also A oder B. In diesem Fall werden die Daten hier nicht sortiert, okay? Ich gehe einfach davon aus, dass Sie sagen könnten, dass die ähnlichen Elemente oder Elemente nebeneinander liegen, weshalb wir sie zuerst sortieren. Als Nächstes haben wir hier die vier Schleifen , mit denen wir arbeiten, und da wir wissen, dass die Gruppierung nach Funktion, die wir hier haben, Paare von Schlüssel und Gruppe zurückgeben wird Paare von Schlüssel und Gruppe zurückgeben , wobei der Schlüssel der Schlüssel der Gruppe ist. A oder B, in diesem Fall haben wir eine Gruppe, oder? Und das ist ein Iterator der Elemente, die zur Gruppe gehören Okay. In Ordnung. Dann werden wir im Wesentlichen weitermachen und sicherstellen, dass wir die Gruppe in unsere Liste aufnehmen. So können wir alle Artikel auf einmal drucken, richtig. Das war also die tiefere Erläuterung , wie wir diese Gruppe nach Funktionen nutzen können. Nun, dieser ist ein bisschen knifflig, also mach dir darüber nicht zu viele Gedanken. Es ist ein bisschen weit hergeholt, aber es ist gut, zumindest einen Kontext zu haben , was Sie tun und womit Sie arbeiten Ordnung. Das ist Gruppe B. Okay, lassen Sie uns weitermachen und mit den restlichen Funktionen fortfahren, mit denen wir gearbeitet haben. Jetzt können wir also weitermachen und mit den unendlichen Iteratoren arbeiten Diese Iteratoren generieren also für immer Werte, und sie müssen natürlich manuell gestoppt werden Okay. Also haben wir einen Zählzyklus und wiederholen es. Lassen Sie uns also weitermachen und die Mole importieren, zählen, zyklisieren und wiederholen Zählen, es wird ewig weiterzählen , wie eine Viererschleife, die niemals endet Zum Beispiel können wir sagen, dass vier I gezählt werden, und hier können wir fünf sagen. Also, ich empfehle Ihnen, mir dabei zuzusehen. Ich möchte nicht, dass Sie sich in einer Situation befinden, in der Sie ein Programm haben ständig wiederholt und niemals endet, und wenn Sie auf dieses Problem stoßen, also rate ich Ihnen bitte, sich anzusehen, was ich für diesen Teil mache Wir fangen an, ab fünf zu zählen. Dann können wir Print I sagen. Dann wollen wir sagen, dass I I gleich Zehn ist, dann möchte ich die Schleife manuell beenden Dann sage ich Pause. Lass uns das machen. Wir können also sehen, dass wir die ganze Strecke 5-10 gehen, und dann haben wir Pause gesagt, und das verhindert, dass der Loop läuft. Wenn ich nicht weitermache und einbreche, kann es passieren, dass wir eine interessante Situation haben, in kann es passieren, dass wir eine interessante Situation haben eine interessante Situation der die Schleife für immer und ewig weitergeht. So können Sie also die Zählfunktion verwenden. Okay, es zählt also ewig und es geht weiter und es wird nicht aufhören, solange wir keine Harke installiert haben. Wir haben auch die Zyklusfunktion, das heißt, eine Liste unendlich zu wiederholen, wie man sagen könnte Lassen Sie uns weitermachen und die Anzahl auf Null setzen, und wir können sagen, vier Elemente pro Zyklus, und wir werden eine Liste von Elementen oder Elementen übergeben , könnte man sagen Und wir wollen den Doppelpunkt hinzufügen. Dann wollen wir jeden Artikel drucken. Dann sagen wir, dass Plus gleich Eins ist, und es wird sich immer wieder wiederholen Und wenn wir bis sechs zählen, geht es kaputt Mach weiter und führe den Zyklus aus. Hier haben wir A, B, C, A, B, C. So können wir weitermachen und die Zyklusfunktion nutzen. Okay. Der letzte, den wir durchgehen werden, wird sich wiederholen. Okay? Also wollen wir einen Wert wiederholen, eine bestimmte Anzahl von Malen. Okay, also können wir REP zum Beispiel als Variable sagen. Wir wollen Liste sagen, weil wir die Ausgabe in eine Liste umwandeln wollen Wir wollen die Wiederholungsfunktion einschließen. Und hier möchte ich Hallo sagen, und drei. Dann möchte ich Print sagen, ap. Okay. Also wenn ich das ausführen würde, heißt es Hallo, Hallo, Hallo. Wir entscheiden uns dafür, den ersten Wert zu wiederholen , den wir hier in die Analyse eingegeben haben, und auf der rechten Seite definieren wir, wie oft wir wiederholen wollen , was wir hier auf der linken Seite definiert haben Der erste Parameter, den Sie sagen könnten, ist natürlich das, was Sie wiederholen möchten Der zweite Parameter, den Sie technisch sagen könnten , ist, wie oft Sie möchten, dass er wiederholt wird. Wenn ich sagen würde, ich mag Messen, und das möchte ich fünfmal wiederholen. Es wird sich wiederholen. Ich mag die Messe fünfmal. Und weil wir es in eine Liste umwandeln die Ausgabe, die wir hier von dieser Wiederholungsfunktion hier erhalten , wird die Ausgabe, die wir hier von dieser Wiederholungsfunktion hier erhalten, in eine Liste aufgenommen und die Daten in der Liste ausgegeben , und wir haben sie gerade gedruckt. So können wir also eine Wiederholungsfunktion verwenden. Natürlich würde ich sagen, dass Zählen und Zyklen in Ordnung sind, aber ich würde sagen, dass Repeat als eines der Iter-Tools nützlicher ist . Ordnung, Leute. Das ist es. Wir sind detailliert auf die Funktionen eingegangen , die Sie mit den Iter-Tools nutzen können. 75. Kontextmanager: Hallo zusammen und willkommen zur nächsten Lektion, die sich auf Kontextmanager konzentrieren wird. Schauen wir uns das mal an. Sie fragen sich also wahrscheinlich, was in aller Welt ein Kontextmanager ist. Ein Kontextmanager in Python kümmert sich also automatisch um die Einrichtung und Bereinigung von Ressourcen , z. B. Öffnen und Schließen von Dateien mithilfe der WI-Anweisung Jetzt vereinfacht die WI-Anweisung die Ressourcenverwaltung macht unseren Code sicherer und lesbarer Lassen Sie mich Ihnen hier einen Unterschied in Bezug auf die manuelle Verwaltung von Dateien zeigen , wie wir zu Beginn des Kurses gelernt haben , und wie Sie das häufiger tun können , wie kann ich sagen , einfacher, effizienter, sollte ich sagen, war ein Kontextmanager. Hier werden grundlegende Datei-IO-Operationen durchgeführt. Wir öffnen eine Datei namens Car Dot TXT und möchten in sie schreiben. Daher ist der W-Modus vorhanden. Dann verweisen wir auf dieses bestimmte Dateiobjekt und sagen Fahrzeugdatei mit Punkt nach rechts und dann sagen wir, dass meine Lieblingskarten Forward und Tesla sind, und dann müssen wir unsere Datei schließen. Wir können dies jedoch mit einem Kontextmanager vereinfachen , der unsere Datei öffnet und in sie schreibt. Wie Sie sehen können, ist es viel einfacher, es gibt weniger Codezeilen. Wir haben also WIS Open, Car Dot Txt, den gleichen Modus, und wir werden ihn als Car-Datei einrichten. So würden wir es in Bezug auf die Einrichtung der Variablen festlegen. Und dann sagen wir Autodatei, richtig, und schreiben wie gewohnt. Nun, eine gute Sache, die Sie hier sehen können, ist, dass Sie Ihre Datei nach dem Schreiben nicht schließen müssen, und das kann ein großes Problem lösen. Auch ein bisschen flüssiger was die Schreibweise angeht Sie müssen nicht so vereinfacht sein und eine Variable definieren und sagen, Punkt schreiben, Punkt schließen Es ist ein bisschen sauberer und effizienter. Sie können auch weitermachen und dies in diesem nächsten Beispiel anwenden, in dem wir eine Datei erneut öffnen , um sie anzuhängen Hier haben wir also, dass car-Datei gleich open cartXT und dann A ist, und wir können sehen, dass wir die Datei schreiben und schließen, wir können weitermachen und mit unserem Kontext-Manager können wir das einfach vereinfachen, indem wir es durch W öffnen ersetzen und dann sagen, als Car-Datei, wäre Ordnung, Leute. ist nur ein kleiner Einblick für Sie, damit Sie sehen können, wie Kontextmanager uns zumindest die Mühe ersparen würden, die Datei schließen zu müssen, und es ist viel reibungsloser und sauberer, Kontextmanager zu verwenden, insbesondere wenn Sie Datei-ILO mit Dateieingabe und -ausgabe ausführen Datei-ILO mit Dateieingabe und -ausgabe 76. Arbeiten mit Kontextmanagern – [Lab]: Hallo zusammen und willkommen zur nächsten praktischen Laborübung, die sich auf die Verwendung des Kontext-Managers konzentrieren wird . Lass uns anfangen. Nun, das Erste, was ich tun möchte ist, mit Ihnen allen eine Überarbeitung vorzunehmen und einfach mit Ihnen allen eine Überarbeitung vorzunehmen und die grundlegende Datei-I/O noch einmal durchzugehen, manuell gewichtet zu werden, ohne einen Kontextmanager zu verwenden. Richtig, wenn Sie dem so folgen, werden Sie lernen, die Unterschiede zu erkennen und beide Fälle anzuwenden. Wir wollen eine Variable definieren und ich kann diese Car-Datei aufrufen, und wir werden sie im Grunde unserem Dateiobjekt zuweisen , das mit unserer Open-Funktion erstellt wurde, und wir übergeben carxts die Datei, die wir öffnen oder erstellen wollen, falls sie nicht existiert, und wir wollen in diese Datei schreiben , daher ist und wir übergeben carxts die Datei, die wir öffnen oder erstellen wollen, falls sie nicht existiert, und wir wollen in die Datei, die wir öffnen oder erstellen wollen , falls sie nicht existiert, diese Datei schreiben , daher der Modus W. Als Nächstes wollen wir auf unsere Variable verweisen Datei aufgerufen und in der Schreibnachricht hinzugefügt, wir wollen in die Datei schreiben. Hier möchte ich sagen, dass ich rote Karten mag. Dann wollen wir die Datei schließen und Carflet Close sagen. Lass uns den Code ausführen. Lass uns in unser Verzeichnis gehen. Und hier können Sie sehen , dass der Punkt TxDFle im Verzeichnis unseres Projekts erstellt wurde Wenn ich darauf klicken kann, kann ich sehen, dass es Ich mag rote Autos, wie es sollte Ordnung, perfekt. Als Nächstes werde ich diesen Code auskommentieren, damit Sie die Unterschiede zwischen der regulären Dateiverwaltung und der Vorgehensweise mit einem Kontext-Manager sehen und lernen können zwischen der regulären Dateiverwaltung . Also werde ich mit der rechten Maustaste auf Car Dot TXT klicken und es löschen. Und bring das in den Papierkorb. Großartig. Also jetzt der Kontext-Manager, wir würden sagen, Wi öffnen und die Funktion Öffnen verwenden und wir wollen eine Car-Dot-TXT-Datei mit der Absicht erstellen eine Car-Dot-TXT-Datei , in die Datei zu schreiben, und diese wird als Car-Datei gespeichert. Und das ist die Variable, der wir dieses Dateiobjekt zuweisen. Dann können wir direkt darunter Carfle Dot sagen, und das wird genau dieselbe Nachricht sein, die wir zuvor verwendet haben Und hier möchte ich sagen, dass ich blaue Autos mag und es diesen Code ausführt Gehen wir in unser Verzeichnis. Hier können wir sehen, dass wir bei TXT eine Karte haben , auf der jetzt steht, ich mag blaue Autos. Perfekt. Hoffentlich können Sie jetzt den Unterschied zwischen den beiden erkennen. Bevor wir das nun mit dem Append-Modus testen , möchte ich mit Ihnen ein weiteres Beispiel mit dem Schreiben von Dateien durchgehen Ihnen ein weiteres Beispiel mit dem Schreiben von Dateien , damit Sie beginnen können, den Unterschied zwischen beiden Methoden zu lernen den Unterschied zwischen beiden Methoden Wir können das entfernen, machen wir weiter und machen das nächste Beispiel und fügen es dann an. In Ordnung. Also, was ich tun werde, ist, das auf einer Person aufzubauen. Ich sage, Person ist gleich, und ich sage Öffnen. Dadurch wird eine Datei namens Person Dot GXT erstellt und ich möchte in diese Datei schreiben Jetzt sage ich Personendatei Punkt R und ich möchte Hi schreiben Ich bin Auto. Dann muss ich die Datei schließen, indem ich Person File Dot Close sage . Lass uns weitermachen und den Code ausführen. Gehe zum Verzeichnis. Und hier können wir sehen, dass wir Person Dot TXT haben. Wenn wir darauf klicken, können wir sehen, Hi, Amano. Großartig. Jetzt kann ich immer noch sehen, dass wir die TXT-Dateien für den Warenkorb haben. Also, was ich tun werde, ist, fortzufahren und beide Dateien von jetzt an zu löschen. Dann können wir diesen Code für den Moment auskommentieren. Und wir werden genau dasselbe für eine Personendatei tun. Also werde ich jetzt den Kontext-Manager verwenden und ich werde Wi sagen, ich werde öffnen sagen. Und hier werde ich eine Person-Punkt-TXT-Datei mit der Absicht erstellen , in sie als Personendatei zu schreiben . Ich werde Personendatei mit Punkt rechts sagen und Hi iMou schreiben Lassen Sie uns jetzt den Code ausführen. kann bei erstellten TXT-Dateien eine Person sehen , die sagt: Hallo, ich bin nein. Einfach. Da haben wir es. Wir haben jetzt diese grundlegende Praxis eingeführt. Jetzt, wo wir diese Person in der TXT-Datei haben, wollen wir als Nächstes diese Person in der TXT-Datei haben, wollen wir weitermachen und sie öffnen und mit der Basisdatei IO an sie anhängen Wir wissen, dass das existiert, also können wir weitermachen und alles entfernen Behalte die Akte. Lass es uns jetzt öffnen. Ab diesem Moment heißt es nur: Hi, ich bin Ro. Was wir tun können, ist , diese Datei erneut zu öffnen und sie anzuhängen Ich nenne es Personendatei. Siehe Öffnen, und das heißt Person Dot TxD und wir beabsichtigen, es anzuhängen . Das ist der Modus, den wir einstellen werden Dann wollen wir weitermachen und Personendatei mit Punkt rechts sagen, und ich möchte ein Leerzeichen hinzufügen und ich möchte sagen, Hallo, Ana war, was es gesagt hat, und ich mag Filme. Sehr einfach. Und wir können sagen, Personendatei Punkt schließen. Lassen Sie uns weitermachen und diesen Code ausführen. Gehen wir zum Verzeichnis, Gefängnis F Da steht: Hi, ich bin nicht, und ich mag Filme. Perfekt. Wir können also sehen, dass wir auf diese Weise eine Stiftmethode mit einfachen Datei-E/O verwenden können. Lassen Sie uns weitermachen und das mit einem Kontext-Manager einrichten. So heißt es, und ich mag Filme, lass uns weitermachen und das anpassen. Also werde ich das kommentieren. Wir werden es erneut an diese Datei anhängen. Wir möchten, dass WIS hier in Parenss geöffnet wird. Ich werde auf diese Datei verweisen, die Person Dot TXT heißt Ich beabsichtige, sie als Personendatei an diese Datei anzuhängen . Dann können wir darauf schreiben Ich sage Personendatei Punkt, richtig. Mal sehen, was wir im Moment haben. Hi, ich bin und ich mag Filme. Dann werde ich draußen etwas sagen, das besagt, dass ich aus Südafrika komme. Das sollte danach angehängt werden, und ich möchte hier ein Leerzeichen einfügen. Da haben wir's. Also lass uns weitermachen und sehen, ob es dazu passt. Also, wenn ich den Code ausführe, gehe zu Person Punkt TXT, und los geht's Wir können Hi sehen, ich bin Ano und ich mag Filme. Ich komme aus Südafrika. Da haben wir's. Ganz einfach. So können wir Kontextmanager einsetzen, wenn wir mit unseren Dateien arbeiten. Sie können also sehen, dass es sehr effektiv ist , wenn wir unsere Dateien vereinfachen und jegliche Angst davor haben wollen , unsere Dateien nach dem Umschreiben zu schließen , weil es ein bisschen mühsam sein kann und Sie vergessen können und Fehler auftreten können Aber mit Kontextmanagern erledigt es alles für Sie. In Ordnung Leute Das war's mit dieser praktischen Laborübung zu Kontextmanagern 77. Integrierte vs. benutzerdefinierte Kontextmanager: Hallo zusammen und willkommen zur nächsten Lektion, die sich auf den Vergleich zwischen integriertem und benutzerdefiniertem Kontextmanager konzentrieren wird . Schauen wir uns das mal an. In Ordnung. Nun, mit dem eingebauten Kontextmanager, würden Sie normalerweise mit open verwenden, und wir würden die Wi-Anweisung mit der Open-Funktion verwenden , um eine Datei zu öffnen. Okay. Nun, das ist ein eingebauter Kontextmanager, der unsere Ressourcen wie Dateien automatisch verwaltet unsere Ressourcen wie Dateien um sie zu öffnen und zu schließen, und genau damit haben wir wie in der vorherigen Lektion gearbeitet . Wir haben auch einen benutzerdefinierten Kontextmanager. Ein Beispiel dafür, wie dies genutzt werden könnte, ist, dass ein benutzerdefinierter Kontextmanager im Grunde eine von Ihnen erstellte Klasse ist , die Eingabe- und Austrittsmethoden innerhalb der Klasse definiert Eingabe- und Austrittsmethoden innerhalb der Klasse um Ressourcen oder Aktionen auszuführen und zu verwalten , wenn wir einen bestimmten Codeblock eingeben oder verlassen. Was wir jetzt tun werden, ist, weiterzumachen und mit einem benutzerdefinierten Kontextmanager zu arbeiten. Wir haben bereits Erfahrung mit einem integrierten Kontextmanager, mit dem wir in der vorherigen praktischen Laborübung gearbeitet haben , aber jetzt werden wir unseren eigenen benutzerdefinierten Kontextmanager erstellen . Ich werde Ihnen zeigen, wie Sie alles mit Ihren Dateien verwalten können, zum Beispiel, wenn Sie mit einer bestimmten Klasse arbeiten möchten. Lassen Sie uns also gleich zur Sache kommen. 78. Einen benutzerdefinierten Kontextmanager erstellen – [Lab]: Hallo zusammen und willkommen zur nächsten praktischen Laborübung, die sich auf die Erstellung eines benutzerdefinierten Kontextmanagers für die Dateiverwaltung konzentrieren wird . Lassen Sie uns weitermachen und loslegen. Jetzt haben wir bereits Erfahrung mit Kursen, also werden wir einen Kurs nutzen. Als erstes wollen wir unsere Klassennamen definieren. Ich sage Klasse und nenne es Dateimanager. Dann muss ich weitermachen und meine Init-Nachricht definieren. Ich sage Derescore, dann müssen wir unsere Parameter übergeben, sodass wir self, file name und mode haben file name Wir wollen jetzt unsere Dateimanager-Klasse initialisieren und werden die Attribute angeben Wir werden sagen, dass der Self-Punkt-Dateiname gleich ist, und das wird der Dateiname sein Dann werden wir den Selbstmodus haben, und das wird dem Modus entsprechen Wir werden den Dateinamen hier mit einem Self-Punkt-Dateinamen speichern und wir werden den Modus auch als Modus speichern und das kann entweder R für Lesen sein, es kann W für natürlich Schreiben sein und es kann A für Anfügen sein Okay. Als Nächstes wollen wir unsere Methoden definieren. Denken Sie bei Nachrichten daran, dass sie mit Ihrer Init-Methode übereinstimmen müssen daran, dass sie mit Ihrer Init-Methode übereinstimmen Ich sage zuerst Defunderce Enter, doppelter Unterstrich, und hier werden wir uns selbst durchgehen doppelter Unterstrich, und hier werden wir uns Im Grunde wollen wir den Laufzeitkontext eingeben, der sich auf unser Objekt bezieht, und diese Methode wird aufgerufen, wenn die Ausführung in den Wispblock eintritt, den wir später definieren werden , und sie öffnet die Datei und gibt das Dateiobjekt Okay. Also, was wir dann tun wollen, ist sagen, dass Self Dot File gleich Öffnen Wir werden Self Dot File Name und Self Dot Mode sagen. Also wollen wir die Datei im angegebenen Modus öffnen . Dann wollen wir Return, Self Dot File sagen. Okay. Nun, Self-File wird hier natürlich unser Dateiobjekt sein, und das wird die offene Datei sein die im WIS-Block verwendet werden kann. Also das werden wir hier tun. Und wie wir sehen können, wird das witzigerweise als Variable zugewiesen witzigerweise als Variable Okay? Als Nächstes müssen wir unsere Exit-Methode angeben, und das wird den Laufzeitkontext verlassen und die Ressourcen bereinigen. Diese Methode wird aufgerufen, wenn die Ausführung den With-Block verlässt. Ich sage einfach Jeff, doppelter Unterstrich, Ausgang und doppelter Unterstrich Ich werde einige Parameter durchgehen. Zuerst werden wir uns selbst haben. Dann werden wir den EX-Unterstrichtyp haben. Das ist der Ausnahmetyp , wenn eine Ausnahme aufgetreten ist. Andernfalls wird es einfach keine zurückgeben. Dann haben wir den EXC-Unterstrichwert. Dies ist die Ausnahmeinstanz, wenn ein Fehler aufgetreten , und wenn nichts passiert, wird es natürlich auch keiner sein Dann werden wir eine Rückverfolgung durchführen. Das ist das Traceback-Objekt , das Fehlerdetails enthält. Wir können weitermachen und das Folgende schließen. Im Moment wollen wir zunächst überprüfen, ob die Datei geöffnet ist. Ich würde sagen, ich habe die Datei selbst gepunktet. Wenn diese Datei also geöffnet ist, und in diesem Fall, wenn sie geöffnet wurde, dann möchte ich die Datei schließen, um Ressourcen freizugeben. Also das ist beim Beenden. Also werden wir überprüfen, ob die Datei ursprünglich geöffnet ist, und wenn diese Exit-Methode ausgeführt wird, können wir diese bestimmte Datei schließen Okay? Weil du etwas nicht schließen kannst, das noch nicht geöffnet ist. Okay. Die Exit-Methode wird also aufgerufen, wenn wir unsere Datei beenden und schließen wollen . Dann prüft die Methode , ob die Datei im Moment tatsächlich geöffnet ist, ob etwas zu nah dran ist, und dann wird sie geschlossen. Wir würden also sagen: Self-Punkt-Datei, Punkt schließen. Also werden wir die Datei schließen, und das wird helfen, Ressourcen freizugeben. Okay. Perfekt. weitermachen und genau hier außerhalb unseres Klassendateimanagers Jetzt wollen wir weitermachen und genau hier außerhalb unseres Klassendateimanagers unseren benutzerdefinierten Kontextmanager verwenden. unseren benutzerdefinierten Kontextmanager verwenden. Das werden wir schon einmal mit der Logik verwendet mit der Logik haben , die wir zuvor verwendet haben. Wir werden weitermachen und sagen, Whiz, wir werden unsere Klasse hier aufrufen, das ist Dateimanager Und dann werden wir wie zuvor definieren, was wir öffnen oder erstellen wollen Also hier sage ich Car Dot TXT, und dann möchte ich darauf schreiben, also schalte ich den W-Modus ein, und ich sage als CarFle. Geh weiter. Okay. Wie wir hier sehen können, haben wir diese Anweisung hier, und das wird einen Hack machen und unsere Dateimanager-Methode aufrufen , die Enter ist, die die Datei öffnet und zurückgibt, und das Rückgabedateiobjekt wird zugewiesen In die Autodatei und sie wird innerhalb des Blocks verwendet. Dann wollen wir sicherstellen, dass wir in unsere Datei schreiben. Bis hierher werde ich Carfle Dot sagen. Hier werde ich sagen, ich mag Honda. Okay, also haben wir in die Akte geschrieben. Also die Datei, jetzt wo sie geöffnet ist, wird sie auch in die Datei schreiben. Und automatisch, wenn wir die notwendige Aktion ausgeführt haben, wenn der Block fertig ist, mit anderen Worten, mit der WIS-Anweisung, die wir hier eingerichtet haben, mit der WIS-Anweisung, die wir hier eingerichtet haben, ruft er den Dateimanager in Bezug auf Exit-Methode auf, die hier angegeben ist, und er wird ihn automatisch aufrufen, um die Datei zu schließen. Okay. Das ist der Prozess hier und die Ausführung mit dem, was wir hier einrichten. Ich zoome hier einfach raus. Sie können also sehen, wir unsere Klasse definiert sie in die notwendigen Parameter und Anweisungen eingefügt haben. Und dann, am Ende draußen, rufen wir einfach unsere Klasse auf und gehen dann auf eine Absicherung und erstellen eine Datei und stoßen dann darauf. Wir können das tatsächlich testen. Also, was ich jetzt tun werde, ist, es zu testen. Wenn ich also meinen Code ausführe, wird es keine Ausgabe geben, aber wenn ich gleich hier hingehe, kann ich sehen, dass ich diese TXT-Datei mit Kartenpunkten habe die besagt, dass ich Honda mag. Und Sie können sehen, dass alles automatisch für uns verwaltet wurde und wie es sein sollte. In Ordnung, gut. Auf diese Weise können Sie weitermachen und im Wesentlichen einen benutzerdefinierten Kontextmanager für die Dateiverwaltung erstellen , und am wichtigsten ist, dass wir ihn hier über Visa über eine Klasse verwenden , wie Sie sehen können, den sogenannten Dateimanager. Okay, also der gesamte Prozess funktioniert, wie Sie sehen können, sehr ähnlich der regulären Art und Weise, wie wir mit unseren Klassen gearbeitet haben. Okay. Das war's für den Hauptteil. Was ich jetzt tun werde, ist einfach weiterzumachen mehr zu analysieren und Ihnen zu zeigen, was Sie sonst noch tun können. Ordnung. Lass uns weitermachen. Als Nächstes möchten wir nun weitermachen weitermachen - und Except-Methoden weiter anpassen unsere Enter - und Except-Methoden weiter anpassen. Bevor wir weitermachen, möchte ich nur ein bisschen aufräumen Ich gehe zum Explorer und möchte diese Dateien löschen, die ich habe , mit Ausnahme der Dot-Pi-Hauptdatei Die Person dotXT und das Auto dotXT. Da haben wir's Stellen Sie nur sicher, dass Sie die Hauptpunktdatei nicht gelöscht haben. Damit arbeiten wir. Was wir jetzt tun können, ist, dass wir innerhalb unserer Interimsmethode einige Anpassungen vornehmen können einige Anpassungen vornehmen . Ich möchte nach dem Öffnen einer Datei einen Text ausgeben, der den Namen der geöffneten Datei angibt und auch den Modus ausgeben, in dem sie geöffnet wurde In diesem Fall möchte ich hier ausdrucken, dass CDTxt geöffnet oder erstellt wurde und der Schreibmodus dafür aktiviert wurde Also hier war es in meiner Enter-Nachricht. Lass uns das dorthin verschieben. Ich kann „Drucken“ sagen. Ich verwende S-Strings , um die Datei zu sagen. Und hier gebe ich bei meiner Bestellung selbst den Dateinamen ein. Also wird es den Dateinamen aufrufen, der bei txt aufgerufen wird , und dann den Modus, der W sein wird. Ich möchte sagen, der Dateiname ist die Datei, also und so ist geöffnet, und der Modus ist, und dann kann ich Self Dot Mode sagen. Geh. Nehmen wir an, ich möchte kurz vor dem Schließen der Datei eine Anweisung hinzufügen, damit ich die Exit-Methode dafür verwenden und anpassen kann . Ich kann „Drucken“ sagen. Die Datei wird bald geschlossen. Hab es. Jetzt werde ich die TXT-Datei , die ich zuvor hatte, neu erstellen und sie wird hier angezeigt. Lassen Sie uns weitermachen und den Code ausführen, aber wir sollten jetzt die Ausgabe in unserer Konsole sehen , die Ausgabe wird angezeigt Lassen Sie uns weitermachen und diesen Code speichern und ausführen. Da haben wir's. Wie wir hier sehen können, heißt es, die Dateikarte TXT wird gerade geöffnet und der Modus ist W und die Datei wird bald geschlossen. Wir können sehen, dass unsere Enter-Methode ausgeführt wurde und die folgende Anweisung ausgedruckt hat, die hier die erste war. Mit unserer Exit-Methode wurde die Datei gedruckt, sie wird gerade geschlossen und es wird Folgendes ausgegeben geschlossen und es wird Folgendes ausgegeben, wie wir hier sehen können. Perfekt. Gut gemacht. Auf diese Weise können Sie Ihren Methoden zusätzliche Funktionen hinzufügen . Richtig. Lassen Sie uns jetzt weitermachen und die Fehlerbehandlung durchführen. Nehmen wir nun an, wir haben einen Fehler beim Beenden unserer Datei. Hier möchte ich zum Beispiel weitermachen und diese Datei überschreiben, die wir derzeit haben, und ich werde nur einen Text ändern, um als Beispiel zu sagen, dass ich sie mag Dann rufe ich zum Beispiel einfach Afle an. Ich werde hier Carfle Dot Random sagen. Okay, und das wird eine zufällige Nachricht sein , etwas Zufälliges hier. Nehmen wir an, wir wollen eine zufällige Methode aufrufen, etwas, das nicht existiert, es wird beim Schließen der Datei einen Fehler geben, denn denken Sie daran, wenn wir die Datei öffnen, okay, wir werden sicherstellen, dass wir darauf zugreifen können, was wir tun können, und wir können in sie schreiben, was wir hier tun können. Und wir schreiben in die Datei, wenn wir sie öffnen, und sie wird geschrieben. Und dann wird es nur geschlossen, wenn wir die Exit-Nachricht ausführen. Nachdem wir also in die Datei geschrieben haben, werden wir die Datei schließen, aber bevor sie geschlossen werden kann, werden wir die Datei schließen, aber bevor sie geschlossen werden kann, fügen wir diese ungültige Methode hinzu, was einen Fehler in dieser Exit-Methode auslösen wird , weil wir uns in der aktuellen Phase des Programms befinden. Im Grunde möchte ich eine Absicherung vornehmen und eine Ausnahme ausdrucken. Also was ich tun werde, ich werde es sehr einfach halten, und ich werde wenn ich eine Ausnahme hätte, werde ich hier sagen, ob mein Ausnahme-Unterstrich-Chip nicht keiner ist Wenn ich also eine Ausnahme habe, möchte ich vorübergehend die Ausnahme ausdrucken , die behandelt wird. In Ordnung, einfach so Und das nächste , was ich tun möchte, ist einfach „Ausgang hier draußen“ zu sagen, und ich will „wahr“ zurückgeben. Okay. Lassen Sie mich nun erläutern, was ich hier mache. Diese Druckanweisung hier besagt also, dass die Behandlung einer Ausnahme bedeutet, dass ich eine Nachricht drucken möchte , wenn eine Ausnahme aufgetreten ist. Dieser Ausnahmetyp besagt also, dass Ausnahmetyp nicht keiner ist, das heißt, wenn es eine Ausnahme gibt, möchte ich die behandelte Ausnahme ausdrucken. Okay? Alles, was ich hier außer meiner Aussage mache hier außer meiner Aussage ist Drucken, Aussteigen. Dadurch wird diese Nachricht gedruckt, unabhängig davon, ob es eine Ausnahme gab oder nicht. Sie hier true zurück. Das ist sehr wichtig , weil dadurch jede Ausnahme unterdrückt wird , die hier innerhalb des WIS-Blocks aufgetreten ist . Dadurch wird sichergestellt, dass keine weiteren Fehler ausgegeben werden. Ich werde Ihnen zeigen, wie es aussehen wird, wenn ich die Ausnahme zuerst behandle. Ich mache es andersherum. Also wenn ich diesen Code ausführen würde, könnten wir sehen, okay, er ist offen. Wir können sehen, dass es geschlossen wird. Dann können wir sehen, wie die Ausnahme behandelt wird, und den Vorgang beenden. Nehmen wir nun an, ich würde diese Ausnahmebehandlung entfernen und lassen Sie mich etwas absichern und einfach kommentieren, und lassen Sie mich etwas absichern und einfach um das zu hören und zu entfernen. Und jetzt werde ich genau das Gleiche ausführen und sagen, Code ausführen. Okay. Und wir können hier sehen dass die Datei bald geschlossen und beendet wird. Nun, was Sie hier sehen werden, ist , dass es immer noch keine Pfeile wirft, und das liegt daran, dass ich hier true zurückgegeben habe, und das unterdrückt Ihre Ausnahmen innerhalb des Wispblocks Was Sie also tun sollten , ist Ihren Hashtag hier hinzuzufügen und ihn einfach in den Kommentar einzufügen, und wir können weitermachen und den wir können weitermachen und Jetzt können Sie sehen, dass ein Traceback-Fehler auftritt. Wir können jetzt sehen, dass wir diesen Fehler haben, es handelt sich also um einen Attributfehler und das Objekt hat ein Attribut Random Mesod. Wir können anhand des Tracebacks sehen, wo dieser Fehler aufgetreten ist Wir können die zufällige Carfle-Dot-Meldung sehen, und hier ist der Fehler aufgetreten Das wollte ich erwähnen. Das ist der Fehler, den Sie bekommen, wenn Sie die Fehlerbehandlung nicht eingerichtet haben. Wenn Sie nun möchten, dass es etwas übersichtlicher und spezifischer ist, können Sie im Wesentlichen Folgendes tun Wir sagen „Return True“. Wir wollen diesen Ausnahmetyp bekommen. Aber in dieser Erklärung wollen wir die Details präziser sehen Wir wollen den Standard-Ausnahmehandler nicht. Wir wollen ihn selbst stylen. Ich möchte den Ausnahmetyp und den Ausnahmewert sehen, und ich möchte den Traceback hier in dieser Print-Anweisung Was ich tun werde, ist , sie hinzuzufügen Ich werde sagen, Ausnahmetyp. Ich denke, ich werde F-Strings verwenden, damit ich einfach darauf zurückgreifen kann Ich werde Ausnahmetyp sagen. Dann haben wir einen Wert und ich möchte den Trace zurücksehen. Ich werde auch den Text ändern. Dies dient dazu, meine eigenen benutzerdefinierten Fehlermeldungen zu haben. Traceback. Lassen Sie uns das jetzt ausführen Dann erhalte ich meine eigenen benutzerdefinierten Fehlermeldungen, und das ist wirklich hilfreich. Ausnahmetyp, wir können den Attributfehler, den Ausnahmewert sehen , wir können sehen, dass es kein entsprechendes Attribut Random Mesod gibt und wir können dort auch einen Traceback in Bezug auf das Traceback-Objekt sehen einen Traceback in Bezug auf das Traceback-Objekt Das ist der Fehler dort. Da haben wir's. Ich denke, das ist eine nützlichere Methode , wenn Sie auch mit der Fehlerbehandlung umgehen möchten Sie würden einfach in aller Ruhe prüfen, ob der Ausnahmetyp nicht none ist, und dann geben Sie true zurück, sodass Sie jede Ausnahme unterdrücken können jede Ausnahme , die auftritt, wie ich bereits erwähnt habe, natürlich wird es auch sicherstellen, dass es nicht den Standardfehler innerhalb des Konsole, und wenn Sie es selbst handhaben , indem Sie sich den Typ manuell ansehen, kann der Wert von Traceback auch sehr effektiv sein, da er, wie Sie sehen, auch in einer sehr sauberen Ausgabe enthalten ist . Okay, so können Sie auch mit der Fehlerbehandlung umgehen, wenn Sie es mit Ihrem benutzerdefinierten Kontextmanager zu tun haben Ein weiterer sehr nützlicher Punkt, den Sie hier erwähnen sollten, ist, dass Sie bei der Arbeit mit Kontextmanagern mehr Optionen haben, um zu ändern, wie Sie möchten , beispielsweise den Dateiverarbeitungsprozess. Ordnung, Leute. Das war's für diese Laborübung zur Verwendung von benutzerdefinierten Kontextmanagern mit Dateiverwaltung in diesem speziellen Fall. 79. Generatoren: Hallo zusammen und willkommen zur nächsten Lektion, die sich mit Generatoren befassen wird . Lasst uns anfangen. Ordnung, Sie fragen sich wahrscheinlich, was aller Welt ein Generator ist. Ein Generator ist im Grunde eine einzigartige Funktion, die ihren Zustand beibehält und nacheinander eine Folge von Werten liefert, anstatt sie alle auf einmal zurückzugeben. Sie fragen sich jetzt wahrscheinlich, das ist gut zu wissen, aber wie funktionieren sie eigentlich? Statt Return verwenden Generatoren das Yield-Schlüsselwort. Das bedeutet, dass sie nicht alle auf einmal laufen, sondern bei Yield eine Pause einlegen. Und das macht Generatoren speichereffizient, da sie nicht die gesamte Ausgabe im Speicher speichern. Nun, die Effekte, die Sie sehen , werden Sie nicht sofort sehen. Sie werden es nicht wirklich im Code sehen, aber es ist in Bezug auf die Backend-Verarbeitung. Okay? So würden Sie Effizienz messen, aber ich habe eine Lektion dazu , wo ich das erklären werde , damit es für die Speichereffizienz sinnvoller ist. Wie dem auch sei, lassen Sie uns weitermachen und uns auf Generatoren konzentrieren. Aber jetzt möchte ich eine einfache Analogie erklären, eine einfache Analogie erklären damit Sie Generatoren besser verstehen können, und diese Analogie wird sich auf Ansehen von Netflix konzentrieren Was das Konzept der Ausbeute bei Generatoren angeht, können wir es bei Netflix mit der Pause-Taste vergleichen Yield ist also die Pause-Taste. Nach Abschluss einer Episode pausiert Netflix, anstatt alles auf einmal abzuspielen Netflix bietet auch die Möglichkeit , auf die Schaltfläche Weiter zu klicken, um als Nächstes fortzufahren Und wenn wir mit Generatoren arbeiten, neigen wir dazu, manchmal die nächste Funktion zu verwenden. Als nächstes kommt also eine Play-Taste. Wenn Sie also bereit sind, drücken Sie Play, um die nächste Folge anzusehen, und das kann auch mit Generatoren passieren. Wir können die nächste Funktion verwenden, um zum nächsten Ergebnis zu gelangen, das gerade erzielt wird. Eine weitere wichtige Sache ist, dass es dort speichert, wo Sie aufgehört haben Sie müssen nicht jedes Mal bei einer Episode auf Netflix von vorne beginnen . Es erinnert sich immer daran , wo Sie zuletzt hingegangen sind. Das Gleiche gilt für den Einsatz von Generatoren und die Nutzung von Erträgen. Es wird sich daran erinnern , wo Sie zuletzt waren. Okay. Nun, lassen Sie uns das auf ein Programm anwenden. Also erstelle ich eine Funktion , bei der es sich um eine Netflix-Show handelt, und dann gebe ich zum Beispiel drei Folgen heraus. Ergebe also Episode eins, Episode zwei und Episode drei. Dann werde ich diese Netflix-Show-Funktion in einer Variablen speichern , und diese Variable wird letztendlich ein Generatorobjekt sein , das gespeichert wird , weil wir das Yield-Schlüsselwort verwenden. Dann können wir jede Folge der Reihe nach ausdrucken , indem wir die nächste Funktion verwenden. Wir können „Als Nächstes drucken“ sagen und dann die Episode zusammenfassen. Damit wird Episode eins gedruckt. Dann verwenden wir die nächste Funktion, und wir fügen die Episode und das wird Episode zwei ausgeben. Es wird sich an den Staat erinnern. Es wird die Folgen eins, zwei und drei nicht ausdrucken. Wenn Sie einfach die Folge anzeigen würden, müssten wir „Weiter“ sagen und das Ganze wird nacheinander ausgeführt. Okay. Nun, das wird der Fall sein, wenn wir manuell überspringen, genau wie bei Netflix, wenn wir eine Episode manuell überspringen Okay? Dafür würden wir jedes Mal die nächste Funktion verwenden. Was wir jetzt auch tun können, ist dies zu automatisieren, um es etwas schneller zu machen. Wir können einen Vier-Loop-Modus verwenden. Okay? Also starte die TV-Show und sieh dir die Folgen an. Also verwenden wir eine Vierschleife, indem wir sagen , vier Folgen in Netflix-Show , Folge drucken, und das wird alles in der angegebenen Reihenfolge drucken. Okay. Und das wäre automatisches Skipping. Richtig. So können wir Generatoren einsetzen und nutzen. Wir werden üben und wir werden weitermachen und einige praktische Laborübungen machen, um an Generatoren zu arbeiten. Bleib dran. 80. Arbeiten mit Generatoren – [Lab]: Hallo zusammen und willkommen zur nächsten praktischen Laborübung, die sich auf Generatoren konzentrieren wird. Nun, wie ich in den erwähnten theoretischen Lektionen erwähnt habe , ist ein Generator eine einzigartige Funktion, die ihren Zustand beibehält und nacheinander eine Folge von Werten liefert, anstatt sie alle auf einmal zurückzugeben. Jetzt möchte ich Ihnen nur zeigen und Ihnen beweisen , dass ein Generator nicht nur eine reguläre Funktion ist, sondern dass es sich um nicht nur eine reguläre Funktion ist, sondern dass eine einzigartige Funktion handelt. Lassen Sie uns also zunächst eine normale Funktion definieren . Ich sage einfach Tod und wir werden immer noch den gleichen Anruf haben, den wir zuvor hatten. Ich sage Netflix Underscore Show als Funktionsnamen, auf beiden Seiten, leere Klammern Ich werde zum Beispiel eine Absicherung machen und sagen, Episode eins drucken, und das ist alles eine Absicherung machen und sagen, Episode eins drucken, und das Dann nehme ich eine Variable und sage, dass Episode gleich Netflix Underscore Wenn ich dann Episode drucken sage, werden wir hier sehen, dass keine zurückgegeben wird Das ist nur ein sehr einfacher Test, um zu sehen, ob wir es mit einer Funktion zu tun haben. Aber wenn ich print entfernen und Yield sagen würde, das Yield-Schlüsselwort verwenden würde und ich Episode eins sagen möchte, und ich mache dasselbe und starte, würde es ein Generator-Objekt ausgeben. Das ist also ein Hinweis darauf , dass wir durch das Hinzufügen von Yield Pison mitteilen , dass wir diese Funktion als Generator transformieren wollen , anderen Worten, als einzigartige Funktion Also nur etwas, das ich dort erwähnen wollte , nur damit wir etwas Klarheit über den Unterschied haben . Also lass uns zurück gehen. Wir müssen sowieso eine Funktion definieren. Es wird eine Netflix-Show sein, und dann wollen wir einige Ergebnisse erzielen. Also werde ich zuerst die erste Folge herausgeben , und es wird etwas Zufälliges sagen, die Mühle. Rendite. Jetzt sage ich Episode zwei. Das Verbot und der Ertrag, Folge drei, Villa. Jetzt kannst du hier etwas Platz hinzufügen, wenn du willst, oder du kannst es eng machen. Es liegt wirklich an Ihnen, was Sie tun möchten, aber stellen Sie sicher, dass Sie drei Gewinn- und Verlustrechnungen haben. Als Nächstes wollen wir die Funktion Netflix Show, die jetzt ein Generator ist, einer Variablen zuordnen die Funktion Netflix Show, , sodass unsere Variable dann dieses Generatorobjekt enthält. Also sage ich, Folge ist gleich, und es wird eine Netflix-Underscore-Show sein Und wir haben das Generatorobjekt zugewiesen. Perfekt. Jetzt können wir weitermachen und die Folgen einzeln ausdrucken. Wenn ich also Drucken sage, kann ich die nächste Funktion verwenden und ich kann einfach Episode sagen. Und lassen Sie uns weitermachen und das ausführen. Und Sie können hier sehen, dass Episode eins The Mill steht. Lassen Sie mich den Code hier ausführen. Folge eins der ML. Es wird also nicht weitergehen und jede einzelne Episode ausgeben, die wir haben. Es wird es in Segmenten tun. Damit ich die nächste Folge sehen kann, muss ich die nächste Funktion erneut verwenden, also gehe ich zu Episode zwei, dann zu Episode drei und so weiter. Also lass mich das machen. Sie können einfach weitermachen und den Druckauszug dreimal ausgeben. Folge eins wird also zuerst gedruckt. Folge zwei als nächstes, und Folge drei geteilt. Also lass uns weitermachen und das ausführen. Und wie Sie jetzt sehen können, gibt es jetzt Episode eins aus. Um der Reihe nach zu antworten. Es geht nicht einfach darum, sie alle so plötzlich auszugeben Okay? So können wir also weitermachen und einen einfachen Generator einrichten. Nehmen wir nun an, wir wollen das automatisieren. Wir möchten nicht jedes Mal ständig die nächste Funktion verwenden müssen . Wir können also weitermachen und das entfernen. In Ordnung. Und das wollen wir auch entfernen und wir können sagen, vier Folgen auf Netflix. Unterstreichen Sie Show Colon, und wir wollen Print-Episode sagen. Und wenn wir das machen, bekommen wir Episode eins, Die Mühle, Episode zwei, Die Scheune und Episode drei, The Vella Jetzt fragen Sie sich bestimmt: Okay, was ist so einzigartig an dem ganzen Prozess, das hat mit der Effizienz der Generatoren hinter den Kulissen zu tun , und das werden Sie nicht von und das werden Sie nicht Natur aus in Ihrem Code sehen, sondern es ist etwas, das im Hintergrund passiert Und wie ich schon sagte, das ist eine Lektion, die ich in der nächsten Lektion behandeln werde , sollte ich sagen, wie man mit diesem Prozess weitermacht Aber lassen Sie uns auf jeden Fall weitermachen und einfach ein weiteres einfaches Beispiel für einen Generator machen, und lassen Sie uns das tun. In Ordnung. Als Nächstes sage ich D und dann sage ich, sagen wir mal DF und ich möchte sagen Rosenkranz-Unterstriche meine Funktion wären Um daraus einen Generator zu machen, muss ich Yield sagen mindestens eine Aussage haben Hier werde ich Apple sagen. Milch hergeben. Geben Sie nach, und wir können Fleisch sagen. Da haben wir's. Jetzt wollen wir weitermachen und unseren Generator einer Variablen, unserem Generator-Objekt, zuweisen. Ich mache weiter und kann sagen, dass Produkt gleich ist, und wir werden sagen, dass Lebensmittel Artikel unterstreichen Jetzt ist das Produkt jetzt ein Generatorobjekt. Lassen Sie uns jetzt weitermachen und den Prozess testen. Wenn ich also drucken sagen würde, könnte ich sagen Weiter, benutze die nächste Funktion, und dann möchte ich das Generatorobjekt hinzufügen, also Produkt. Wenn ich das jetzt starte, wird es Apple ausgeben. Und wenn ich es weiter laufen lasse, geht es nicht weiter rein, es macht nur den nächsten bestimmten Wert , der hier gesetzt ist. ich Äpfel, Milch und Fleisch verwende, müsste ich das für die Häufigkeit tun Wenn ich Äpfel, Milch und Fleisch verwende, müsste ich das für die Häufigkeit tun, mit der ich bestimmte Produkte habe. Perfekt. Lassen Sie uns das automatisieren. Lassen Sie uns also Folgendes entfernen. Wir können einfach weitermachen und einen Flop hinzufügen. Ich werde also sagen, dass bei Produkten im Supermarkt die Artikel hervorgehoben Und wir können das Produkt einfach drucken. Also jede einzelne Aussage , die wir hier haben, und das wird ausgeführt. Und hier haben wir Apfel, Milch und Fleisch. Ordnung, also los geht's. So können wir einfach weitermachen und einen Generator in Bison nutzen Ich werde jetzt die nächste Lektion durchgehen, den Teil zur Speichereffizienz, damit Sie den tatsächlichen Nutzen der Generatoren verstehen Ordnung, Leute. Also das war's speziell für diese spezielle Laborübung 81. Effizienz des Generatorspeicherspeichers: Hallo, alle zusammen. Und willkommen zur nächsten Lektion , die sich mit dem Verständnis der Speichereffizienz in Bezug auf Generatoren befassen wird Verständnis der Speichereffizienz in Bezug auf . In Ordnung, also die Speichereffizienz verstehen. Eine reguläre Funktion speichert alle Werte gleichzeitig im Speicher, was bei großen Datensätzen ineffizient sein kann Auf der anderen Seite gibt ein Generator jeweils einen Wert zurück, jeweils einen Wert ohne vorherige Werte beizubehalten, und das macht ihn wesentlich speichereffizienter Nehmen wir zum Beispiel an, wir arbeiten mit einer regulären Funktion. Und in dieser regulären Funktion definieren wir eine Funktion, die als Netflix-Show bekannt ist. Wir geben eine Liste von Folgen zurück, und was wir dann im Wesentlichen tun, ist und was wir dann im Wesentlichen tun, ist, diese Episoden dieser speziellen Funktion hier zuzuweisen, und diese gesamte Liste wird im Speicher erstellt, und dann können wir später weitermachen und diese Episoden wiederholen, sehr ähnlich dem, was wir mit den Gattungen gemacht haben. diese Episoden dieser speziellen Funktion hier zuzuweisen , und diese gesamte Liste wird im Speicher erstellt, und dann können wir später weitermachen und diese Episoden wiederholen, sehr ähnlich dem, was wir mit den Gattungen gemacht haben Aber hier kommt das Problem ins Spiel. Das Problem besteht darin, dass die Funktion erstellt die gesamte Liste vor dem Loop-Vorgang im Speicher installiert. Wenn es beispielsweise Millionen von Folgen gäbe, würde das viel Speicherplatz beanspruchen Nun, eine reguläre Funktion, wenn sie zum Beispiel Listen zurückgibt, die aus vielen Werten bestehen, wird sie alles auf einmal in den Speicher laden. Das ist das Problem, das wir hier mit einer regulären Funktion haben . Ein Generator kann dieses Problem jedoch lösen. Wenn wir uns in diesem Beispiel einen Generator ansehen, wir, wie Sie sehen, nur unsere Werte zurück Yield Episode eins ergibt zwei, Yield Episode drei. Sie fragen sich wahrscheinlich, warum das besser ist? Wie Sie sehen können, wird, wie Sie sehen können, jeweils nur eine Episode gespeichert . Sobald eine Episode gedruckt wird, sie verworfen, und das hilft, Speicherplatz freizugeben der Generatorfunktion haben wir also Yield, Mit der Generatorfunktion haben wir also Yield, im Gegensatz zu einer regulären Funktion erhalten wir eine Rendite, indem wir Yield verwenden. Sie lädt einen Wert nach dem anderen, und das hilft, Ihren Speicherverbrauch gering zu halten Ordnung. Hoffentlich erhalten Sie jetzt ein besseres Verständnis für das Verständnis Speichereffizienz mit Generatoren, und so können Sie den Wert der Verwendung von Generatoren mit dem Yield-Schlüsselwort erkennen . Also, wie ich schon sagte, ich weiß, in der ersten Lektion und mit der praktischen Laborauszählung sah es nicht so aus, als ob da viel dahinter weil das im Grunde etwas ist , das hinter den Kulissen passiert und das hilft dem Gedächtnis Hier wird es hilfreich sein, wenn Sie sich später oder aktuell mit Anwendungen befassen später oder aktuell und Ihren Speicherverbrauch im Auge behalten möchten Generatoren können in dieser Hinsicht wirklich helfen 82. Oberflaches und tiefes Kopieren: Hallo, Ron. Willkommen zur nächsten Lektion, die sich auf oberflächliches und tiefes Kopieren konzentrieren wird. Schauen wir uns den Unterschied zwischen den beiden an. Eine flache Kopie erzeugt im Grunde ein neues Objekt, erzeugt im Grunde ein neues Objekt, behält aber Verweise auf die ursprünglichen Elemente bei, was bedeutet, dass sich Änderungen an verschachtelten Objekten auf beide Kopien auswirken Wir haben auch eine tiefe Kopie, und in diesem Fall erzeugt eine tiefe Kopie ein völlig unabhängiges Duplikat, einschließlich aller verschachtelten Objekte, sodass sichergestellt wird, dass Änderungen in einer Kopie keine Auswirkungen auf die Hier sind also die Unterschiede zwischen Shallow Copy und Deep Copy, und wir werden dazu eine praktische Laborübung durchführen, damit Sie sehen können , wie diese Serie auf die Laborübungen angewendet wird auf die Laborübungen angewendet Das war's mit den Definitionen von flacher und tiefer Kopie Lassen Sie uns in die Laborübungen eintauchen 83. Verwende flache und tiefe Texte – [Lab]: Hallo, alle zusammen. Und willkommen zur nächsten Laborübung, die sich auf oberflächliches und tiefes Kopieren konzentrieren wird. Deshalb werden wir mit einigen Beispielen arbeiten, damit wir unser Wissen über das Kopieren besser festigen können . Lassen Sie uns also weitermachen und loslegen. In diesem ersten Beispiel werden wir nun lernen, wie wir zuweisen können, ohne zu kopieren. Wir erstellen also noch keine Kopie, nur um uns mit der ganzen Idee zu befassen Also zuerst möchte ich eine Liste definieren. Ich werde die ursprüngliche Unterstrichliste sagen. Ich werde sagen, dass eins, drei und fünf in der Liste stehen Ich möchte es einer anderen Variablen zuweisen. Ich sage, die neue Unterstrichliste entspricht der ursprünglichen Liste. Und damit weise ich, wie ich bereits erwähnt habe, nur die ursprüngliche Liste hier einer neuen Variablen namens neue Liste zu, und ich mache eigentlich keine Kopie nur die ursprüngliche Liste hier einer neuen Variablen namens neue Liste zu, und ich mache eigentlich keine Kopie. Ich weise sie nur zu. Nehmen wir an, ich möchte die neue Liste ändern und neue Liste sagen, und ich sage, bei Null möchte ich das auf 99 setzen Jetzt möchte ich die Beitragsliste drucken. Ich werde drucken sagen und ich werde hier Originalliste sagen. Und ist das drin und dann möchte ich sagen, neue Liste drucken, und dann können wir die neue Liste durchgehen. Lass uns das ausführen. Wir können hier auf der ursprünglichen Liste sehen, wir haben 99 und wir haben drei und wir haben fünf. In der neuen Liste haben wir dann 99, wir haben drei und wir haben hier fünf. Lassen Sie uns nun weitermachen und den hier vorliegenden Prozess verstehen. Jetzt können wir hier sehen , dass die neue Liste keine Kopie der ursprünglichen Liste ist. Beide Variablen verweisen auf dieselbe Liste im Speicher. Wenn wir eine neue Liste ändern, wie wir hier sehen können, Null, ändert sich auch die ursprüngliche Liste , weil es sich um dasselbe Objekt handelt. Wie Sie hier sehen können, 993-59-0935. So können wir einfach eine Liste zuweisen , die keine Richtig. Das ist das Erste , was ich erwähnen möchte. Was wir jetzt tun werden, ist, uns mit oberflächlichen Texten zu befassen. Das heißt, nur die äußere Liste zu kopieren. Bei einer flachen Kopie wird ein neues Objekt erstellt, aber es werden keine verschachtelten Objekte kopiert Darauf werden wir gleich näher eingehen Lassen Sie uns also weitermachen und genau das tun. Stellen Sie sicher, dass Sie mit dem, was wir gerade durchgemacht haben, zufrieden sind . Ordnung. Also lasst uns weitermachen und uns auf oberflächliche Texte konzentrieren. Denken Sie daran, dass eine flache Kopie eine neue äußere Liste erzeugt, aber die inneren Listen bleiben gleich. Sie werden nicht kopiert, sondern nur als Referenz, fangen wir an. Dazu müssen wir das Kopiermodul importieren. Okay. Dann wollen wir zunächst eine ursprüngliche Liste mit verschachtelten Listen erstellen Wir können also sagen, dass Originallisten variabel sind, und hier werden wir eine Liste haben, und dann werden wir eine Liste in einer Liste haben, die eins, zwei, drei, ein Komma hinzufügen wird , und dann wollen wir vier, fünf und sechs haben Okay. Jetzt haben wir also eine Liste mit verschachtelten Listen Also eine Liste in a ist okay. Jetzt wollen wir eine oberflächliche Kopie erstellen. Ich werde dies meiner Variablen namens Shallow Copy zuweisen , um diese flache Kopie zu erstellen Sie müssten das Kopiermodul aufrufen und das Kopiermodul hat eine Funktion namens copy, und wir können es einfach in die ursprüngliche Liste innerhalb dieser Liste platzieren. Das wird eine flache Kopie für uns erstellen. Jetzt wollen wir die innere Liste ändern , die beide Listen gemeinsam haben. Um das zu tun, würden wir sagen: flacher Unterstrichtext. Wir würden Null, Null sagen, und wir können das auf 99 setzen Das wird im Grunde genommen eine Absicherung vornehmen und den Wert des ersten Elements der inneren Liste ändern. Hier könnten Sie das als die Liste behandeln , die wir draußen haben, und das wird diese Liste hier sein, und wir würden dann diese Liste hier als Null und diese Liste hier als Eins bezeichnen Wir sagen also Null, das bedeutet, dass wir mit dieser arbeiten wollen Und dann steht es in dieser Liste an zweiter Stelle, es kommt hier das zweite Argument. Wir wollen weitermachen und auf das erste Element dieser Liste verweisen , dieses hier. Das wird sich ändern und auf 99 steigen, und das wird sich sowohl in unserer ursprünglichen Liste als auch in unserer oberflächlichen Kopie widerspiegeln . Lassen Sie uns also weitermachen und die Erklärung ausdrucken , damit wir das sehen können. Ich sage Drucken. Ich sage Original ist. Und dann oberflächliche Kopie. Flache Kopie. Da haben wir's. Lassen Sie uns jetzt weitermachen und wir wollen unsere Liste ausdrucken. Da haben wir es. Wir haben 99, zwei, drei, vier, fünf, sechs, und wir können sehen, dass wir hier in der ursprünglichen Liste eine Änderung hatten , und die flache Liste standardmäßig natürlich hätte die flache Liste standardmäßig 99 genommen. Aber Sie können sehen, dass sich auch die ursprüngliche Liste mit ihr geändert hat, und das liegt daran, dass sich die ursprüngliche Liste hier mit Null und natürlich in unserer flachen Kopie Null in Bezug auf die Elementposition auf dieselbe Liste im Speicher bezieht. Das beweist, dass flache Kopien nur die äußere Liste und nicht die darin enthaltenen verschachtelten Objekte Aus diesem Grund erhalten wir das folgende Ergebnis. Stimmt. Konzentrieren wir uns nun auf Deep Copy. Dadurch wird sichergestellt, dass Deep Copy über eine völlig unabhängige Kopie verfügt , die die ursprüngliche Liste selbst nicht verändert. Wir wollen also eine Absicherung vornehmen und entfernen was wir hier haben, und wir werden das gegen Deep Copy austauschen , und wir werden das Copy-Modul aufrufen, und wir werden Deep Copy sagen, diese Funktion nutzen. Dann wollen wir die ursprüngliche Liste durchgehen. Und das wird eine tiefgründige Kopie erstellen. Dann wollen wir die innere Liste in der tiefen Kopie ändern, sodass wir sagen können, dass tiefe Unterstriche kopiert werden, und 00 ist dasselbe wie zuvor Und wir können „Drucken“ sagen und wir werden „Originalliste“ sagen Gefolgt von einer tiefgründigen Kopie. Da haben wir's. Also haben wir das jetzt erledigt und lassen Sie uns das erledigen. Und da haben wir es. Jetzt können Sie sehen, dass die ursprüngliche Liste hier intakt geblieben ist, also haben wir immer noch eins, zwei, drei, vier, fünf, sechs. Und bei dieser Positionierung fand der Effekt im ersten Element hier nicht statt. Ich bin derselbe geblieben. In Deep Copy wurde diese Änderung jedoch angepasst. Sie können hier sehen, dass 99 jetzt an der Stelle ist , an der man früher war. Sie fragen sich wahrscheinlich: Okay, warum ursprüngliche Liste dieses Mal unverändert geblieben? Weil Deep Copy Null war, okay? Und die ursprüngliche Liste in Null, okay, ist nicht mehr dieselbe Liste. Beim Tiefkopieren wird alles vollständig dupliziert, sodass Änderungen in der Tiefenkopie keine Auswirkungen auf die ursprüngliche Liste Okay. Also das ist einfach etwas sehr Wichtiges, an das man sich erinnern sollte. Denken Sie also daran, dass Sie Zuweisungen verwenden, wie ich Ihnen zuvor gezeigt habe, und wenn Sie die Kopierfunktion verwenden, wirken sich Änderungen auf das Original aus, was die Liste betrifft. Wenn Sie jedoch Deep Copy verwenden, wird es beispielsweise vollständig in die andere Liste kopiert . In Ordnung, Leute. Das ist oberflächliche Kopie, tiefe Kopie und die allgemeine Aufgabe, und die allgemeine Aufgabe wie Sie annehmen würden, dass das Kopieren funktionieren würde. Ordnung, Leute. Das war's für diese praktische Laborübung. 84. Protokollierung: Hallo zusammen und willkommen zur nächsten Lektion, die sich mit dem Loggen befassen wird. Schauen wir uns das mal an. Also, was ist Logging? Unter Protokollierung versteht man das Erfassen von Ereignissen, Meldungen oder Fehlern innerhalb einer Anwendung. Jetzt hilft es Entwicklern beim Debuggen, Nachverfolgen von Problemen und auch bei der Überwachung des Systemverhaltens Jetzt können Protokolle auch in Dateien, Datenbanken oder externen Diensten gespeichert werden, und sie werden auch nach Protokollierungsebenen kategorisiert Schauen wir uns also die Anmeldestufen an , die wir erhalten. Wir erhalten also die folgenden Stufen. Sie enthalten TBug, das detaillierte Diagnoseinformationen zur Fehlerbehebung bereitstellt Diagnoseinformationen zur Fehlerbehebung Dann haben wir Informationen, die allgemeine Betriebsmeldungen enthalten normale Informationen bestätigen Warnung. Dies wird unter allen Hinweisen auf mögliche Probleme geschehen , die möglicherweise Aufmerksamkeit erfordern. Dann erhalten wir einen Fehler, der sich natürlich darauf konzentriert Informationen über alle wesentlichen Probleme auszugeben die Funktionalität der Anwendung beeinträchtigen, und wir werden kritisch, und kritisch ist natürlich die Ausgabe von Informationen, die darauf hinweisen, dass schwerwiegende Fehler vorliegen , die zu einem Systemausfall oder einer Instabilität führen Systemausfall oder einer Instabilität Das sind also die Stufen , die wir beim Einloggen erhalten. Debug, Info, Warnung, Fehler und Kritisch. Ordnung. Nun , da das erledigt ist, lassen Sie uns weitermachen und uns mit dem Praktischen befassen. 85. Implementieren von Protokollmeldungen – [Lab]: Hallo zusammen und willkommen zur nächsten praktischen Laborübung, die sich auf das Loggen konzentrieren wird. Das erste Beispiel , das wir uns ansehen werden, ist, wie wir die grundlegende Protokollierung implementieren können. Dies ist hilfreich, um die Druckfunktion zu ersetzen. Jetzt wundern Sie sich wahrscheinlich: Okay, die Druckfunktion ist großartig. Es kann uns wirklich helfen, bestimmte Anweisungen auszugeben , je nachdem , wo wir sie in unseren Code einfügen. Das stimmt zwar, aber wir können stattdessen die Protokollierung verwenden , mit der wir unsere Programmereignisse mit all ihren Funktionen und Strukturen und allem effizienter verfolgen können . Lassen Sie uns also weitermachen und loslegen. Zuerst wollen wir das Logging-Modul importieren. Jetzt wollen wir die grundlegende Protokollierung konfigurieren. Also werden wir unsere Funktion definieren. Also müssen wir uns auf unser Modul beziehen, sagen wir Logging Dot. Dann werden wir uns auf die Funktion beziehen, die als Basiskonfiguration bezeichnet wird. Nun, das ist eine Funktion , die die Protokollierung einrichtet. Sie konfiguriert, wie sich die Protokolle verhalten. Und innerhalb dessen wollen wir sagen, dass Level Protokollierung von Punktinformationen entspricht, oder? Level ist also im Grunde ein Parameter, der die niedrigste Protokollebene festlegt, die aufgezeichnet werden soll, und das wird natürlich info und höher Dann wird er der Protokollierung von Punktinformationen zugewiesen, und das ist ein Attribut oder eine Konstante, die die Informationsebene repräsentiert. Okay. Jetzt wollen wir eine Informationsmeldung protokollieren Also werde ich sagen, Punktinformationen protokollieren. Und dann war es hier in Klammern. Okay. Ich möchte weitermachen und sagen, dass das Programm gestartet wurde. Okay, das protokolliert also eine Nachricht mit der Informationsebene. Okay. Also das ist einfach etwas Wichtiges, von dem ich denke, dass es wichtig ist, damit Sie es verstehen. In Ordnung. Nun, das ist die spezielle Funktion, für die wir die Info-Funktion verwenden , damit wir die folgende Anweisung ausführen können . Wenn ich das also starte und zur Info-Route gehe, das Programm gestartet. Also gut gemacht, das ist die einfachste Art, wie wir die Protokollierung integrieren können. Okay, so können wir weitermachen und damit anfangen. Richtig. Jetzt, wo wir mit Informationen vertraut sind, wollen wir jetzt lernen wie wir Fehler mit Traceback protokollieren können Dies kann also helfen, Fehler zu debuggen, ohne unser Programm zu stoppen Also werden wir Folgendes anpassen. Auch hier werden wir das Logging-Modul verwenden. Aber dieses Mal wollen wir die Protokollierung so konfigurieren , dass Fehler und mehr angezeigt werden. Mit anderen Worten, fehlerhaft und kritisch. Also werde ich weitermachen und das Logging-Modul aufrufen. Dann möchte ich die Basiskonfiguration ausführen. Ich möchte das hinzufügen, also das ist die Funktion, die ich verwenden möchte. Ich werde die Stufe auf Logging Dot Error einstellen. Okay, es ist also genau derselbe Prozess, den wir zuvor gemacht haben. Alles, was wir jetzt tun, ist, dass wir den Fehler ausgeben und anzeigen wollen , sollte ich sagen? Keine Informationen oder ähnliches. Jetzt können wir einfach ein einfaches Programm erstellen. Ich sage Versuch und ich sage, Ergebnis ist gleich 10/0. Dies wird zu einem Nulldivisionsfehler führen. Was ich dann tun möchte, ist außer zu sagen und was ich sagen werde, ist Logging Punkt E. Und hier werde ich sagen, dass Sie versucht haben, durch Null zu dividieren. Am Ende möchte ich sagen, Ausnahme E XC, Unterstreichungsinformation wird wahr sein Okay. Also lass uns weitermachen und hier nachschauen. Wir definieren also das Anmeldemodul und verwenden die Fehlerfunktion , um eine Meldung auszugeben, die besagt, dass Sie versuchen, durch Null zu dividieren, und wir möchten hier eine Ausnahmeinformation zu diesem Fehler bereitstellen . Das Loggen eines Punktfehlers ist natürlich ist im Grunde die Funktion , die eine Fehlermeldung protokolliert. Und wenn wir dann EXC underscore info gleich true haben, ist das der Parameter, der unsere Traceback-Details für uns hinzufügt Okay. Also lass uns weitermachen und diesen Code ausführen. Und los geht's. Wir können die Fehlerwurzel sehen. Sie versuchen, durch Null zu dividieren, damit wir sehen können, wie es folgt, und wir können sehen, dass wir hier einen Trace zurückbekommen sodass wir den EXC-Bildschirm in Focals True sehen können Das ist also der Trace-Back, den ich erwähnt habe, und er gibt uns hier all diese Details Es heißt Null-Divisionsfehler, Division durch Null. So können Sie auch den Traceback aktivieren. Richtig. Das müssen wir also sicherstellen, dass wir das haben, und das kann für das Debuggen sehr nützlich sein Ordnung. Okay, perfekt. So können wir weitermachen und uns auf die Protokollierung von Fehlermeldungen konzentrieren. Schraubenschlüssel. Als Nächstes möchten wir uns darauf konzentrieren, wie wir Warnungen für potenzielle Probleme protokollieren können Dies kann sehr hilfreich sein, da Entwickler natürlich über mögliche Probleme informiert werden möchten, Entwickler natürlich über mögliche Probleme informiert werden möchten bevor sie den Code beschädigen Es wird also keinen Code kaputt machen, sondern es ist nur eine Art Warnung, um uns das mitzuteilen Okay. Also, was wir tun wollen, ist Logging, Punkt, und wir werden Basic Config sagen, und jetzt wollen wir die Stufe festlegen, und das wird Logging-Warnung sein. Okay. Jetzt werden wir ein Programm erstellen. Ich werde sagen, Alter ist gleich und ich sage minus fünf. Das wäre natürlich ein ungültiges Alter. Dann möchte ich nach ungültigen Eingaben suchen. Ich werde sagen, dass ich weniger als Null alt bin. Ich möchte dann weitermachen und sagen, dass Logging Dot Warning, benutze die Warnfunktion hier und es wird sagen, dass Alter nicht negativ sein kann. Dann möchte ich „Empfangen“ sagen. Ich füge hier das Prozentzeichen und D hinzu, und dann füge ich hinzu, dass ich nur einige Formatierungen hinzufüge , sodass das Alter hier an die Zeichenfolge selbst angehängt wird hier an die Zeichenfolge selbst angehängt Wir haben hier eine Protokollwarnung. Was hier im Wesentlichen passieren wird, ist, dass Warnmeldungen protokolliert werden Warnmeldungen protokolliert Dann hier dieses Prozentsymbol und das G hier ist der Formatbezeichner, der den ganzzahligen Wert für das Alter einfügt, den wir in diesem Fall natürlich auf minus fünf Was wir tun können, ist diesen Code auszuführen. Hier erhalten wir eine Warnung, die besagt, Alter nicht negativ sein darf, wenn es minus fünf ist. Auf diese Weise können wir Warnungen für mögliche Probleme protokollieren , die wir möglicherweise erhalten. Richtig. Großartig. Als Nächstes, glaube ich, wird es Ihnen gefallen, es ist wirklich ziemlich interessant, sollte ich sagen, wie wir Logs in einer Datei speichern können. Wir können die Protokolle permanent aufzeichnen anstatt sie einfach auszudrucken, wie Sie hier sehen können. Das wird sehr nützlich sein, vor allem, wenn Sie für ein Unternehmen arbeiten, das gerne den Überblick über die Protokolle behält und Prüfungen oder ähnliches durchführt. Wir können weitermachen und alles so entfernen, wie es ist. Jetzt lernen wir, wie man Logs in einer Datei speichert . In Ordnung. Also, was wir wie zuvor machen wollen, wir wollen den Login so konfigurieren, dass in eine Datei geschrieben wird. Wir werden also Logging sagen und wir müssen zuerst Basic Config sagen, dann werden wir einen Dateinamen angeben, und das ist im Grunde und das ist im Grunde der Parameter, der den Dateinamen festlegt. Also werde ich Dateiname sagen. Das ist der Parameter. Und dann nenne ich es hier App Dot Log. Okay. Und das nächste, was ich tun möchte, ist auf Level zu stellen. Also werde ich sagen, dass Level gleich ist und ich sage Logging Dot Info Ich füge ein Komma hinzu und dann möchte ich nur die Eingabetaste sagen, um hier zu einer neuen Zeile zu gelangen Ich sage einfach Format und gebe das Format an, und gebe das Format an als das ich es festlegen möchte Dieses Format hier wird im Wesentlichen der Parameter sein , der das Protokollformat definiert. Mit anderen Worten, der Zeitstempel, die Ebene und die Nachricht, und so werden wir es machen wollen Wir werden unsere Anführungszeichen und das dargestellte Symbol hinzufügen wollen und dann können wir hier einfach unsere Klammern hinzufügen und „Frag Zeit“ sagen Und das wird S sein, und wenn Sie dann Dasher sagen, und dann Zentidsymbol, Folgerungen, die wir dem Levelnamen hinzufügen wollen Und wir können S sagen und wir können dann das Prozentsymbol hinzufügen und wir können die Nachricht auch hier mit S platzieren lassen Lass mich rauszoomen, damit du es sehen kannst und wir können das einfach zurücksetzen und das ist jetzt alles in einer Zeile für dich. In Ordnung. Großartig. Das haben wir jetzt eingerichtet. Wir wollen eine Informationsmeldung protokollieren. Ich werde hier sagen, dass ich Punktinformationen protokollieren möchte. Ich möchte das erfolgreich gestartete Programm durchgehen Oh. Da haben wir's. Jetzt wollen wir im Datei-App-Log nach den Logs suchen und dann sehen wir uns den Beispiel-Logeintrag an. Also lass uns weitermachen und das machen. Bevor wir das tun, möchte ich hier nur erwähnen, dass wir den Dateinamen App Log haben. Nochmals, ich möchte es Ihnen nur erklären, damit Sie sich dessen bewusst sind. Dies ist ein Parameter , der die Datei zum Speichern unserer Protokolle festlegt. Dann haben wir Level Equals Logging Dot Info. Wir definieren dann nur das Level, das wir hier verwenden werden Es wird auf der Informationsebene sein. Also nochmal, nur wiederholen: Level ist der Parameter, der in diesem Fall natürlich die niedrigste Ebene festlegt , die aufgezeichnet werden soll, und das ist Information Okay. Und denken Sie daran, dass das Protokollieren von Punktinformationen das Attribut sein wird das die Informationsebene darstellt , die wir definieren. Richtig. Okay, lassen Sie uns weitermachen und unseren Code ausführen. Also führen wir es aus und jetzt willst du in dein Verzeichnis gehen. Und hier haben wir eine App-Punkt-Log-Datei, die erstellt wurde. Es werden das Datum und die Uhrzeit angezeigt, und es werden auch die Informationen angezeigt, die besagen, dass das Programm erfolgreich gestartet wurde. Auf diese Weise können wir also sicherstellen, dass wir unsere Protokolle in einer Datei speichern. Okay. So können wir das also machen. Perfekt. Also haben wir dieses Setup. Jetzt können wir einfach alles hierher verschieben und weitermachen. Gut gemacht. Als letztes wollen wir uns nun ansehen, wie wir Zeit- und Protokollebenen für das Debuggen hinzufügen können Wir müssen sicherstellen, dass wir das Logging-Modul importiert haben das Logging-Modul importiert und wir werden die Protokollierung mit Zeitstempeln und Schweregraden konfigurieren Zeitstempeln und Schweregraden Wir haben auch, wie soll ich sagen Debug. Das ist sehr nützlich , wenn wir, wie Sie sagen würden, unseren Code debuggen möchten wie Sie sagen würden, unseren Code debuggen Lass uns weitermachen und anfangen. Das Erste, was wir tun wollen, ist Logging zu sagen. Und wir wollen die Grundkonfiguration definieren. Das Level hier, wir sagen, Level entspricht Logging, und wir setzen das auf T-Bug Okay. Das ist also ein Parameter, alle Log-Meldungen erlaubt, Debug und höher Okay. Richtig. Jetzt können wir also weitermachen und einfach unser Komma hinzufügen und jetzt müssen wir unser Format hinzufügen Also hier sage ich einfach Format, füge das Prozentzeichen in meinen Anführungszeichen und wir wollen das Log-Nachrichtenformat kapseln Also wollen wir, dass zuerst SKT angezeigt wird. Könnte das S hinzufügen. Dann wollen wir unser Prozentzeichen hinzufügen und wir wollen auch den Namen der Ausgabeebene angeben Das ist also das, was Sie normalerweise zum Beispiel in der Datei sehen würden , und dann s, gehen Sie zum nächsten Prozentsymbol, einer Inferenznachricht, und dann S, los geht's Jetzt haben wir dieses Format eingerichtet. Lass mich das hierher verschieben. Sie wissen jetzt also, wie man das definiert. Richtig. Perfekt. Das ist das Protokollnachrichtenformat, in dem wir jetzt Nachrichten mit unterschiedlichen Schweregraden protokollieren möchten . Lass uns das machen. Okay, also werde ich Logging Dot sagen und wir werden zuerst Debug haben Ich werde sagen, das ist eine D-Bug-Nachricht. Dann werde ich sagen, Punktinformationen protokollieren, dann werde ich sagen, dass alles reibungslos läuft. Ich werde Logging Dot sagen und ich werde Warnung sagen. Das heißt, achten Sie auf mögliche Probleme. Dann können wir hier Logging Dot Error sagen . Ich werde sagen, dass etwas schief gelaufen ist. Dann können wir sagen: Logging, kritisch. Ich möchte kritischer Fehler sagen. Da haben wir's. Lassen Sie uns jetzt weitermachen und unsere Ausgabe abrufen, diese Datei speichern, den Code ausführen, und hier haben wir ihn. Wir können hier sehen, dass wir die Zeit konfiguriert haben. Wir haben den Namen der Ebene konfiguriert und wir haben auch die Nachricht konfiguriert, und das alles in einem, zwei und drei Abschnitten. Das wird also kapseln. Sie können dies wie die Klammern der Jahrhundertsymbole mit dem Format behandeln , in dem wir es einstellen Wir können diese als Platzhalter für jedes Segment behandeln , auf das wir uns beziehen Nun, der Name der Ebene wird von Debug kommen, wenn die Funktion, die wir hier geklärt haben, wie Sie sehen können, und die Nachricht von dem kommen wird , was Sie in dieser Funktion deklarieren Und so wurde alles ausgegeben. Und wir können sehen, dass das Format in ASC-Zeit ist, also werden das Jahr, die Monate, der Tag und dann die Uhrzeit angezeigt, zu Monate, der Tag und dann die Uhrzeit angezeigt, der es gestartet und protokolliert wurde, je nach Debug-Info, Warnung, Fehler und In Ordnung, da haben wir es also. So können wir die Protokollierung implementieren. Geh. Das war's für diese Lektion über Verwendung von Protokollen und darüber, wie wir je nach Situation verschiedene Protokolle ausgeben können . 86. JSON: Hallo zusammen und willkommen zur nächsten Lektion, die sich auf JSO konzentrieren wird. Lass uns einen Blick darauf werfen JSON steht für JavaScript Object Notation und ist ein leichtes Format zum Speichern und Austauschen von Daten. Jetzt verwendet es auch Schlüssel-Wert-Paare auf strukturierte, für Menschen lesbare Weise und wird auch häufig in Web-APIs und -Anwendungen verwendet. Eine weitere wichtige Sache, die hier zu beachten ist, ist, dass JSON verschiedene Datentypen unterstützt, z. B. Zeichenfolgen, Zahlen, Arrays, Objekte und auch Boolesche Wir werden uns also auf JSON konzentrieren und darauf , wie wir es in Hisen anwenden können Also lass uns anfangen. 87. Arbeiten mit JSON – [Lab]: Hallo zusammen und willkommen zur nächsten praktischen Laborübung, die sich auf JSO konzentrieren wird Deshalb werde ich Ihnen drei Beispiele zeigen, wie Sie JSON am besten in PySON implementieren können JSON am besten in PySON implementieren Der erste wird sich nun auf die Konvertierung eines Wörterbuchs in eine JSON-Zeichenfolge konzentrieren Konvertierung eines Wörterbuchs in eine JSON-Zeichenfolge Dann lernen wir, wie man eine JSON-Zeichenfolge in ein PySON-Wörterbuch konvertiert eine JSON-Zeichenfolge in ein PySON-Wörterbuch Und das Letzte, was wir tun werden, ist, JSON in einer Datei zu speichern und JSON aus einer Datei zu lesen Und das wird wirklich wichtig sein , da wir hier auch Kontextmanager verwenden werden , um diesen Prozess durchzuführen. Richtig, also lasst uns weitermachen und loslegen. Wir werden also ganz einfach anfangen und ein Wörterbuch in eine JSON-Zeichenfolge konvertieren. Zuerst müssen wir das JSON-Modul importieren und dann müssen wir unsere Wörterbücher erstellen Ich sage Daten, und mein Wörterbuch wird die folgenden Schlüsselwertpaare Zuerst sagen wir Name als ersten Schlüssel, und dieser Wert wird auf „Ehre“ gesetzt. Das zweite Schlüssel-Wert-Paar besteht aus He ist der Schlüssel und dem Wert 29, dann haben wir die Stadt, und ich setze das auf Affe, ähm, richtig. Da haben wir es also. Da haben wir unser Wörterbuch. Jetzt können wir dieses Wörterbuch in eine JSON-Zeichenfolge konvertieren . Und dazu müssen wir zuerst eine Variable definieren, damit wir das Ergebnis zuweisen können , das wir am Ende der Konvertierung erhalten. Ich werde sagen, dass JSON-Zeichenfolge gleich ist. Dann werde ich auf das JSON-Modul verweisen, sagen Punkt, und dann verwende ich die Methode dumps, und das wird mein Wörterbuch in eine JSON-Zeichenfolge konvertieren mein Wörterbuch in eine JSON-Zeichenfolge Also muss ich nur die Daten durchgehen, es wird sie für mich konvertieren, und alles, was ich tun muss, ist print zu sagen und dann werde ich JSON Underscore-Zeichenfolge sagen Und das wird für mich entsprechend in eine JSON-Zeichenfolge ausgegeben für mich entsprechend in eine JSON-Zeichenfolge Jetzt kann ich also weitermachen und meinen Code ausführen, und da haben wir ihn. Jetzt ist es also in einem geeigneten JSON-Format. Richtig. Perfekt. Denken Sie also daran, dass JSON immer in doppelten Anführungszeichen steht und nicht in herkömmlichen einfachen Anführungszeichen. Und das kann sehr nützlich sein wenn Sie Ihre JSON-Daten an eine Web-API senden oder JSON als Text speichern möchten. Richtig, so können wir weitermachen und es einrichten. Sie können hier den vollständigen Code sehen, der verwendet wurde. Sie können sehen, wie Sie weitermachen und Ihr Wörterbuch in eine JSON-Zeichenfolge konvertieren können . Als Nächstes konvertieren wir konvertieren Ihre JSON-Zeichenfolge in ein Python-Wörterbuch. In Ordnung, machen wir weiter und machen das. Also werde ich diesen Code entfernen. Wir wollen das JSON-Modul weiterhin verwenden. Aber jetzt wollen wir unsere JSON-Daten als eine als JSON formatierte Zeichenfolge angeben unsere JSON-Daten als eine als JSON formatierte Zeichenfolge Ich werde JSON unter der Scare-Zeichenfolge in Gleichheit setzen, und was wir tun wollen, ist zunächst einfache Anführungszeichen hinzuzufügen Wir müssen einfache Anführungszeichen hinzufügen und dann können wir innerhalb dieser Anführungszeichen unser Wörterbuch mit unseren JSON-Daten definieren Genau so muss die Zeichenfolge sein, wenn Sie sie in ein Wörterbuch konvertieren möchten. Ich werde das Schlüssel-Wert-Paar definieren , damit wir einen Namen haben. Und das wird RNO sein, dann werden wir Alter, Doppelpunkt und das wird 29 sein, und dann haben wir City und dann wird das Capetown sein. Da haben wir es Da ist unsere JSON-Zeichenfolge. Denken Sie daran, dass die Anführungszeichen am Ende sehr wichtig sind , und stellen Sie sicher alles eingerichtet haben. Da haben wir's. Wir sind gut. Okay, jetzt wollen wir den JsoString in ein Wörterbuch konvertieren den JsoString in ein Und wir werden das alles einfach in der Datenvariablen speichern Wir werden auf das JSON-Modul verweisen und dann auf die Lades-Meldung, die daraus kommt, und wir werden die JSON-Zeichenfolge übergeben. Okay, JSON, das geladen wird, ermöglicht es uns, diesen JSOMString jetzt in ein Wörterbuch zu konvertieren diesen JSOMString jetzt in ein Das ist es also, was jetzt passieren wird. Wir haben diese JSON-Zeichenfolge durchlaufen und sie wird in ein Wörterbuch umgewandelt. Alles, was wir jetzt tun wollen, ist die Daten zu drucken Zuallererst werde ich sagen , Daten drucken. Und führe diesen Code aus. Hier können wir sehen, dass wir ein reguläres Wörterbuch in PySon haben , wie Sie sehen können wichtigste Detail dabei ist, dass Sie jetzt sehen können , dass es in einfachen Anführungszeichen steht Während Sie in PySon technisch gesehen sind, könnten Sie Ihr Wörterbuch so einrichten , dass es in doppelten Anführungszeichen Sie können das tun, aber im Allgemeinen ist die Standardeinstellung bei PySon in einfachen Anführungszeichen. Das ist ein guter Test, um zu sehen, ob es jetzt in PySon ist und korrekt konfiguriert wurde Jetzt können wir auf einzelne Werte aus dem Wörterbuch zugreifen , sodass Sie die Daten nicht so angeben müssen , wie sie Sie können einfach Ihre eckigen Klammern hinzufügen und daraus wählen. Es wären Ihre Schlüssel , auf die Sie sich beziehen würden, und dann erhalten Sie den Wert zurück. Wenn ich meinen tatsächlichen Namenswert von nein erhalten möchte, müsste ich hier einen Namen eingeben und den Code ausführen. Die Ausgaben geben direkt für meinen Namen aus. Wenn ich nach City suchen möchte, das ist Capetown, und ich das starte, wird Capetown ausgegeben . Genau da haben wir es So können Sie eine JSON-Zeichenfolge in ein Python-Wörterbuch konvertieren . Nun, die wichtigste und unterhaltsamste Sache, würde ich sagen, ist, JSON in einer Datei zu speichern und JSON aus einer Datei zu lesen. Lassen Sie uns zunächst einmal ein Wörterbuch erstellen. Ich werde sagen, dass Daten gleich sind, und werde das öffnen und mein Schlüssel-Wertepaar, den Namen, hinzufügen Betrug nein. Dann haben wir Alter, Dickdarm, 29. Dann werden wir City Colon haben. Wir werden Capetown haben und all unsere Daten sind in diesem Wörterbuch enthalten Nun, die nächste Sache, die wir machen wollen, ist Ascie. Wir wollen unsere Daten natürlich in einer Datei speichern, und wir sagen Wi open, dann die Datei, die wir erstellen wollen Ich sage in ziemlicher Datenpunkt-JSON. Und ich möchte in diese Datei schreiben. Der Modus wird also W sein. Und ich sage als Datei, ich nenne das als. Also wird es die Datei auch im Schreibmodus öffnen. Und dann wollen wir auf JSON verweisen und wir wollen hier die Dump-Methode verwenden JSON-Dump ist eine Nachricht, die die JSON-Daten in eine Datei schreibt Und dazu müssen wir die Daten und dann die Datei durchgehen , weil wir diese Daten abrufen und in unsere Datei schreiben wollen Und das wird die JSON-Daten in die Datei selbst schreiben . Okay. Also lass uns weitermachen und es zuerst in die Datei schreiben, unser Verzeichnis überprüfen, dann können wir es danach lesen. Also können wir den Code jetzt ausführen. Gehen wir zu unserem Explorer. Und hier können Sie sehen, dass wir JSON-Daten haben, und wir können sehen, dass sie in unserer Datenpunkt-JSON-Datei gespeichert wurden. Wir können also den Namen von 29 Jahren sehen, Kapstadt studieren und dort haben wir alles gespeichert Nehmen wir nun an, wir wollen diese Daten aus der Datei zurücklesen und sie zum Beispiel im Terminal lesen, also direkt hier auf dem Ausgangsterminal Schließen Sie das, fahren Sie mit unserer nächsten Anweisung und wir können weitermachen und sagen: Wiz, öffne Wir wollen diese Datei öffnen. Die Datei, die wir öffnen wollen, heißt data dot JS on, und wir wollen sie lesen. In unserer Höflichkeit sagen wir R, wir sagen als Datei, und dann können wir einfach eine Variable namens loaded underscore data definieren , und wir werden sie auf JS dot load setzen Wir verwenden die Punktlademethode, die es uns ermöglicht JSON-Daten aus der Datei zu lesen, und sie werden auch in ein Wörterbuch konvertiert Ich werde Datei sagen. Okay. Am Ende wollen wir nur noch die geladenen Daten drucken. Ich würde sagen, geladene Unterstrichdaten drucken. Lassen Sie uns weitermachen und diesen Code ausführen. Da haben wir's. Wir können sehen, dass wir die Daten haben und auch wieder in der Standardversion für Wörterbücher in Wie ich bereits sagte, wird es in einfachen Anführungszeichen stehen , und das ist ein guter Hinweis darauf, dass es für uns in ein Wörterbuch für Python-Äquivalente umgewandelt wurde für uns in ein Wörterbuch für Python-Äquivalente Richtig Leute, das ist es im Grunde. So können wir JSO nutzen. Ordnung. Da haben wir es. Ich werde einfach weitermachen und diesen Code entfernen. Ordnung. Da haben wir's. 88. Warteschlangen: Hallo, alle zusammen. Willkommen zur nächsten Lektion, die sich auf es konzentrieren wird. Also lass uns anfangen. Also, was ist ein Q? Ein Q ist im Wesentlichen eine Datenstruktur , die dem First-in-First-Out-Prinzip folgt. Sie haben vielleicht schon einmal von einem Prinzip gehört, das als FIFO bekannt ist. Es steht also für First In First Out, und darauf folgt ein Q Nun, es kann sehr nützlich sein, wenn Sie sich auf die Planung, Pufferung, Handhabung und Sequenzierung von Char-Daten konzentrieren auf die Planung, Pufferung, Handhabung und Sequenzierung von Char-Daten . Es kann auch mit qt iss oder collections dot dq implementiert werden mit qt iss oder Zu den wichtigsten Operationen gehört jetzt NQ. Dies dient zum Hinzufügen und DQ, also zum Entfernen, und das wird sich auf bestimmte Elemente beziehen Schauen wir uns hier ein Beispiel an, also eine Analogie, und schauen wir uns dann das zugehörige PysonPgram für ein Q an das zugehörige PysonPgram . Richtig. Nehmen wir an, wir haben eine Menge Leute, die in einer Warteschlange stehen Also stehen alle in der Warteschlange und man könnte es sich als FIFO-System vorstellen Also zuerst rein, zuerst raus. Also die Person, die zuerst um 3 Uhr morgens vor der Wahlkabine stand, ging als Erste raus Die zweite Person wurde natürlich irgendwann die erste Person, und sie gingen auch raus. Also eine Warteschlange. Wenn wir ein Python-Programm erstellen würden, würden wir etwas mit dem Folgenden erstellen , wobei wir uns das Q-Modul schnappen würden . Dann können wir die Q-Klasse importieren. Dann können wir ein Q erstellen, also eine Instanz von Q erstellen. Voting Q wird gleich Q sein. Wenn dann Leute dem Q beitreten, was NQ ist, können wir einfach auf unsere Instanz verweisen und Punkt Put sagen, wir können die Punkt-Methode verwenden, die im Grunde NQ ausführt Und fügen Sie Personen zur Warteschlange hinzu. Und das wird in der Reihenfolge sein. Also Alice, Bob und Charlie. Und dann nehmen wir an, diese Leute haben ihre Stimme abgegeben. Sie werden die Warteschlange verlassen, das wird ein Akt der DQ sein damit wir uns die Reihenfolge ausdrucken können, in der sie sich befinden So können wir uns dann auf die Instanz beziehen, die wir von Q erstellt haben, und die Dot-Get-Methode verwenden Und das wird dann in der Reihenfolge ausgegeben, wer zuerst rein war und wer zuerst raus war, und es wird in der Reihenfolge von Alice, Bob Charlie, wer auch immer zuerst rein war, und es wird dort genau dasselbe ausgeben, wenn wir das sagen und ihre Stimme abgegeben haben. Richtig. Das ist also eine sehr einfache Analogie, anhand derer wir das Konzept der Cues verstehen können Konzept der Cues verstehen Das ist also der theoretische Überblick. 89. Abfragen von Warteschlangen – [Lab]: Hallo zusammen. Willkommen zum nächsten praktischen Übungslabor, das sich auf Qs konzentrieren wird. Lass uns anfangen. Das erste Programm , das wir erstellen werden , wird unser Wissen darüber festigen , wie wir ein grundlegendes Q erstellen können und vor allem, wie wir das Put und die Message an NQ nutzen können , um ein Q hinzuzufügen, und DQ, um es aus einem Q zu entfernen. Als Erstes möchte ich mir die Q-Module besorgen Ich sage von Q, und ich möchte die Q-Klasse aus diesem Modul importieren, und es muss hier ein großes Q sein, das anzeigt, dass es die Klasse ist. Dann möchte ich eine Instanz meiner Q erstellen. Ich werde eine Variable namens voting underscore Q definieren. Ich werde sie auf die Klasse Q mit öffnenden und schließenden Klammern setzen. die Klasse Q mit öffnenden und schließenden Klammern setzen mit öffnenden und Als Nächstes möchte ich zu meiner Frage etwas hinzufügen. Ich sage Abstimmungsunterstrich Q-Punkt PUT Dann füge ich hier in den Klammern zu dem Q hinzu, ich sage weiter und stimme mit dem Unterstrich Q Punkt P ab, ich setze John und stimme dann mit Unterstrich Q Punkt p. Da haben wir's. Jetzt will ich weitermachen und abschalten. Also möchte ich mich aus der Warteschlange entfernen und schauen, was ich jedes Mal erhalte, wenn ich mich in der Warteschlange befinde, wer entfernt wird Ich würde also eine gedruckte Aussage hinzufügen, und ich kann einfach sagen, dass unter Store Q abstimmen würde. Ich möchte mich hier auf die spezielle Variable beziehen , die wir haben, dass wir eine Instanz der Q-Klasse erstellt Dann möchte ich Punkt G sagen . Ich verwende die G-Methode Nachdem ich die G-Methode festgelegt habe, kann ich ein Komma hinzufügen und dann möchte ich sagen, geben Sie ihre Stimme ab Im Grunde wird es passieren , dass der Wert der Person, die zuerst auf die Que gesetzt wurde, also Ro , erreicht wird es wird nein, es heißt nein stimmen Wenn ich weitermachen und das hier durchführen würde, würde es eine Sorgenabstimmung heißen. Aber selbst wenn ich es wiederholt ausführen würde, würde es immer wieder heißen „ Kein Auto, sag abstimmen“, weil Sie die Nachricht „Punkt holen“ hier ausdrücklich dreimal drucken und ausführen müssen die Nachricht „Punkt holen“ hier ausdrücklich dreimal drucken und ausführen , oder so oft , wie oft Sie es in die Warteschlange gestellt haben. Somit können Sie die Logik des First-in-First-Out-Konzepts erkennen. Wenn ich also weitermache und die erste Erklärung ein zweites Mal kopiere, würde ich sagen: Nein, Cars-Abstimmung, dann John Cars-Abstimmung. Und ich müsste ein SRT machen, um die letzte Person zu erwischen, also das wird Sarah sein Und wir können sehen, wie Ana Cars abstimmen, John Carsey abstimmen und Sarah Cars Da haben wir es, und das ist die Aufführung von DQ. In Ordnung, also los geht's. So können Sie also die Grundlagen der Warteschlange mit Putten und Richtig. Okay, lassen Sie uns weitermachen und die anderen Methoden untersuchen, die mit einem Q einhergehen. Also werde ich Folgendes entfernen und hier, indem ich für Q stimme, werde ich das einfach auf Q anpassen. Und Sie können hier einen Parameter in Ihrer Q setzen Okay. Und ich werde das als maximale Größe festlegen, und hier bestimmen Sie die maximale Größe, die Ihr Q haben kann. Jetzt wollen wir der Ques Gegenstände hinzufügen, ich sage Aufgabe, Unterstrich Q, und ich sage Punkt, und ich setze hier Aufgabe eins Ich werde das noch zweimal kopieren. Und wir können zwei sagen, und wir können drei haben. Wir haben drei Punkte in unseren Fragen oder drei Aufgaben. Nehmen wir an, ich möchte hier den Umfang meiner Aufgabe ermitteln. Was ich tun kann, ist drucken und ich kann hier Q-Größe Doppelpunkt sagen , dann möchte ich mich auf Aufgabe Q beziehen und die Punkt-Q-Größenmethode verwenden die Punkt-Q-Größenmethode , die ausgibt, wie viele Aufgaben ich habe. Ich werde Code ausführen sagen. Ich sehe gerade Q-Größen. Das wird nicht die maximale Größe drucken. Es wird die Größe Ihrer Warteschlange haben, die Sie hier eingerichtet haben. Wenn ich eine Aufgabe entfernen und sie ausführen würde, würde dort auch Que-Größen stehen. Ich analysiere mithilfe der PUT-Methode, wie viele Elemente in die Warteschlange gestellt wurden . Richtig, da haben wir's. Nehmen wir an, ich möchte überprüfen, ob das Q voll ist. Ich kann einfach weitermachen und „Drucken“ sagen und ich sage, ist das Q voll. Ich kann Aufgabe unterstreichen, Q sagen und ich möchte weitermachen und Punkt voll sagen Okay. Und es ist gelaufen. Und hier ist die Warteschlangengröße drei und das Q ist voll, weil die maximale Größe von drei erreicht wurde. Aber wenn ich ein Objekt entfernen und es ausführen würde, wäre Größe Q zwei und das Q ist nicht voll, ist falsch, also ist es nicht so. Ordnung. Also, wenn Sie Task, Q hier aufrufen, wenn Sie sie aufrufen, wird sie sich automatisch daran erinnern, was Sie in Ihrem haben und wie viele Elemente Sie in Ihrem u haben. Also diese Variable wird das verfolgen, und alles, was wir tun, ist, ihr einen Strich durch die Rechnung zu machen, indem wir diese Methoden darauf anwenden Ch, das ist völlig in Ordnung, und ich möchte nur die letzte Warteschlange zurückstellen. Jetzt möchte ich Aufgaben entfernen und bearbeiten. Ich werde Drucken sagen. Aufgabe unterstreicht einen Punkt Holen Wir verwenden die Nachricht „Abrufen“ und ich sage gleich nebenan , dass sie abgeschlossen ist Es wird im Wesentlichen das bekommen, was wir als erstes Element hier in die Put-Nachricht eingegeben haben, das ist Aufgabe eins Es wird also so sein, dass Aufgabe eins abgeschlossen ist. Wenn wir dann die nächste bekommen, heißt es , dass Aufgabe zwei abgeschlossen ist. Ich werde das für die ersten beiden tun. Okay. Und dann möchte ich weitermachen und nachschauen , ob die Warteschlange leer ist. Also kann ich „Drucken“ sagen und wir können sagen, ist das Q leer. Ich füge das Komma hinzu und beziehe mich auf Aufgabe Q Punkt. Lassen Sie uns weitermachen und das ausführen Und hier können wir sehen, dass Aufgabe eins abgeschlossen ist. Aufgabe zwei ist abgeschlossen, und ist das leere Qu falsch? Weil noch nicht alle Elemente in der Warteschlange abgeschlossen wurden Nur die ersten beiden, Aufgabe eins und zwei. Drei haben wir noch nicht gemacht. Deshalb ist es nicht leer und gibt falsch zurück. Richtig, wir können dann einfach die folgende Anweisung verwenden , um Aufgabe drei zu erledigen. Und wenn wir das jetzt ausführen, können wir sehen, dass Aufgabe drei abgeschlossen ist. Jetzt können wir also weitermachen und es mit der leeren Methode erneut überprüfen . Speichere das und starte. Jetzt können wir sehen, dass Aufgabe drei abgeschlossen ist bevor sie falsch war, weil sie nicht abgeschlossen wurde. Jetzt ist die Warteschlange leer, weil alle Aufgaben abgeschlossen wurden und sie ist leer und verfügbar. Da haben wir es. Nur noch ein paar Methoden, die Sie nutzen können. Denken Sie daran, dass zusätzlich zu do und Punkt G leerer Punkt angezeigt wird, um zu überprüfen, ob eine Warteschlange leer ist. Sie erhalten außerdem Punkt vier, um zu überprüfen, ob ein Q voll ist, und Warteschlangengröße, um die aktuelle Warteschlangengröße auszugeben. Sie können hier auch den Parameter für die maximale Größe Ihrer Warteschlange festlegen , die Sie festlegen möchten. Ordnung. Also das ist ein bisschen mehr über Qs. Lassen Sie uns also weitermachen und das Folgende entfernen. Ordnung, Leute. Also das war's mit Qs. 90. Rekursion: Hallo zusammen und willkommen zur nächsten Lektion, die sich mit Rekursion befassen wird . Lass uns einen Blick darauf werfen Rekursion. Rekursion ist im Wesentlichen eine Technik, bei eine Funktion selbst aufruft, um kleinere Teilprobleme zu lösen Jetzt wiederholt sie sich, bis ein Basisszenario erreicht ist, und dies hilft zu verhindern, dass unendlich viele Aufrufe auftreten Hier ist es wichtig zu beachten, dass Rekursion in vielen Kontexten angewendet werden kann Ich meine, Sie können es bei der Baumumkehr, bei der faktoriellen Berechnung und auch bei verschiedenen Suchalgorithmen verwenden faktoriellen Berechnung und auch bei verschiedenen Suchalgorithmen bei Richtig. Das ist also der theoretische Überblick Lassen Sie uns tiefer in die Laborübungen eintauchen. 91. Rekursive Aufrufe durchführen – [Lab]: Jeder. Und willkommen zur nächsten praktischen Laborübung, die sich auf Rekursion konzentrieren wird Lassen Sie uns also anfangen. Okay, also bei Rekursion haben wir normalerweise einen Basisfall, und den werden wir innerhalb einer Funktion auswerten, und dann haben wir unseren rekursiven Fall oder unseren rekursiven oder unseren Und das werden wir weitermachen und anhand dessen evaluieren Wir werden also den Basisszenario verwenden und ihn mit dem rekursiven Kern gleichsetzen Okay, lassen Sie uns weitermachen und loslegen. Lassen Sie uns zunächst ein einfaches Programm erstellen, und wir werden diese Funktion Countdown aufrufen. Wir werden N als Parameter haben. Und ich werde das in Kommentare schreiben, damit du anfängst zu lernen. Wir werden also einen Basisszenario haben, und das wird in diesem Fall sein, wenn N gleich Null ist Ich werde drucken, sagen wir, loslegen. Sobald es Blast Off druckt, möchte ich die Funktionen beenden, ich sage Return und das wird ausgeführt und verhindert, dass die Funktion fortgesetzt wird. Dann möchte ich meinen rekursiven Aufruf definieren. Im Wesentlichen möchte ich hier meine aktuelle Nummer drucken. Ich möchte die Funktion auch erneut mit N minus eins aufrufen. Dazu kann ich mich hier einfach auf die Funktion beziehen und N minus eins sagen. Dann muss ich ein Argument nach draußen weitergeben , indem ich die Funktion aufrufe, also kann ich Countdown sagen und ich kann fünf durchgehen, und das ist, was passieren wird. Ich nehme fünf als Argument übergebe es als Parameter von N. Überprüfe den Basisfall , also wenn N gleich Null ist, drucke Blast off aus, kehre zurück und stoppe die Funktion ist jedoch nicht der Fall, also wird es diese if-Anweisung nicht ausführen und stattdessen N ausgeben, was auch immer das zugehörige Argument ist, was fünf ist, dann wird es die Funktion erneut aufrufen , herunterzählen und fünf minus eins sagen , was vier sein wird. Dann wiederholt es den ganzen Vorgang noch einmal und wird vier, vier ist nicht gleich Null Dann wird es vier drucken, Countdown, vier minus eins, das wird drei sein, ist jetzt drei Wenn drei gleich Null ist, was nicht der Fall ist, drucken Sie N, was drei ist, zählen Sie drei minus eins, zwei und gehen Sie zurück N wird natürlich zwei sein, dann wird es sagen, I N ist gleich zwei, nein wird dann N drucken, was zwei sein wird, Countdown, zwei minus eins, das wird eins sein, und dann werden wir den ganzen Weg gehen, bis wir Null haben, und wenn es Null ist, heißt es print blast off und dann beenden wir die Funktion. So funktioniert ein einfaches rekursives Programm. Sie haben Ihren Basisfall und Sie haben Ihren rekursiven Aufruf. Lassen Sie uns jetzt weitermachen und das speichern und starten. Sie können hier also sehen, dass wir fünf, vier, drei, zwei, eins haben und dann loslegen. Sie können hier also sehen, wenn dort „N drucken“ steht, das ist jedes Mal, wenn es eine Zahl ist , nachdem sie subtrahiert wurde Also zuerst wird es fünf sein, fünf minus eins wird vier sein Beginnen Sie die Auswertung mit vier, vier und dann vier, drucken Sie sie aus und fahren Sie einfach mit demselben Vorgang fort, bis wir loslegen und zur Exit-Set-Funktion zurückkehren können. So funktioniert dieses Programm also im Wesentlichen . Rand. Das ist also das Wesentliche der Rekursion. In Ordnung. Jetzt werden wir noch ein paar Beispiele machen, damit wir unser Wissen über Rekursion erweitern können . In Ordnung. Nun, das nächste Programm hier, was ich tun werde, ist eine Zählfunktion einzurichten. Lassen Sie uns also weitermachen und genau das tun. Ich sage Def Countup, und wir können hier tatsächlich einen Unterstrich setzen , und es wird in das Feld aufgenommen Nun, es wird einen Parameter haben, der einnimmt, aber wir werden hier auch ein Standardargument setzen, und ich werde das so setzen, dass aktuell gleich eins ist aber wir werden hier auch ein Standardargument setzen, und ich werde das so setzen, dass aktuell gleich Okay. Dann mein Basisszenario, ich möchte sagen, wenn der Strom größer als N ist, möchte ich sagen, dass Druck fertig ist. Wenn wir also N erreichen, möchte ich drucken fertig und dann möchte ich zurückkehren, wodurch die Funktion beendet wird. Also sage ich jetzt print current und rufe die Funktion auf, das heißt Countup, und ich werde N durchgehen und ich sage aktuell plus eins. Okay. Also hier rufen wir die Funktion erneut mit aktuell plus eins auf und wir müssen ein Argument übergeben , um mit Countup zu beginnen , ich sage fünf. Wir werden fünf haben und denken daran, dass dies unser rekursiver Aufruf ist Ich habe fünf bestanden, ist ein Argument. Wir haben hier fünf und wir haben Strom, der auf eins gesetzt wird , wenn der Strom größer als N ist, wir haben fünf. Das ist nicht der Fall, wir gehen zum rekursiven Aufruf Wir werden natürlich den aktuellen Strom drucken, es wird eins sein Was wir dann tun werden , ist, dass wir hier immer noch fünf durchgehen werden. Dann sagen wir aktuell plus eins, was bedeutet, dass es im Grunde zwei sein werden. Nun, mit dem N-Wert passiert hier nichts , weil der N-Wert im Grunde immer noch fünf sein wird. Aber aktuell wird es jetzt natürlich zwei sein. Der aktuelle Wert wird also zwei sein und der aktuelle Wert wird jetzt zwei sein. Wenn also zwei größer als N sind, wird gedruckt, das ist es nicht. Also drucken wir den aktuellen Wert, und zwar zwei Mal höher. Wir werden immer noch fünf haben und aktuell plus eins, es wird jetzt weitergehen und wiederholen, und aktuell wird drei sein, und es wird hier drei sein, und es wird immer fünf sein und dann aktuell plus eins, wir werden jetzt vier haben, und bis es sechs ist, okay, dann wird es fertig gedruckt , wenn es bis zu sechs ist. Ich möchte auch N für dich drucken damit du sehen kannst, dass es bei fünf bleibt. Wenn ich also „N drucken“ sagen würde, würden Sie auch dieses Ergebnis sehen. Also sollte ich vielleicht etwas Textur hinzufügen, um es einfacher zu machen. Also lass mich das eigentlich in einer F-Saite setzen. Und ich werde sagen, aktuell ist. Und ich werde einfach weitermachen und es einfach machen und NN ist da und los geht's. Also lass uns weitermachen und das ausführen. Okay, wir können es hier sehen. Aktuell ist eins , weil wir das bei der Standardeinstellung gesagt haben . N ist fünf. Wird zu einem hinzugefügt. Aktuell ist zwei und ist fünf, aktuell ist drei und ist fünf, aktuell ist vier und ist fünf und fertig. Okay. Also, wenn wir sechs haben, okay? Also, wenn der Strom sechs ist, was größer als N ist, ist der Druck fertig. Es wird also keine Möglichkeit haben , hier unten zu drucken, um zu zeigen, dass der Strom fünf ist. Technisch gesehen können wir das also nennen und hier sagen, der Endstrom war. Und wenn wir das überprüfen, können Sie hier sehen, dass der Endstrom sechs war. Dort ist es am Ende angekommen, da es mehr als fünf war. Wenn es größer als gleich gewesen wäre, wäre das eine andere Geschichte gewesen. Aber so können wir auch einen Basisszenario verwenden, unseren rekursiven Aufruf einrichten und ein Programm erstellen , das hochzählt Das ist eine andere Art, wie wir das machen können. Lassen Sie uns nun ein weiteres Beispiel machen, nämlich eine Nachricht mit Rekursion zu wiederholen Wir definieren unsere Funktion, d. h. die Nachricht mit einem Unterstrich wiederholen, und wir werden zwei Parameter, message und N, sowie unseren Basisfall übergeben message und N, sowie unseren Basisfall Wenn N gleich Null ist, möchte ich zurückkehren Ich höre auf, wenn N Null erreicht. Das ist alles, was ich tun werde. Dann besteht mein rekursiver Aufruf darin, die Nachricht zu drucken, und wir wollen die Nachrichtenwiederholungsfunktion aufrufen , und wir wollen das wiederholen, und wir werden die Funktion erneut aufrufen, mit Nachricht und minus eins Jetzt rufen wir die Funktion außerhalb auf, wiederholen die Nachricht, und wir übergeben unser Argument, also haben wir Hallo, das zur Nachricht gehört, und dann haben wir drei, was zu N geht. Lassen Sie uns das herausfinden Also hallo ist die Nachricht. N ist drei. Wenn N gleich Null ist, kehre zurück Das ist nicht der Fall. Also werden wir eine Nachricht drucken, also heißt es Hallo. Dann führen wir den rekursiven Aufruf durch und leiten die Nachricht weiter, die Hallo lautet Und dann sagen wir minus eins. Okay. Also, was wir jetzt haben, ist, dass aus drei jetzt zwei werden. Also dann evaluieren wir. Wenn N gleich Null ist, kehre zurück, drucke Hallo, wiederhole die Nachricht Ich würde sagen, dass Sie Hallo und minus eins durchgehen. Das wird dann zu einem gehen. zurück, wiederholen Sie die Funktion erneut, führen Sie sie erneut aus, drucken Sie die Nachricht aus, hallo nochmal. Führen Sie die Funktion erneut aus, dann beginnt sie wieder im Basisfall. Dann wird es irgendwann einen Punkt erreichen, an dem es Null ist. Dann wird es zurückkehren, und Sie werden hier sehen, dass die Nachricht Hallo hier dreimal gedruckt wird, wir sagten minus eins, und wir haben gerade die Funktion wiederholt immer wieder zu gehen. Ordnung. So können wir diesen rekursiven Aufruf in diesem Fall verwenden Richtig. Okay, das war's mit Rekursionen Wie Sie sehen, haben Sie Ihren Basisszenario und Sie haben Ihren rekursiven Aufruf Und diese und die Implementierung der Rekursion haben, wie gesagt, eine Menge Felder in denen Sie Anwendungsfälle verwenden können, aber es ist sehr hilfreich, wenn Sie Ihre Funktion wiederholen und ausführen möchten Ihre Funktion wiederholen und , bis ein bestimmter Fall erreicht ist Stimmt, Leute. Also das war's bei der Rekursion. 92. Verständnisse: Hallo, alle zusammen. Und willkommen zur nächsten Lektion, die sich auf das Verstehen konzentrieren wird Lassen Sie uns also einen Blick darauf werfen. In Ordnung. Wir haben also zwei Arten von Verständnissen. Wir erhalten Listenverständnisse, und ein Listenverständnis ist im Wesentlichen eine Kurzform oder eine kurze Methode neue Liste in einer einzigen Zeile zu erstellen, indem die Elemente oder Elemente aus einem vorhandenen Iterable transformiert oder gefiltert Iterable transformiert oder Die Syntax wird nun wie folgt lauten . Sie werden Ihren Gesichtsausdruck haben, dann werden Sie vier HM in Ihrem Juckreiz haben, dann können Sie natürlich auch eine Wenn-Bedingung haben Sie können sehen, dass für Sie alles in einer Zeile steht. Sie müssen sich nicht auf den Kopf stellen und zum Beispiel Ihre Vierschleife oder Ihre If-Anweisung definieren zum Beispiel Ihre Vierschleife oder Ihre If-Anweisung und das alles sequentiell tun . Sie können jetzt weitermachen und das alles in einem einzigen Ausdruck Wir haben auch Wörterbuchverständnisse, und ein Wörterbuchverständnis wird auf ähnliche Weise funktionieren Es wird Schlüsselwertpaare in einer einzigen Zeile generieren , während Filter oder Transformationen angewendet Jetzt hat es eine ähnliche Syntax. Sie haben Ihren Schlüsselausdruck, Ihren Wertausdruck, und das wird aus vier Elementen bestehen, Sie haben auch Ihre Schleife und die optionale If-Anweisung in Bezug auf die I-Bedingung, die Sie verwenden möchten. Verständnisse. Man kann fast versuchen, es in dem Sinne zu vergleichen, wie Lambda funktioniert Wir können Verständnisse anhand von Wörterbüchern und Listenverständnissen erkennen Wörterbüchern und Listenverständnissen Wir können uns vorstellen, dass es auch ein einfacherer Ansatz sein wird , wenn wir einzeilige Ausdrücke haben wollen , bei denen wir Schleifen und If-Anweisungen beantragen wollen und auch sicherstellen wollen , dass wir sie generieren können, indem wir sie als Liste oder Wörterbuch einrichten als Liste oder Wörterbuch 93. So verwendest du Listenverständnisse – [Lab]: Hallo, alle zusammen. Willkommen zur nächsten praktischen Laborübung, die sich auf das Verstehen von Listen konzentrieren wird Denken Sie daran, Listenverständnis, wir haben unseren Ausdruck, dann haben wir unser Fol, das für das Element in der Iterable verwendet wird, und dann können wir auch eine If-Bedingung hinzufügen, die Sie auch hinzufügen können wenn Sie Filter hinzufügen möchten Okay. Also der Ausdrucksteil , der jedes Element modifiziert oder transformiert , normalerweise in eine Liste. Und dann die vier Elemente in jedem Teil, die die Liste in einer Schleife durchlaufen. Und das wird die Werte für unseren Ausdruck liefern . Richtig. Lassen Sie uns also weitermachen und mit ein paar Beispielen beginnen. Nehmen wir an, ich habe eine Liste mit Zahlen, und ich habe eins, zwei, drei, vier und fünf. Dann möchte ich eine neue Liste erstellen, in der jede Zahl quadriert ist Also werde ich weitermachen und diese Variable namens Quadratzahlen definieren, die im Grunde die neue Liste sein wird Und um das zu tun, lassen Sie uns die Liste ein wenig verstehen. Als Erstes müssen wir nun den Ausdruck definieren. Was wollen wir also tun? Ich möchte Num multipliziert mit Num sagen. Also möchte ich zwei Zahlen multiplizieren. Dies wird aus den Elementen in der Zahlenliste durch die Viererschleife kommen Zahlenliste durch die , die vier Zahlen in Zahlen bedeutet. Auf diese Weise werden wir unsere Werte oder Gegenstände erhalten. Wir werden diese vier Schleifen ausführen und Num wird natürlich, wie die Ausgabe geht, jeden Wert abrufen und dann können wir ihn in unserem Ausdruck hier verwenden , der jeden Wert mit jeder Iteration in der Liste gleichzeitig speichert jeder Iteration in der Liste gleichzeitig Lass mich dir zeigen, was ich meine. In einem Kommentar hier. Wir haben also eins, zwei, drei, vier und fünf. Also vier Zahlen in Zahlen. Zuerst schnappen wir uns einen. Das wird die erste Zahl sein , die wiedergegeben wird. Dann nehmen wir eins und sagen eins multipliziert mit eins Es wird eins sein. Dann gehen wir zum zweiten Punkt über , der zwei sein wird. Also haben wir hier zwei aus dieser Vierer-Schleife genommen, und dann können wir sagen, mit dem Ausdruck hier auf der linken Seite, zwei multipliziert mit zwei, ergibt das Dann schauen wir es uns noch einmal an. Dann haben wir drei, und wir haben es durchgesehen und wir haben drei gesammelt, und jetzt sagen wir drei multipliziert mit drei, das ergibt neun Dann fahren wir mit vier fort , da das der nächste Punkt in der Viererschleife Wir nehmen vier und sagen vier multipliziert mit vier Das wird uns 16 geben. Dann werden wir mit unseren vier Schleifen durch sie schleifen und wir werden uns fünf schnappen. Dann können wir fünf multipliziert mit fünf sagen , das ergibt 25. Wenn wir quadratische Zahlen drucken würden, was jetzt eine Liste sein wird die auf dem Ergebnis basiert, das wir hier entsprechend eingestellt haben, können wir weitermachen und den Code ausführen und hier erhalten wir eins, vier, neun, 16 und 25. Das ist die einfachste Methode, mit der Sie Listen verstehen können Um es noch einmal zu erläutern, auf der linken haben wir unseren Ausdruck und der wird jede Zahl quadrieren , wie wir auf der rechten Seite gesehen haben, wir haben unsere Iteratoren die wir als unsere vier Schleifen definieren , um Zahlen einzeln auszuwählen, und das Ergebnis wird alles in der quadratischen Zahlenvariablen gespeichert, die im Wesentlichen vom Datentyp Liste sein wird , und dann drucken wir die Ausgabe aus und alles das wird eins nach dem anderen in der neuen Liste gespeichert. Lass uns ein anderes Beispiel machen. Nehmen wir an, wir haben Worte und wir haben Hallo, wir haben World und wir haben Pyson Lassen Sie uns weitermachen und eine Liste erstellen, in jedes Wort am Ende einen Erklärungspunkt haben muss Ich definiere einfach eine Variable namens aufgeregte Wörter. Wir müssen zuerst unseren Ausdruck definieren, was ich lieber zuerst mache. Ich sage Wort plus und wir setzen die Erklärung. Dies wird auf der Schleife basieren, die alle Wörter für Wort in Worten durchläuft . Okay, also los geht's wieder. Also werden wir das für eine Schleife laufen lassen und wir werden Hallo vorübergehend speichern und dann werden wir es holen und es hier in unserem Ausdruck verwenden und Hallo sagen, plus, und dann den Erklärungspunkt. Das wird es dann in einer neuen Liste speichern , auf der Hallo steht. Dann werden wir dieses Programm erneut ausführen, um Wort in Worten zu finden, und dann werden wir es uns gut ansehen. Es wird in der Variablen Wort gespeichert, und dann können wir einfach Wort Plus sagen, und das wird wie folgt aussehen. Dann werden wir unsere Vierschleife erneut ausführen. Word wird in PySON gespeichert. Wir können dann einfach PySon plus sagen und das wird wie folgt Lassen Sie uns jetzt unsere Liste durchgehen. Excited Words hat eine neue Liste. Das heißt Hallo, Welt und PySon. Das sollten wir machen. Und das wird dein Output sein. Sie sollten sich hier ein Bild von dem Muster machen können. Okay, großartig. Lass uns jetzt weitermachen und noch eins machen. Dieser wird in Großbuchstaben umgewandelt. Ich nehme Obst und ich nehme Apfelpare Orange. Jetzt möchte ich weitermachen und eine neue Liste erstellen. Also nenne ich das Obst mit dem Unterstrich in Großbuchstaben. Ordnung. Also können wir weitermachen und definieren, wie unser Ausdruck lauten würde, ich würde sagen, Fruchtpunkt oben Und unser Kreislauf würde aus vier Früchten in Früchten bestehen. Schauen wir uns also an, was wir hier machen. Also vier Früchte und Früchte, wir werden jeden der Punkte unabhängig voneinander durchgehen . Also Apple, wir werden Apfel lagern, und dann sagen wir Apfel oben mit diesem Punkt oben und das wird daraus Apfel machen, den wir in unserer Liste speichern Dann fahren wir mit Obst und Obst fort. Die Früchte werden dann als Birnenpaar-Punkt-Oberteil aufbewahrt, das wird Birne sein. Lassen Sie unsere vier Schleifen noch einmal laufen und dann holen wir uns Orange, das wird in unserer Variablen gespeichert, und dann können wir Orange und Oberteil sagen . Es wird orange sein. Wenn wir nun Früchte mit einem Unterstrich in Großbuchstaben drucken und das Ganze ausführen, können wir sehen, dass in unserer neuen Liste Apfel, Birne und Orange in Großbuchstaben stehen unserer neuen Liste Apfel, Birne und Orange in Großbuchstaben Das ist der einfachste Weg , wie wir weitermachen und mit dem Verstehen von Listen beginnen können mit dem Verstehen von Listen beginnen Denken Sie daran, dass die linke Seite Ihr Gesichtsausdruck ist. Die rechte Seite hier wird deine Vierschleife sein. Richtig. Also haben wir das in Ordnung gebracht. Also, das nächste , was wir tun werden , ist, dass wir diesbezüglich mit einer Wenn-Aussage arbeiten wollen. Lassen Sie uns weitermachen und uns das ansehen. Richtig, also lassen Sie uns einen Strich durch die Rechnung machen. Also wollen wir jetzt auch mit unseren If-Bedingungen arbeiten. Lassen Sie uns also eine Liste von Zahlen definieren, und ich sage eins, zwei, drei, vier, fünf, sechs, sieben, acht, neun, zehn Jetzt wollen wir nur Zahlen behalten, die gerade sind, damit wir unsere neue Liste anhand der Variablen gerade Zahlen definieren können. Und wir werden weitermachen und sagen, Num, Num dient in diesem Fall nur als Platzhalter, der in Bezug auf das berechnete Endergebnis pro Iteration an unsere Liste übergeben wird Also sagen wir vier Zahlen in Zahlen. Wenn Zahl, und wir addieren, ist Modul zwei gleich Null Wir wollen also nach geraden Zahlen suchen , das machen wir hier Okay, lassen Sie uns weitermachen und erläutern, wie wir das machen. Wir haben alle Artikel hier in unserer Liste und wir werden vier Zahlen in Zahlen sagen, und wir werden nach einem suchen. Wir haben einen hier und wir werden ihn dann überprüfen, ob er an Bedingungen geknüpft ist. Wenn eine Zahl natürlich eine gerade Zahl ist, speichern wir sie im Platzhalter hier von num und fügen sie dann der Liste hinzu Das ist der Prozess hier dieses Mal, der Ausdruck hier auf der linken Seite verhält sich eher wie eine Bestellung, ich war es vorher, aber bevor wir weitermachten und tatsächliche Aktionen ausgeführt und dann das Endergebnis gespeichert haben, aber es ist jetzt wie eine Platzbestellung zum Speichern des Endergebnisses, das wir auf unsere Liste übertragen werden. In diesem Fall hier ist es also nicht der Fall, also werden wir überhaupt nichts in NUM speichern , weil es fehlschlagen wird. Wenn das stimmt, dann wird das Ergebnis, man könnte sagen, in NUM gespeichert , das dann als Liste übergeben wird , aber in diesem Fall wird das nicht passieren . Also gehen wir zum nächsten. Also zwei. Also vier Zahlen, wir haben zwei. Dann werden wir überprüfen, ob zwei eine gerade Zahl ist und das ist es auch, also können wir sie in Zahl speichern und sagen zwei. Dann gehen wir zu vier, und wir sagen vier Zahlen, und wir gehen zu dann gehen wir zu drei, entschuldigen Sie. Dann werden wir prüfen, ob Drei eine gerade Zahl ist. Wenn nicht, wird es fehlschlagen, und dann wird es einfach unser Follow-up erneut ausführen , was nicht der Fall Dann schauen wir uns vier an und wir werden sagen, ob vier eine gerade Zahl Es wird im Ergebnis für Num gespeichert. Wir können vier sagen. Wir haben fünf und wir machen so lange dasselbe Ergebnis, bis wir vier, sechs, acht und zehn haben. Wir werden das gleiche Muster verwenden. Lassen Sie uns das ausdrucken, um zu sehen, ob wir richtig sind. Ich kann sagen, man druckt Zahlen mit Unterstrichen und schon läuft das Da haben wir unsere Liste, wir haben zwei, vier, sechs, acht und zehn So können wir weitermachen und es nutzen. Nehmen wir an, wir wollen das interessanter gestalten und wir wollen nur Wörter mit mehr als fünf Buchstaben beibehalten. Ich kann eine Liste von Wörtern definieren. Ich sage Apfel und ich sage Banane und Kiwi und Traube und Ananas Und ein Paar. Wir haben also ziemlich viel auf unserer Liste. Jetzt wollen wir eine neue Variable definieren , die im Wesentlichen eine Liste sein wird . wollen wir nur Wörter behalten, die mehr als fünf Buchstaben haben diesem Fall wollen wir nur Wörter behalten, die mehr als fünf Buchstaben haben. Also werden wir Wort als unseren Ausdruck für Wort in Worten verwenden. Also werden wir all diese Elemente in einer Schleife durchgehen und sie hier vorübergehend als Wort speichern. Und dann werden wir überprüfen, ob die Länge des Wortes mit der Funktion hier größer als fünf ist, und wenn ja, werden wir das Wort hier als Platzhalter bezeichnen und es dann zu unserer Liste hinzufügen Ordnung, also lasst uns weitermachen und mit unseren Tests beginnen Vier Wörter in Worten. Wir haben Apple. Wenn das Wort länger als fünf ist, können wir es speichern. Wir können Word hier als Platzsoldat verwenden , um es auf unserer Liste zu speichern. Apple ist eins, zwei, drei, vier, und wir werden fünf haben. Es ist also nicht größer als, wir fahren mit dem nächsten fort, Banane. Vier Wörter in Worten. Als nächstes Banane. Wenn das Wort länger als fünf ist, können Sie Word als Platzsoldat verwenden und wir können es eintragen, also eins, zwei, drei, vier, fünf, größer als, aber nicht. KV ist vier, das wird also nicht funktionieren. Traube. Das werden fünf sein, wird nicht funktionieren, Ananas. Vier Wörter und Wörter, wir gehen jedes einzelne durch und wenn sie fehlschlagen, verwenden wir Word nicht als Platzhalter, um es in unserer Liste zu speichern Lassen Sie uns weitermachen und uns Ananas ansehen. Ja, das werden mehr als fünf sein. Verwenden Sie ein Wort als Platzhalter und wir können es mischen. Dann haben wir ein Paar, was in unserer Ausgabe nicht nur Folgendes enthalten wird Wenn ich sage, lange Unterstriche drucken zu lassen , werden Banane und Ananas ausgegeben , und das ist es, was am Ende das Ergebnis sein wird Richtig, perfekt. Also da haben wir es. Auf diese Weise können wir auch eine If-Bedingung verwenden , wenn wir Listen verstehen möchten. Da haben wir es also. Es gibt die Beispiele: den Ausdruck, unsere Vierer-Schleife, die iterierbare und unsere If-Bedingung Ordnung. So können wir also Listen verstehen. 94. Verwendung von Wörterbuchverständnissen – [Lab]: Hallo, alle zusammen. Und willkommen zur nächsten praktischen Laborübung, die sich darauf konzentrieren wird, das Verständnis von Wörterbüchern zu nutzen. Wir werden also dieselbe Struktur wie beim Verständnis von Listen verwenden, indem wir zuerst mit unseren Ausdrücken und unserer For-Schleife beginnen und später auch dieselbe Struktur wie beim Verständnis von Listen verwenden, indem wir zuerst mit unseren Ausdrücken und unserer For-Schleife beginnen zuerst mit unseren Ausdrücken und unserer For-Schleife eine if-Anweisung In Ordnung, also lassen Sie uns es einfach halten und loslegen. Also werde ich zuerst eine Liste von Wörtern finden. Also werde ich Hallo sagen. Gut. Tschüss. Und ich sage: Willkommen. Dann möchte ich mein Wörterbuch definieren. Ich gebe ihm den Variablennamen des Wortes Links dict. Im Grunde werde ich also ein Wörterbuch mit Worttinten erstellen Okay? Also werden wir unser Wörterbuch wie folgt öffnen. Wir werden unser Schlüssel-Wert-Paar haben und dann unsere For-Schleife. Jetzt werde ich sagen, dass mein Schlüssel das Wort sein wird. Dann verwende ich die Lang-Funktion, um die Gesamtlänge der Zeichen des Wortes zu ermitteln, und das wird abgeschlossen sein, nachdem wir unsere for-Schleife wie folgt ausgeführt haben. Also noch einmal, ich werde hier eine Option einfügen , damit wir alles verfolgen können. Hier sind also andere Artikel oder Elemente, auf die Sie sich wie in unserer Liste beziehen können. Also werden wir zunächst Wort für Wort suchen. Also haben wir hier ein Wort und wir werden Hallo vorübergehend speichern. Dann verschieben wir Hallo hier auf den Schlüssel, und dieser Schlüssel wird in unser neues Wörterbuch aufgenommen und heißt „Hallo“. Dann der Doppelpunkt hier, um den Wert zu trennen. Also werden wir die Länge oder die Länge von Hallo in Zeichen ermitteln, das werden fünf Zeichen sein. Lass unsere Schleife noch einmal laufen. Wort. Wir nehmen Tschüss, speichern es als Wort und wir können dann dauerhaft in unserer Liste speichern. Wir werden es hier an unseren Gesichtsausdruck schicken. Unsere Ausdrücke hier sind im Wesentlichen die Platzhalter. Wir werden es hier aus der Vierer-Schleife holen, es vorübergehend in Word speichern und es dann in unsere Ausdrücke verschieben In diesem Fall werden wir es dann in unser Wörterbuch verschieben Hier in unserem Platzhalter verabschieden wir uns, verabschieden wir uns bevor wir es in unsere Liste verschieben Hier können wir gut sagen, warum? Wie lang ist dann der Abschied? Es wird aus sieben Zeichen bestehen. Für Wort und Worte wählen wir dann Willkommen und dann verschieben wir es in unseren Platzhalter für das Wort, das dann willkommen sein wird Dann setzen wir es hier für den Wert der Länge von welcome ein , der sieben sein wird Wenn wir nun „Drucken“ sagen, unterstreichen wir Längen und Objekt Wir haben dieses Wörterbuch hier, dieses neue Wörterbuch, hallo Five Auf Wiedersehen, sieben. Willkommen, sieben. Es ist also Teil der Schlüsselwerte. Also die Schlüssel lauten Hallo, Auf Wiedersehen und Willkommen. Und der Wert ist fünf, sieben und sieben. Richtig. Das ist also ein einfacher Weg, wie wir das machen können. Lass uns weitermachen und etwas mehr üben. Nehmen wir an, wir wollen weitermachen und zum Beispiel eine Zahl in eine Zeichenkette umwandeln. Also werde ich eine Liste mit Zahlen haben. Und ich werde eins, zwei, drei, vier und fünf haben. Dann werde ich ein Wörterbuch erstellen, in dem die Zahlen Schlüssel und die Werte Zeichenketten sind. Okay. Also lass uns das machen. Ich werde Wörter mit Zahlen, Unterstrichen sagen und wir werden ein Wörterbuch dafür haben Also werden wir zuerst den Schlüssel haben. Das wird Num sein und dann werden wir die Zahl selbst in eine Zeichenkette umwandeln , und wir werden vier Zahlen in Zahlen sagen. Okay, schauen wir uns das mal an. Vier Zahlen. Dies sind alles, wie wir Ganzzahlen im Integer-Format sehen können. Wir werden vier Zahlen sagen und wir werden Num sammeln, es hier an Num übergeben und wir werden es in unserem Wörterbuch speichern, so wie es ist. wir werden es in unserem Wörterbuch speichern, so wie es ist Wir werden einen als Schlüssel haben. Dann wird der Wert hier technisch gesehen auch eins sein, aber wir werden ihn in eine Zeichenfolge umwandeln, heißt, dieser Wert wird in Anführungszeichen stehen. Dann haben wir vier numerische Zahlen. Gehen Sie zum zweiten Ergebnis, das zwei ist, nehmen Sie zwei und geben Sie es an den Platzhalter weiter, damit wir es in unserem neuen Wörterbuch speichern können . Es werden zwei sein. Dann werden wir es hier in eine Zeichenfolge für den Wert umwandeln und der wird nur in Anführungszeichen zwei stehen. Wir machen dasselbe für drei, also machen wir weiter und machen das. Was die Zahlen angeht, haben wir als Nächstes drei, nehmen drei, geben sie an unseren Platzhalter hier weiter, und das wird Drei sein, ist der Schlüssel. Dann fügen wir es hier in den Wert ein, also wollen wir es in eine Zeichenfolge umwandeln, und dann erhalten wir drei. Ich denke, du verstehst jetzt die Idee, und wir werden dasselbe für vier und fünf machen. Wenn wir also Wörter drucken, die Zahlen unterstreichen, erhalten wir dieses Wörterbuch, wie Sie hier im Folgenden sehen können: eins, eins, zwei, zwei, drei, drei, 44, fünf, fünf, wobei der Schlüssel als Ganzzahl in seiner Rohform verbleibt und die Werte in ein Zeichenketten-Handset umgewandelt werden, das in Anführungszeichen steht Wörter drucken, die Zahlen unterstreichen, erhalten wir dieses Wörterbuch, wie Sie hier im Folgenden sehen können: eins, eins, zwei, zwei, drei, drei, 44, fünf, fünf, wobei der Schlüssel als Ganzzahl in seiner Rohform verbleibt und die Werte in ein seiner Rohform verbleibt und Zeichenketten-Handset umgewandelt werden, das in So können wir weitermachen und das einrichten. Okay, lassen Sie uns jetzt weitermachen und hier ein weiteres Beispiel machen, und hier wollen wir Zahlen ihren Würfeln zuordnen. Okay, also lass uns weitermachen und das machen. Also Zahlen, gleich, und wir werden eins, zwei, drei, vier und fünf haben zwei, drei, vier und fünf Okay, jetzt wollen wir ein Wörterbuch erstellen, in dem die Schlüssel Zahlen und die Werte ihre Würfel sind Also definiere ich eine Variable als Cube Dict. Okay. Und das wird ein Wörterbuch sein. Wir werden Num als Schlüssel haben und dann Num und dann doppelte Sternchen Das wird also weitergehen und sicherstellen, dass wir ein würfelförmiges Ergebnis haben, und es wird zwei, drei, vier, Zahl in Zahlen sein . Okay. Also lass uns weitermachen und genau das tun. Für die Zahl in Zahlen müssen wir sicherstellen, dass wir unser „Wie kann ich sagen“ -Erklärungsformat haben ? Eine vierstellige Zahl. Zuerst haben wir einen, schnappen Sie sich einen. Dann geben wir es hier an Num weiter und das wird eins als Schlüssel sein. Und eins zu eins wird uns im Grunde das Ergebnis von eins geben Ordnung. Dann für Num in Zahlen , okay, wir werden zwei haben. Also haben wir hier zwei, die als Schlüssel dorthin transportiert werden, zwei, und den Wert dort. Zwei Würfel geben uns also im Grunde das Ergebnis Acht als Wert Gehen Sie noch einmal, vier Zahlen. Wir werden jetzt mit drei arbeiten. Nimm drei und verschiebe sie in den Platzhalter, damit wir sie für unser Wörterbuch vorbereiten können Wir nehmen es dorthin und das ergibt im Grunde drei und dann sagen wir drei, natürlich, gewürfelt und das ergibt uns 27. Das wird weitergehen und das gleiche Ergebnis für vier und fünf Wir können die endgültige Ausgabe erhalten, indem wir print, cube dink sagen . Dort erhalten wir Folgendes Wir hatten eins, acht, 27 und natürlich haben wir 64 und 125, fünf Würfel, vier Würfel usw., und so können wir Zahlen ihren Würfeln zuordnen Richtig. Ich denke, wir sollten uns jetzt sicher sein, dass wir links unseren Ausdruck und rechts unsere For-Schleife und das Iterable haben und wir unsere Ausdrücke einfach verwenden werden, wenn wir ein Ergebnis haben Wenn wir eine Berechnung durchführen müssen, wird das Endergebnis in unser Wörterbuch aufgenommen, arbeiten in diesem Fall oder wenn wir mit Listen Wenn wir keine Berechnung durchführen müssen, können wir einfach weitermachen und sie eingeben. Richtig. Perfekt. Okay, das ist also gut. Nun, das nächste, was wir tun werden, ist mit unseren Wenn-Bedingungen zu arbeiten . Also lass uns anfangen. Also werde ich weitermachen und Worte sagen und wir werden Apfel, Birne, Orange, Erdbeere essen. Und grep. Es gibt alle Artikel auf meiner Liste Jetzt möchte ich ein Wörterbuch erstellen, in dem die Schlüssel Wörter und die Werte ihre Länge sind, aber nur für Wörter, die länger als fünf Buchstaben sind. Lassen Sie uns dieses Wörterbuch definieren. Ich nenne es hier in meinem Wörterbuch lange Wörter, gleich, wir werden Wort als Schlüssel haben und dann wäre die Länge des Wortes hier der Wert, und das gilt für Wort in Wörtern wenn die Länge des Wortes größer als fünf ist Okay, lassen Sie uns weitermachen und an diesem Prozess arbeiten. Also zuerst müssen wir uns unsere vier Schleifen ansehen. Also vier Wörter in Worten. Also werden wir all diese Elemente in der Liste noch einmal durchgehen . Also zuerst haben wir Apple. Apple, wir können sehen, ist eins, zwei, drei, vier, fünf. Wir können sehen, dass es fünf Zeichen sind. Wenn das Wort also länger als fünf ist, können wir weitermachen und diesen speziellen Ausdruck verwenden . Wenn dies nicht der Fall ist, wenn es falsch ist, fahren wir einfach mit dem nächsten Element in der Schleife fort. Okay, also falsch, wir machen nicht weiter. Wenn es wahr ist, fügen wir in diesem Fall nur true zu unserem neuen Wörterbuch hinzu. Wir wechseln zu Pair. Wir können einfach sehen, dass Paar nicht fünf ist, also können wir Orange, Eins, Zwei, Drei, Vier, Fünf, Sechs, Orange weglassen. Für Wort und Worte haben wir Orange. Wenn die Länge größer als fünf ist, sind es sechs. Dann legen wir fest, dass wir das ersetzen oder es an Word als Platzhalter übergeben, um unser neues Wörterbuch durchzugehen, das wir gerade erstellen und das im Wesentlichen in Anführungszeichen stehen wird Wir werden Orange essen. Dickdarm. Und dann brauchen wir die Länge des Wortes dort. In unserem Fall hier werden es also sechs sein. Dann können wir unser Komma hinzufügen. Dann gehen wir zu Strawberry. Wir können bereits sehen , dass das mehr als fünf ist , also können wir eins, zwei, drei, vier, fünf, sechs, sieben, acht, neun, zehn sehen . Also vier Wörter und Worte. Wir sind jetzt bei Strawberry. Es ist größer als fünf, es sind zehn. Also dieses spezielle Wort werden wir hier zu Wort übernehmen, und jetzt können wir das Wort tatsächlich zu unserem Wörterbuch hinzufügen , Erdbeere. Und der Wert hier, seine Länge ist zehn Zeichen, also können wir zehn sagen. In Ordnung, lassen Sie uns miteinander reden. Dann haben wir Traube und Traube ist nur fünf, also wird das nicht funktionieren. Also werden wir nur diese beiden Artikel haben. Also können wir „Drucken“ sagen. Lange Wörter. Und da haben wir es. Wir haben unser neues Wörterbuch mit unserem Schlüssel-Wert-Paar, unser Schlüssel hier ist Orange, Wert sechs, Schlüssel ist Erdbeere, Wert zehn. In Ordnung, da haben wir es. Okay, lass uns weitermachen und noch eins machen. Und das wird gerade Zahlen filtern und verdoppeln. Wir werden also eine Liste mit den Zahlen eins, zwei, drei, vier, fünf, sechs, sieben, acht, neun und zehn haben. Dann wollen wir ein Wörterbuch einrichten, in dem gerade Zahlen Schlüssel sind und deren Werte doppelt so groß sind wie ihr Wert. Also setze ich die Variable auf doppelte Gerade. Das wird im Grunde ein Wörterbuch sein, also werden wir Num haben. Dann multiplizieren wir Num mit zwei für den Wert, und dann ist unsere Schleife vier Num in Zahlen wenn Num den Modulus zwei Doppel addiert, gleich Null ist. Wir werden prüfen, ob es natürlich auch gleichmäßig ist. Das ist der Filter beim Lass uns weitermachen und die Berechnungen durchführen. Vier Zahlen in Zahlen. Gehen wir sie durch. Wir haben einen. Nun, wenn Num gerade ist, können wir zu dem Ausdruck übergehen, aber das ist nicht der Fall, sodass wir ihn überspringen können. Vier Zahlen in Zahlen, wir gehen zu zwei. Wenn die Zahl gerade ist, ist es, es sind zwei, also können wir hier weitermachen. Die Zahl wird zwei sein, das wird der Schlüssel sein weil wir mit einem Wörterbuch arbeiten, und das wird zwei, zwei mal zwei sein , das ergibt vier. Acht. Gehen wir zum nächsten. Drei, drei ist noch nicht einmal. Was Sie also tun können, ist zu wissen dass Sie, wenn Sie sich die I-Bedingung ansehen, automatisch einfach schnell überprüfen können , ob sie einem bestimmten Fall entspricht, und ob sie sich nicht darum kümmern muss, alles zu vervollständigen und zuzuweisen Vier wird ausgeglichen sein. Vier Nomen-Zahlen, wir haben drei überprüft, wir werden uns vier ansehen Es ist sogar gemäß unserer Wenn-Bedingung. Wir werden vier als Schlüssel angeben. Dann sagen wir vier mal zwei. Das wird das Endergebnis sein, das wir hier speichern und da haben wir vier. Fünf ist ungerade, sechs ist gerade. Wir können vier Zahlen in Zahlen sagen. Wenn die Zahl gerade ist, ist es sechs. Dann können wir die Sechs hier in den Platzhalter von Zahl verschieben, was bedeutet, dass wir sie in unser neues Wörterbuch aufnehmen können, das sechs als Schlüssel haben wird Dann würden wir sechs mal zwei sagen, und das ergibt 12. Okay, das ist also ein Prozess, den wir immer weiter verfolgen. Dann müssen wir nur noch acht und zehn auswerten. Lassen Sie uns das also ausdrucken , um das Ergebnis zu sehen. Also verdoppeln Sie die Gleichheit. Also lass uns weitermachen und das machen. Und hier können wir sehen, dass wir dieses Ergebnis haben. Also haben wir hier die ersten bis zu sechs gemacht, und dann haben wir acht, 16, zehn und 20. Wir konnten also sehen, dass acht und zehn an den Ort geschickt werden, wo Num in das neue Wörterbuch übernommen wurde, und dann auch 16 und 20. Okay, also 16 und 20, wir können sehen, dass es durch Multiplikation von acht mit zwei und dann auch zehn mit zwei abgeleitet wurde . Okay, Leute Das ist es. So können wir das Verständnis von Wörterbüchern nutzen Wie Sie sehen, ist es ein ziemlich einfacher Prozess und wie wir ihn nutzen können. Das ist es. 95. Fäden und Prozesse: Hallo zusammen und willkommen zur nächsten Lektion, die sich auf Threads und Prozesse konzentrieren wird . Schauen wir uns das mal an. Also, das Erste, was wir verstehen müssen , ist, was ein Thread ist. Ein Thread ist also im Wesentlichen eine einfache Ausführungseinheit , die unabhängig läuft und gleichzeitig Speicher mit anderen Threads teilt. Sie können sich also einen Thread als einen Arbeiter an einer Montagelinie vorstellen , bei dem jeder Thread eine Aufgabe erledigt und mehrere Threads gleichzeitig arbeiten können , um die Verarbeitung zu beschleunigen. Schauen wir uns nun die Vorteile von Threads an. Threads innerhalb eines Prozesses verwendeten also denselben Speicher. Sie verbrauchen weniger Ressourcen und sind effizient. Sie eignen sich auch sehr gut für bestimmte Aufgaben, bei denen auf Eingabe oder Ausgabe gewartet werden muss. Und eine weitere wichtige Sache , die Sie wissen sollten, ist, dass das Starten eines Threads schneller ist als das Starten eines Prozesses. Schauen wir uns nun die Einschränkungen von Shreds an. Aufgrund der globalen Interpretersperre, die allgemein als GIL bezeichnet wird, werden Threads nun abwechselnd ausgeführt globalen Interpretersperre, die allgemein als GIL bezeichnet Threads können nicht gewaltsam gestoppt werden, wenn sie einmal gestartet wurden ist also das Unglückliche, wenn es um Threads geht, im Gegensatz zu Prozessen, die gestoppt werden können Einmal gestartet, kann ein Thread nicht mehr. Und hier ist es wichtig zu wissen, dass gemeinsam genutzte Daten zu unvorhersehbaren Problemen führen können. Mit anderen Worten, stellen Sie Bedingungen her, die auftreten können, wenn Daten gemeinsam genutzt werden. Jetzt gibt es auch keine Geschwindigkeitsverbesserung für CPU-intensive Arbeiten, die mit Threads anfallen. Schauen wir uns nun die Prozesse an. Also ein Prozess. Ein Prozess ist ein aktives Programm mit eigenem Speicher und eigenen Ressourcen. Eine einfachere Art, einen Prozess zu betrachten , besteht darin, ihn sich wie eine separate App auf Ihrem Computer oder ein bestimmtes Hintergrundprogramm vorzustellen, bei dem jeder Prozess unabhängig ausgeführt wird ohne den Speicher mit anderen zu teilen. Nun, was die Apps hier angeht, meine ich zum Beispiel, sagen wir, Sie haben Microsoft Word geöffnet, das würde als App gezählt werden, oder wenn Sie auch eine Anwendung wie Discord geöffnet haben oder wenn Sie Spotify oder Steam oder Google Chrome oder etwas Ähnliches geöffnet haben, können Sie das irgendwie in dieser Hinsicht sehen. Nun, Prozesse bieten eine ganze Reihe von Vorteilen, also schauen wir uns das an So können sie mehrere CPUs und Kerne voll ausnutzen. Jeder Prozess hat seinen eigenen Speicher, was dazu beiträgt, die Daten getrennt zu halten Es ist auch sehr ideal für Aufgaben, die im Gegensatz zu Threads eine hohe CPU-Verarbeitung erfordern . ist wichtig zu beachten, dass Prozesse unabhängig voneinander ausgeführt werden können , ohne sich aufeinander verlassen zu müssen. Und sie können jederzeit gestoppt oder unterbrochen werden, was einer der besten Vorteile ist, die Sie in Bezug auf Prozesse haben können. Jeder Prozess hat sein eigenes Gel, GIL, wodurch die von Python auferlegten Threading-Grenzen vermieden Nun gibt es natürlich auch einige Einschränkungen bei Wir können sehen, dass Prozesse mehr Systemressourcen verbrauchen Threads , die weniger verwenden. Außerdem dauert es länger, einen Prozess zu erstellen, als einen Thread zu starten. Eine weitere bedauerliche Sache ist, dass jeder Prozess mehr Speicher benötigt, da er nicht gemeinsam genutzt wird. Die Kommunikation zwischen Prozessen ist ziemlich komplex und erfordert leider zusätzliche Handhabung. Und das Letzte, was ich zur Einschränkung von Prozessen sagen möchte , ist, dass das Umschalten zwischen Prozessen ziemlich langsam sein kann, sich aufgrund des Overheads auf die Leistung auswirken wird . Leute. Das war's also für den theoretischen Überblick. Ich wollte Sie nur durch den theoretischen Überblick darüber führen, was Threads sind, was Prozesse sind, und Ihnen einige Informationen über ihre Vor- und Nachteile geben einige Informationen über ihre Vor- und Nachteile Und wie Sie sehen, ist es fast so, als ob dort, wo einer leidet, der andere gedeiht, könnte man sagen Aber das ist auf jeden Fall alles für diese Lektion. 96. Multiprocessing: Hallo zusammen und willkommen zur nächsten Lektion, die sich mit Multiprocessing befassen wird . Schauen wir uns das mal an Richtig, Multiprocessing ermöglicht es einem Programm, mehrere Prozesse unabhängig voneinander auszuführen, von denen jeder seinen eigenen Speicher und eigene Ressourcen Jetzt maximiert es auch die CPU-Auslastung, indem umfangreiche Berechnungen auf mehrere Kerne verteilt umfangreiche Berechnungen auf werden, um eine bessere Leistung zu 97. Mehrfädeln: Hallo zusammen und willkommen zur nächsten Lektion, die sich mit Multithreading befassen wird Schauen wir uns das mal an. Richtig, Multithreading ist also ein System, das es einem Programm ermöglicht, mehrere Threads innerhalb desselben Prozesses auszuführen , sodass Sie Ihre Erinnerungen und auch Ihre Ressourcen gemeinsam nutzen können Ihre Erinnerungen und auch Ihre Ressourcen Außerdem können Aufgaben gleichzeitig ausgeführt werden, ohne dass separate Prozesse erstellt Ordnung. Lassen Sie uns also weitermachen und in das Praktische beim Multi-Shreading eintauchen 98. Multiprocessing integrieren – [Lab]: Hallo zusammen und willkommen zur nächsten praktischen Laborübung, die sich auf den Einsatz von Multiprozessoren konzentrieren wird Multiprozessoren konzentrieren Lassen Sie uns also anfangen. Zuerst wollen wir das Multi-Processing-Modul importieren. Dann wollen wir das Zeitmodul importieren , damit wir die Schlaffunktion nutzen können. Als Nächstes wollen wir die Funktion definieren , die in einem separaten Prozess ausgeführt werden soll. Ich sage gehörloser Arbeiter, es wird eine Funktion sein Alles, was ich tun werde, ist das Zeitmodul aufzurufen und ich möchte meine Schlaffunktion definieren und ich möchte den Prozess mindestens 20 Sekunden lang am Leben halten , damit wir ihn im Task-Manager oder in unserem Aktivitätsmanager sehen können ihn im Task-Manager oder in unserem Aktivitätsmanager sehen Im Moment müssen wir als Nächstes sicherstellen, dass der Code nur ausgeführt wird , wenn diese Datei direkt ausgeführt wird, und das wird als Prozess angesehen. Und um sicherzustellen, dass das auch der Fall ist, können wir diese IF-Anweisung verwenden, die besagt , dass Namen doppelt unterstrich, doppelter Unterstrich gleich oder gleichwertig mit doppeltem Unterstrich main, doppelter Unterstrich ist main, doppelter Unterstrich Okay, lass es mich erklären. Sie fragen sich wahrscheinlich, was ein Name mit doppeltem Unterstrich ist Das ist also eine spezielle eingebaute Variable, die wir in Python bekommen und die den Namen unseres Skripts oder unseres Moduls enthalten wird . Dann haben wir Underscore Main Double Underscore. Und damit wird geprüft, ob das Skript direkt ausgeführt wird und ob es nicht als Modul importiert wurde Richtig. Es ist also sehr wichtig, dass wir das ohne diese Prüfung , die wir hier durchführen, haben ohne diese Prüfung , die wir hier durchführen, Das Skript könnte weitermachen und auf unbestimmte Zeit neue Prozesse erstellen und am Ende abstürzen Es ist also sehr wichtig , dass wir es haben. Dies wird als unser erster Prozess angesehen, unser Python-Skript, und dann wird unser zweiter Prozess diese Worker-Funktion sein. Das können wir also schon definieren. Ich sage Prozess eins. Und das können wir als Prozess bezeichnen. Lass uns weitermachen. Als Nächstes möchten wir nun einen neuen Prozess erstellen, einen neuen Prozess erstellen, unsere Worker-Funktion ausführt. Ich werde sagen, dass Prozess gleich ist, und ich werde Multiverarbeitung sagen Wir werden uns auf diesen Modulpunkt beziehen und wir werden uns auf die Prozessklasse beziehen und dann den Parameter target durchgehen und ihn auf Worker setzen Schauen wir uns das mal an. Der Prozess hier ist eine Klasse aus dem Multiprocessing-Modul, und sie wird verwendet, um einen neuen Prozess zu erstellen , den sie gerade durchführt, indem sie nach einem Ziel suchen, das als Worker als der gewählte Prozess, der durchgeführt werden soll, sein wird Nun, arget ist, wie ich bereits erwähnt habe, ein Parameter, der die Funktion spezifiziert, die in dem neuen Prozess ausgeführt werden soll , der Worker sein wird Sie fragen sich wahrscheinlich, ob das eine Funktion ist, warum rufen wir sie dann nicht auf oder fügen die Klammern Wir übergeben diese Worker-Funktion also ohne Klammern , weil wir die Funktion selbst übergeben wollen und nicht das Ergebnis ihres tatsächlichen Aufrufs Okay. Nun, dieser Prozess, den wir hier definiert haben, wird in dieser Variablen namens Prozess gespeichert . Okay. Jetzt wollen wir weitermachen und den Prozess starten. Ich würde sagen, Punktstärke mit der Stärkemethode verarbeiten , und das wird den Prozess starten, und dadurch wird er im Hintergrund ausgeführt. Sobald dieser Prozess gestartet ist, möchten wir einfach eine Druckanweisung hinzufügen , die uns mitteilt, dass der Prozess gestartet wurde und dass wir den Task-Manager überprüfen müssen , denn denken Sie daran, wir ihn nur 20 Sekunden lang sehen werden. Ordnung. Also, wir können einfach sagen, drucken und wir werden sagen, dass der Prozess gestartet wurde. Dann können wir sagen, Task Manager überprüfen. Und wenn Sie macOS verwenden, heißt es Activity Manager, den Sie überprüfen können. Als Nächstes müssen wir Process Dot Join sagen, und das ist eine Join-Methode, und die wartet, bis der Vorgang abgeschlossen ist, bevor sie fortgesetzt wird . Am Ende wird also jede weitere Codeausführung blockiert, wir möchten sagen, dass der Druckvorgang abgeschlossen ist. Da haben wir's. In Ordnung, das ist also alles, was wir hier einrichten müssen. Wir werden also unseren Standardprozess für das Python-Skript im Hintergrund haben für das Python-Skript im Hintergrund und dann den Prozess, den wir jetzt tatsächlich erstellt haben, was eine Funktion sein wird, die wir hier entsprechend einstellen. Ordnung, das ist es, was wir hier an Ort und Stelle haben und einsatzbereit sind. Ordnung. Wenn Sie jetzt in Windows sind, können Sie einfach Ihren Task-Manager öffnen. Sie können einfach nach dem Task-Manager suchen und ihn öffnen. Es ist bereits geöffnet, und Sie können sicherstellen, dass Sie hier links auf Prozesse klicken , und Sie können einfach Pierson eingeben und Andrew drücken Ab sofort wird nichts angezeigt, weil wir unser Skript nicht ausgeführt haben , sobald wir das Skript hier haben , wird es als Prozess ausgeführt, und dann wird es hier auch einen neuen Prozess erstellen , indem es diese spezielle Funktion hinzufügt Ordnung, also stellen Sie sicher, dass Sie mit all dem einverstanden sind, dann können wir weitermachen und weitermachen. Ordnung. Jetzt können wir weitermachen und unseren Code ausführen. Hier heißt es Process Stated Check Task Manager. Sie können sehen, dass hier ein Hintergrundprozess und zwei Prozesse laufen, und jeder von ihnen ist natürlich Teil des Python-Skripts, Teil des Python-Skripts und diese Funktion, die wir ebenfalls erstellt wurde ebenfalls eingerichtet, und wir können hier auch einige Informationen darüber sehen hier wie viel in Megabyte verwendet wird Sie können sehen, dass es gestoppt wurde, aber wir können es einfach erneut ausführen. Und wenn wir zurückgehen, können wir einfach weitermachen und sehen, wie viel verbraucht wird Wir haben also gesehen, dass die CPU-Auslastung für einen Moment bei etwa 0,2% lag, also ist sie sehr, sehr niedrig und sie ist weg. Und wir können hier im Speicherbereich einige Informationen darüber finden wie viel Megabyte verwendet wird, und insgesamt für die Hintergrundprozesse und sie auch separat Richtig. Da haben wir es also. So können wir Multiprocessing in Pyson nutzen. In Ordnung, das ist es also. 99. Multithreading-Funktionen integrieren – [Lab]: Hallo zusammen und willkommen zur nächsten praktischen Laborübung, die sich auf Multithreading konzentrieren wird Jetzt werde ich mich natürlich einfach an den Code anpassen, den wir zuvor für Multiprocessing hatten Ein Großteil des Programms, das wir hier erstellen, wird Ähnlichkeiten mit denen haben, die wir mit Multiprocessing verwenden Wir werden einige Anpassungen vornehmen und ich werde Ihnen hier die neuen Dinge erläutern , die das Threading zu etwas Besonderem machen Sie können einfach weitermachen und Ihren Code unverändert lassen , und wir werden ihn einfach anpassen Natürlich werden wir jetzt mit Multithreading arbeiten. Wir können dieses Modul beim Multiprocessing einfach entfernen und es durch das Threading-Modul ersetzen es durch das Threading-Modul Dies wird es uns ermöglichen, Threads zu erstellen. Auch hier werden wir das Zeitmodul verwenden , damit wir die Schlaffunktion nutzen können. werden eine Arbeiterfunktion wie zuvor haben und sicherstellen, dass wir den Sleep-Timer auf 20 Sekunden einstellen. Natürlich werden wir immer noch unseren Unterstrichnamen Underscore verwenden , unsere spezielle eingebaute Variable, sollte ich sagen Ich werde das nutzen. Auch hier werden wir Double Underscore Main Double Underscore verwenden Double Underscore Main Double Underscore und das wird, wie ich bereits erwähnt habe, sicherstellen, dass das Skript läuft und insgesamt werden wir mit dieser If-Anweisung sicherstellen mit dieser If-Anweisung sicherstellen , dass wir keine Abstürze oder ähnliches haben Als Nächstes wollen wir einen Thread erstellen. Anstatt Prozess zu sagen, werden wir Thread sagen, und wir werden weitermachen und Multiprocessing durch das Threading-Modul ersetzen , das wir haben Dann werden wir die Prozessklasse durch eine Thread-Klasse ersetzen Prozessklasse durch eine Thread-Klasse ersetzen In dieser Codezeile werden wir dasselbe tun, aber wir werden einen neuen Thread erstellen, der die Worker-Funktion wie zuvor ausführt . Anstatt den Prozess zu starten, starten wir dann den Thread. Wir werden hier am Ende sagen, Stärke lesen, wir werden auch eine Absicherung machen und auch Shred Dot Join sagen Wir können hier einfach den Text ändern, um zu sagen, dass der Thread gestartet wurde. Und der Thread ist fertig. Okay, das sind die Anpassungen, die wir hier haben, und wir können einfach entfernen, was wir hier haben. Ordnung. Und das haben wir jetzt aus dem Weg geräumt. Wir haben also alles so wie es ist. Also, hier ist nicht wirklich viel anders, also mit Thread-Punkt-Start, nur um es noch einmal zu wiederholen, wird der Thread gestartet Es wird im Hintergrund laufen. Und mit Thread Dot Join hier, okay, im Grunde werden wir einfach warten, bis der Thread fertig ist, bevor wir einfach mit dem Rest unseres Codes fortfahren. Okay. Nun, eine weitere Sache, die ich hier auch erwähnen möchte, ist ein wenig detaillierter mit diesen Nachrichten Punkt Start und Punkt Join. Nun ist es sehr wichtig, dass Punkt Start an der richtigen Stelle ist, denn wenn wir Punkt Start nicht angeben, beginnt der Thread zu laufen. Wenn wir Dot Join nicht haben, wird das Programm beendet, bevor der Thread seine Aufgabe abgeschlossen hat. Dies sind die Gründe, warum wir es in diesem speziellen Anwendungsfall benötigen . Okay. Und was wir jetzt tun können, ist, eine Absicherung zu machen und den Code auszuführen und die Ausgabe so zu sehen, wie sie läuft. Ordnung. Also lass uns weitermachen und schauen, was passiert. Jetzt möchte ich das etwas länger machen, also werde ich es auf 30 Sekunden einstellen . Ich werde den Code ausführen. Überprüfe. Wie Sie sehen können, läuft hier nur ein Prozess. Das ist ein guter Hinweis darauf , dass wir Shredding verwenden, denn denken Sie daran, dass ich in der theoretischen Lektion gesagt habe, dass, wenn Sie mit Multi-ShreadingO-Threading arbeiten , es daher nur einen Prozess geben wird und dass Threads sich einen Prozess Obwohl wir hier zwei Threads haben, habe ich einen, den wir mit unserer Funktion definiert haben , und unser Standardskript einer mit allen Python-Skripten selbst, wird als einer enthalten sein. Das ist der Grund dafür. Geh einfach los und renne , deshalb haben wir es. Wir können sehen, dass wir hier auch über einen gewissen Arbeitsspeicher in Höhe von 3,9 Megabyte verfügen , und wir können sehen, dass er die CPU, die Festplatte oder das Netzwerk nicht so stark belastet wie diesem Moment bei diesem speziellen Prozess Wie Sie sehen können, ist es wichtig, sich daran zu erinnern, da wir nur einen Prozess haben, der sich den Speicher mit dem Hauptprozess teilt, sodass dieser Prozess effizient sein kann Der Grund, warum wir nur ein Verfahren verwenden, liegt in der Tatsache , dass Pison das Gel, das GIL, verwendet, das ich bereits erwähnt habe Das ist die globale Interpretersperre. Dadurch wird sichergestellt, dass in einem einzigen PysON-Prozess jeweils nur ein Thread ausgeführt wird in einem einzigen PysON-Prozess jeweils nur ein Obwohl wir hier mehrere Threads haben, haben wir zwei davon, sie werden nicht als separater Prozess im Task-Manager erscheinen als separater Prozess im Task-Manager Wie Sie in diesem Prozess gesehen haben, werden sie sich denselben Speicherplatz teilen und innerhalb desselben PysON-Prozesses arbeiten innerhalb desselben PysON-Prozesses Auf diese Weise können wir auch den Unterschied zwischen unseren Threads und unseren Prozessen mit Multiprocessing und Multithreading unterscheiden auch den Unterschied zwischen unseren Threads und unseren Prozessen mit Multiprocessing und Multithreading Ordnung. Jetzt wollen wir einfach unsere Ressourcen bereinigen, damit wir den gesamten Code hier markieren und löschen können . Was wir auch tun können, ist einfach alle anderen Dateien zu löschen , die wir haben, mit Ausnahme von Main Dot Pie, damit wir weitermachen und sie einfach löschen können. Okay. Und der letzte. Da haben wir's. Bis wir Main Doppie haben Also, wenn du noch etwas hast, mach weiter und räume es auf. führen wir nur einen Kurs Zwischenzeit führen wir nur einen Kurs zur Ressourcensäuberung Es werden noch mehr kommen, aber wir wollen einfach alles aufräumen, was wir hier haben. In Ordnung, das ist es also. 100. Einheitstests: Hallo, alle zusammen. Willkommen zur nächsten Lektion, die sich auf Unit-Tests konzentrieren wird. Lass uns einen Blick darauf werfen. Komponententests. In Python beinhaltet Unit-Tests das Testen einzelner Codekomponenten, um zu überprüfen, ob sie wie erwartet funktionieren. Nun ist eine Einheit typischerweise eine Funktion oder Methode, die eine bestimmte Aufgabe ausführt. Und die nächste Frage, die wir uns wahrscheinlich stellen, ist, warum sollten Sie diese Komponententests durchführen? Ich habe also ein paar Gründe, warum wir das tun sollten, und dazu gehört, Fehler frühzeitig zu erkennen, um die Lesbarkeit des Codes zu verbessern und Codeänderungen auch viel sicherer zu machen , Leute Das ist also nur ein kleiner theoretischer Überblick in Bezug auf Unit-Tests, Unit-Tests Und jetzt zu den praktischen Laborpraktika , die demnächst zur Sprache kommen werden, werden wir uns eingehender damit befassen wie wir das tatsächlich anwenden können 101. Standard-Unitentests durchführen – [Lab]: Hallo zusammen und willkommen zur nächsten praktischen Laborübung, die sich auf Unit-Tests konzentrieren wird. Nun, das Erste, was wir tun werden, bevor wir zu tief in Unit-Tests eintauchen, ist, dass wir weitermachen und einen sehr standardisierten Komponententest erstellen einen sehr standardisierten Komponententest nur um zu sehen, wie der Prozess funktioniert, richtig. Ordnung. Als Erstes möchten Sie das Unit-Test-Modul importieren. Dabei handelt es sich um ein integriertes Modul, das zum Testen verwendet wird. Dann wollen wir die Funktion definieren, die wir testen möchten. Diese Funktion wird eine einfache Additionsfunktion sein , um zwei Zahlen zu addieren. Sie nimmt zwei Parameter auf und gibt A plus B zurück , sobald sie aufgerufen wurde. Diese Funktion addiert nun zwei Zahlen und gibt die Summe von A und B zurück Wir möchten diese Funktion testen. Dazu müssten wir nun eine Testklasse für Komponententests erstellen. Wir können Klasse, Test sagen. Messe. Jetzt muss jeder Schachfall vom Unittest-Schachfall erben vom Unittest-Schachfall Um das zu tun, müssten wir weitermachen und die Einheit Truhe, Punkt, Truhe durchgehen und die Einheit Truhe, Punkt, Truhe durchgehen . Das ist im Grunde eine eingebaute Pyson-Klasse, die wir verwenden würden Das wird im Wesentlichen vom Unit-Testfall übernommen Das haben wir jetzt umgesetzt. Als Nächstes müssen wir jetzt eine Testmethode definieren. In diesem Kurs müssen wir „ taub“ sagen und wir können „ Brust“ sagen, Unterstrich Nun, etwas, das Sie hier bei Ihren Testnachrichten beachten müssen hier bei Ihren Testnachrichten Unterstrich muss immer der erste Teil der Deklaration sein der erste Teil der Deklaration hier ist Ihre Funktion zu jeder Zeit Was Sie danach anziehen, es liegt wirklich an Ihnen, was Sie tun möchten Wir werden durch uns selbst gehen. Nun, das wird eine Testmethode sein, die überprüft, ob die Add-Funktion korrekt funktioniert und dass die Add-Funktion korrekt der Funktionsname, wie ich bereits erwähnt habe, mit Brust und Unterstrich beginnen muss, damit unser Komponententest sie als Truhe erkennt Das ist der Grund, warum wir es so hinzufügen müssen. Wir haben hier wieder self , weil das die Instanz unserer Testfallklasse darstellt und Zugriff auf alle Methoden gewährt , die von der Testklasse bereitgestellt werden , die wir hier erben Als Nächstes wollen wir jetzt weitermachen und unsere Methode hier festlegen, jetzt weitermachen indem wir self dot sagen, und wir werden eine spezielle Methode verwenden als assert equal bekannt ist, und wir werden die Funktion, die add heißen wird, durchgehen und wir werden die Funktion, die add heißen wird, durchgehen, dass wir hier zwei und drei als Beispiel durchspielen werden, und dann wollen wir fünf haben. Was wir hier in Klammern setzen werden, ist das , was wir tatsächlich erwarten wollen, und dann wird draußen das tatsächliche Ergebnis sein. Okay. Die Self-Assert-Equal-Methode überprüft also Self-Assert-Equal-Methode überprüft erwartete und das tatsächliche Ergebnis , um zu überprüfen, ob die Werte gleich sind. In diesem Fall haben wir bei dem, was erwartet wird , zum Beispiel zwei und drei, und zwei plus drei ergibt fünf, und der tatsächliche Wert wird fünf sein. So sollte es sein. Okay. Nun, wenn bei zwei und drei fünf zurückkommt, dann ist die Truhe vorbei. Wenn sie etwas anderes zurückgibt, dann wird die Truhe versagen. Okay. In Ordnung. Also lass uns weitermachen und weitermachen. Also haben wir dieses Setup. Das nächste, was wir tun müssen ist hier auf der linken Seite, wir wollen weitermachen und Schach spielen. Dazu müssen wir also sicherstellen, dass das Skript nur ausgeführt wird, wenn wir es direkt ausgeführt haben. Um das zu tun, werden wir sagen, dass ich den Namen doppelt unterstreiche. Die Punktzahl ist gleich, mit doppeltem Unterstrich Was wir hier tun, ist zu überprüfen überprüfen, , ob da diese Zeile war, wir werden im Wesentlichen ob wir dieses Pierson-Skript verwenden, und es ist kein Modul oder irgendwas, das wir importieren, irgendetwas Ähnliches, und es wird als eine spezielle Bedingung angesehen, die und es wird als eine spezielle Bedingung angesehen wir normalerweise in Pyson verwenden Und das nutzen wir auch bei der Verarbeitung und beim Threading wenn wir es auch mit Multiprocessing und Threading zu tun Multiprocessing und Threading Es wird sicherstellen, dass der Unit-Test Main nur ausgeführt wird, wenn das Skript direkt ausgeführt wird, wie ich bereits erwähnt habe, und deshalb müssen wir das tun Danach können wir den Unit-Test definieren, und wir müssen ihn hier als Main bezeichnen, und das wird eine eingebaute Funktion sein , die wir verwenden müssen, und die wird alle Testmethoden finden , die wir definiert haben. Es wird sie nacheinander ausführen und speziell nach der Testnachricht suchen , die mit Brust und Unterstrich beginnen Dann wird gemeldet, welcher Test bestanden wurde und welcher fehlgeschlagen ist Diese Hauptnachricht, die wir dem Komponententest hinzufügen, ist nur eine einfache Methode des Unit-Test-Moduls, das wir hier haben und das den Test-Runner startet. Das ist also im Wesentlichen das , was hier vor sich geht. Also können wir einfach rauszoomen, damit wir den vollständigen Code sehen und diese Datei speichern können . Lass uns weitermachen und es ausführen. Hier können wir sehen, dass wir Punkt und Linien haben und einen Test gemacht haben, und ich werde das nach oben verschieben und es heißt: Okay, also lasst uns weitermachen und debuggen, wie das tatsächlich funktioniert Was wir hier haben ist ein Punkt und der Punkt bedeutet, dass die Truhe bestanden wurde Hier wurde ein Test ausgeführt, was bedeutet, dass ein Testfall ausgeführt wurde. Also haben wir diese einfache Botschaft hier mathematisch getestet . Dann bedeutet Okay hier, dass alle Behauptungen erfolgreich waren. Wir haben hier zum Beispiel eine Behauptung, und sie beweist, dass sie ein Erfolg war Ordnung, das ist also In Ordnung, das ist also die einfachste Art , wie Sie sich absichern und Ihre Tests in Python ausführen können. Also werden wir noch ein paar Beispiele machen. Lassen Sie uns also weitermachen und genau das tun. Wir müssen sicherstellen, dass wir das Unit-Test-Modul verwenden, also lassen Sie uns weitermachen. In Ordnung. Also, was wir jetzt tun werden, ist, eine Funktion zu testen, um zu überprüfen, ob eine Zahl gerade ist. Lass uns weitermachen und das tun. Ich würde sagen, D ist ein gerader Unterstrich. Wir werden den Zahlenparameter übergeben und wollen true zurückgeben, wenn die Zahl gerade ist, andernfalls falsch Wir sagen, Zahl zurückgeben, und im Modul Zwei doppelt gleich Null Gerade Zahlen haben keinen Rest , wenn sie durch zwei geteilt werden Das ist im Wesentlichen das, was hier vor sich geht, um nach einer geraden Zahl zu suchen. Lass uns unsere Schachfälle machen. Auch hier müssen wir eine Klasse definieren und wir werden diesen Test gerade Zahlen nennen. Wir müssen den Unit-Test-Punkt-Test K bestehen, wir müssen diese Klasse vom Modul aus bestehen. Das wird eine Testfallklasse erstellen. Dann müssen wir unsere Schachfälle definieren. Hier sage ich Taub, Brust, Unterstrich gerade, Unterstrich Zahl, und hier sagen wir Selbst und hier sagen wir Und dann müssen wir unsere Behauptungen hinzufügen. Ich sage self jot assert true, und hier gehen wir unsere Funktion durch, die aus einem Unterstrich besteht, und sagen zum Beispiel vier Dann wollen wir eine ungerade Zahl testen , um zu sehen, ob sie fehlschlägt, also sollte sie fehlschlagen Du kannst De sagen, Test unterstreicht ungerade Zahl, und dann gehen wir hier durch selbst Und wir sagen Self-Punkt-Suche. Stimmt, und wir werden den Unterstrich auch die Funktionen und fünf durchgehen Unterstrich auch die Funktionen und fünf durchgehen Dann sagen wir, dass der Test Null unterstreicht. Mit Self können wir Self Dot Search sagen. Stimmt. Und dann wollen wir die Funktion überprüfen, wenn wir Null überschreiten. Was wir dann gemäß dem von uns definierten Klassier tun , ist, dass wir den Test ausführen wollen, wenn das Skript ausgeführt wird, sodass wir sagen können, dass ich den Namen doppelt unterstreiche, doppelter Unterstrich, gleich Also verwenden wir dieses spezielle Skript. Wir können dann den Komponententest ausführen. Punkt main, und das wird in unserer Klasse alles ausführen, was den Brustanfang als Unterstrich an die Nachricht angehängt hat angehängt in unserer Klasse alles ausführen, was den Brustanfang als Unterstrich an die Nachricht Wie wir hier sehen können, erhalten wir, wenn wir vier übergeben, einen Sat-Pass indem wir fünf hinzufügen, was seltsam ist, wir bekommen eine fehlgeschlagene Truhe und wenn wir dann Null eingeben, was dann gerade sein wird, bekommen wir auch einen Pass Wir haben hier alles an seinem Platz. Lass uns weitermachen und unseren Code ausführen. In Ordnung, wir bekommen also Abwechslung. Lassen Sie uns nun die Ausgabe analysieren. Also bekommen wir hier Punkt F Punkt. Also wird F auf einen fehlgeschlagenen Test hinweisen. Okay. Und das bedeutet, dass die erste Truhe bestanden wurde, die zweite Prüfung mit einem Fehlschlag und die dritte Truhe mit einem Bestehen. So können Sie es also analysieren. Und wir können hier sehen, was der Fehler war, und eine ungerade Zahl testen. Wir können hier sehen, dass es fehlgeschlagen ist, weil wir hier fünf durchgemacht haben. Was Sie hier sehen können, wird fehlschlagen, denn wenn wir fünf überschreiten und prüfen, ob es sich um eine gerade Zahl handelt, wird es im Grunde nicht richtig laufen und einen Trace-Back-Fehler ausgeben, wie wir hier sehen können, können wir sehen, dass der Sitzungsfehler false nicht wahr ist. Wir haben drei Tests durchgeführt. Wir hatten einen Fehler, und das war der zweite. Sie können sehen, dass es hier sehr nett ist. Es gibt aus, dass wir hier versagt haben, indem wir F eingegeben haben, aber es zeigt auch anhand der Position an, welche. Punkt ist eins, F ist zweiter und dritter ist bestanden. Leute. Auf diese Weise können wir unsere Testfälle auch so nutzen, dass wir uns absichern und prüfen können , ob unsere Tests bestanden oder nicht bestanden haben. So können wir die grundlegenden Unit-Tests in Python implementieren . Sie können dies auf Ihre Funktionen anwenden, wenn Sie beispielsweise Ihren Code auschecken und sehen möchten, ob alles funktioniert und ob er wie beabsichtigt funktioniert. In diesem speziellen Anwendungsfall, wenn Sie beispielsweise die Funktionalität so einstellen bei etwas Gleichem testet, ist es sehr hilfreich , hier Testfälle hinzuzufügen , wie wir es hier tun, um zu beweisen, dass sie das tut, was sie tun sollte. Hier kommt der Wert von Unit-Tests ins Spiel. Richtig, also können wir weitermachen und Thatch schließen und da haben wir den Unit-Test 102. Virtuelle Umgebungen: Hallo zusammen. Willkommen zur nächsten Lektion, die sich auf virtuelle Umgebungen konzentrieren wird . Lassen Sie uns einen Blick darauf werfen. Richtig, eine virtuelle Umgebung, Sie fragen sich wahrscheinlich, was eine virtuelle Umgebung ist. Einfach ausgedrückt ist eine virtuelle Umgebung ein isolierter Python-Workspace oder eine Python-Umgebung, Sie Ihre Pakete oder Abhängigkeiten für jedes Projekt separat installieren und verwalten können . Dies stellt nun sicher, dass Ihre verschiedenen Projekte nicht paketweise gegenseitig stören oder Konflikte verursachen. Das ist alles, was ich zu virtuellen Umgebungen erwähnen möchte. Es ist ein ziemlich einfacher Prozess, also werden wir uns in den praktischen Laborübungen eingehender damit befassen, also bleiben Sie dran. 103. Erstellen einer virtuellen Umgebung – [Lab]: Hallo zusammen und willkommen zur nächsten praktischen Laborübung, die sich auf die Arbeit mit virtuellen Umgebungen konzentrieren wird . Nun, die virtuelle Umgebung ist sehr hilfreich, weil Sie natürlich bewährte Methoden erlernen, indem Sie all Ihre Pakete in einer virtuellen Umgebung anstatt sie global auf Ihrem System zu installieren Das hilft wirklich sicherzustellen, dass jedes Ihrer Projekte eine eigene virtuelle Umgebung mit eigenen Paketen und Abhängigkeiten Es hilft einfach, die Dinge reibungslos , genau und funktionsfähig zu halten. Ich werde Ihnen zeigen, wie Sie Ihre virtuelle Umgebung erstellen, wie Sie sie aktivieren und auch, wie Sie sie deaktivieren können. Ich werde es Ihnen sowohl für Windows als auch für MCO Linux zeigen. Ich würde empfehlen, dass Sie mir zuerst zuschauen , bevor Sie mir direkt folgen, da ich Ihnen zeigen werde, wie Sie es für beide Geräte einrichten können . Lass uns anfangen. Nun, das Erste, was ich erwähnen möchte, ist, dass Sie jetzt wechseln müssen, um ein PysonFLE auszuführen Sie können auf den Dropdown-Pfeil klicken, sagen Sie PysonFL ausführen und Sie können dieses Protokoll einfach Und das Erste, was wir tun wollen, ist das Konzept von Paketen weltweit auf unserem System zu verstehen Konzept von Paketen weltweit auf unserem System zu Wenn wir PIP List eingeben , werden alle Pakete aufgelistet, die wir über PIP installiert haben Zum Beispiel, wenn wir loama oder PWGen oder Emoji oder alle Pakete installiert haben, die in der entsprechenden Paketlektion installiert wurden . Das alles wird global auf unserem System erscheinen , wenn wir PIP list eingeben Sie sehen eine Liste aller Pakete, die Sie installiert haben Hier sehe ich zum Beispiel Colorama, Emoji, ich kann Num Pi sehen, ich kann PEP sehen, ich kann P bei WGN sehen, das alles wurde global in unserem System installiert Nun, PEP selbst muss natürlich global installiert werden, aber alles andere, Sie können sehen, dass aber alles andere, Sie können sehen, es überall ist. Wir wollen, dass es nur in einer virtuellen Umgebung installiert wird , nicht global, wie wir es hier sehen. Zu diesem Zweck können wir eine virtuelle Umgebung erstellen, um dieses Problem zu lösen. Richtig. Also nochmal, wie ich schon sagte, schau einfach zu, was ich mache, bevor du es tust. Ich werde zuerst den Windows-Weg zeigen, und um eine virtuelle Umgebung für Windows zu erstellen, würden Sie Ihr Terminal, Python, VNV eingeben Das heißt, wir wollen eine virtuelle Umgebung für ENV erstellen eine virtuelle Umgebung für ENV Der Name Ihrer virtuellen Umgebung, Sie können ihr jetzt einen beliebigen Namen geben, aber ich werde sie auch VENV nennen und Sie können die Eingabetaste drücken, und das wird Ihre virtuelle Umgebung für Sie erstellen Ihre virtuelle Umgebung für Sie Sie müssen nur etwas Geduld haben und sobald es erstellt wurde, sollte es in einer neuen Zeile eingerückt Warten wir einfach auf diesen Prozess. Danach zeige ich Ihnen den Befehl zur Installation auf macOS oder Linux. Lass uns einfach geduldig sein. In Ordnung, so gut gemacht Wir können also sehen, dass das ein Erfolg war und wir auf einer neuen Linie erfunden haben Das bedeutet also, dass unsere virtuelle Umgebung geschaffen wurde. Was Sie jetzt auch tun können, ist in Ihrem Verzeichnis im Explorer nachzuschauen und Sie können sehen, dass wir jetzt diesen Ordner für virtuelle Umgebungen hier in meinem Projekt haben , sodass Sie sehen können, dass er sich hier befindet. Und ab sofort werden alle unsere Pakete, sobald wir sie aktiviert haben, unsere virtuelle Umgebung hier gespeichert. Und das wird sich auch zeigen, selbst wenn Sie macOS verwenden. Damit MacOWS eine virtuelle Umgebung erstellen kann, müssen Sie PySon Three M, VNV VENV genau so eingeben , VNV VENV genau so Sie möchten nur PysON drei hinzufügen. Das ist der Unterschied bei Einrichtung auf einem Macaws-Gerät. Sie können weitermachen und dies tun, wenn Sie ein MacOMS verwenden. Richtig. Lass uns das klären. Jetzt wollen wir unsere virtuelle Umgebung aktivieren. Unter Windows würden Sie in der zweiten Option auf den Namen Ihrer virtuellen Umgebung verweisen der zweiten Option auf den Namen Ihrer virtuellen . Ich hatte VE NV, dann können wir Backslash, Skripte, Backslash aktivieren sagen und das aktiviert Sie können jetzt auf der linken Seite den Namen, den Sie Ihrer virtuellen Umgebung gegeben haben, in Klammern sehen und wir können sehen, dass Ihrer virtuellen Umgebung gegeben haben, in und wir können sehen er in unserem Fall schön grün ist Sie sollten Ihre Programme also immer jetzt ausführen. Wenn Sie Ihre virtuelle Umgebung aktiviert haben, können Sie Pip install ausführen, oder Sie können weitermachen und Ihre PysonFLE ausführen Sagen wir Python Main Dot Pie In diesem Fall sollten Sie dies immer in Ihrer virtuellen Umgebung tun . Okay, wenn Sie es auf einem macOS-Gerät aktivieren möchten, sagen Sie einfach Source VE NV, Schrägstrich, vorwärts Das ist der Befehl, den du auf deinem macOS-Gerät aktivieren musst auf deinem macOS-Gerät Quell-VNV leitet PIN weiter, Schrägstrich aktivieren. Stimmt. Das haben wir jetzt eingerichtet und es ist geklärt. Wenn Sie Ihre virtuelle Umgebung deaktivieren möchten , um sie auszuschalten, wird es unter Windows und macOS genauso sein. Sie müssen also nur deaktivieren sagen, das ist für beide erledigt und Sie werden sehen, dass Sie sie verlassen und sie jetzt weg ist. Richtig. Ein weiterer Unterschied, den ich erwähnen möchte, ist, wenn wir unsere virtuelle Umgebung aktivieren, also ist sie aktiviert. Nehmen wir an, ich sage jetzt PIP-Liste, Sie werden in der Umgebung Ihrer virtuellen Umgebung sehen , dass wir nur PIP haben, was natürlich das allgemeine Paket ist, das sich in Ihrer virtuellen Umgebung befindet, aber wir haben nicht die anderen Pakete , die Sie global sehen, wie ich bereits gezeigt habe, und das liegt daran, dass es nicht in der virtuelle Umgebung diesem Grund und wie ich bereits erwähnt habe, muss alles in einer virtuellen Umgebung für Ihr Projekt getrennt werden einer virtuellen Umgebung für Ihr Projekt und nicht global auf Ihrem Computer. Sie können hier also den Unterschied sehen. Okay. Wir können jetzt klar sagen. Ordnung, also los geht's. So sollten Sie Ihre Pakete und Bibliotheken immer installieren. Wenn ich zum Beispiel das Colama-Paket verwenden möchte , kann ich Match kopieren Also, Pep, installiere Clarama. Alles klar. Sie können sehen, dass es installiert wird, und da haben wir es. Lassen Sie uns also weitermachen und überprüfen , wo es installiert ist. Wenn ich also Pip LLS sage, können wir jetzt sehen, dass wir es in unserer virtuellen Umgebung installiert haben es in unserer virtuellen Umgebung installiert Also hier ist Clarama. Perfekt. Jetzt können wir das klären. Und jetzt wollen wir weitermachen und uns die Colama-Module schnappen Ich sage von Color Ma. Ich möchte die vier Klassen importieren. Dann sage ich Drucken und ich sage nur, dass ich nach den vier Farben suchen möchte, wobei vier Punkte und Rot das Attribut Ich möchte, dass dies auf Rot eingestellt ist. Ich werde sagen, das sind rote Schecks. Ich werde mein Output sein und meine Terminalfarbe wird auch folgen. Dann kann ich hier in der virtuellen Umgebung einfach Pison Main Dot Pi sagen Sie können sehen, dass das einwandfrei funktioniert. In Ordnung. Da haben wir es. Und wir können klar sagen. Wir können das einfach wiederholen und weiß sagen. Das gibt uns einen Standard. Und da haben wir es. In Ordnung, so sollten wir also weitermachen und PySon nutzen, weitermachen und PySon nutzen indem wir bei der Installation all unserer Pakete eine virtuelle Umgebung wir bei der Installation all unserer Pakete Bitte beachten Sie also, dass ich noch einmal darauf hinweisen werde, dass es bei der Verwendung von MacAWS einen kleinen Unterschied in der Art und Weise gibt, wie Sie Ihre virtuelle Umgebung aktivieren und erstellen, aber alles andere wird genauso funktionieren, wie es sollte, insbesondere bei der Deaktivierung der virtuellen Umgebung Ordnung, Leute. So können wir also mit unseren virtuellen Umgebungen arbeiten. Und wenn Sie fertig sind, können Sie es einfach deaktivieren. Denken Sie jedoch daran, dass es sich immer bewährt hat, es zu aktivieren und es dann von da an zu verwenden. Ordnung, Leute. Also das ist es Das ist alles für virtuelle Umgebungen. 104. Dein eigenes Projekt erstellen: Hallo, alle zusammen. Willkommen zur nächsten Messon , die sich auf die Erstellung unserer eigenen Projekte konzentrieren wird . Lass uns einen Blick darauf werfen Viel. Die Zeit ist gekommen, und jetzt, wo Sie all diese neuen Fähigkeiten erworben haben, ist es an der Zeit, all das zu nutzen und Ihr eigenes Projekt zu erstellen. Als Nächstes müssen Sie zum Abschnitt Projekt und Ressourcen dieses Kurses gehen, um Abschnitt Projekt und Ressourcen weitere Informationen zu erhalten. Dort werde ich einige Ideen, die Sie für Ihr Projekt erstellen können, detailliert beschreiben und skizzieren und Ihnen auch einige Vorschläge geben wie Sie den Projekterstellungsprozess durchführen können. Oh, das ist alles, was ich vorerst sagen werde, und viel Glück. Und ich freue mich darauf, Ihre Projekte zu sehen. 105. Vielen Dank!: Hallo, alle zusammen. Und willkommen zur letzten Lektion dieses Kurses, in der ich nur dafür danken möchte, dass Sie sich entschieden haben, diesen Kurs abzuschließen. Es war mir eine Freude, Sie zu unterrichten, und ich hoffe, dass Sie dadurch wertvolles Wissen gewonnen haben . Also vielen Dank. Wenn Sie etwas Zeit haben, würde ich mich sehr freuen, wenn Sie erwägen würden, eine Bewertung abzugeben. Da es immer positiv ist, meine Kurse zu verbessern und mein Bestes wenn Sie etwas Zeit haben, würde ich mich sehr darüber freuen. Wenn nicht, ist das völlig in Ordnung, solange Sie eine großartige Lernerfahrung hatten, und das war's für mich und viel Glück auf Ihrer Entwicklungsreise, und ich wünsche Ihnen alles Gute. Auf Wiedersehen und nochmals vielen Dank.