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.