Python, visuell erklärt | Visually Explained | Skillshare
Suchen

Playback-Geschwindigkeit


1.0x


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

Schau dir diesen Kurs und Tausende anderer Kurse an

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

Schau dir diesen Kurs und Tausende anderer Kurse an

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

Einheiten dieses Kurses

    • 1.

      Einführung in den Kurs

      3:53

    • 2.

      Erste Schritte mit Colab

      3:21

    • 3.

      Numerische Operationen

      2:18

    • 4.

      Numerische Operationen – Geführte Beispiele

      5:31

    • 5.

      Einführung in Datentypen

      2:25

    • 6.

      Numerische Operationen und Datentypen – Übungslösungen

      4:13

    • 7.

      Saiteninstrumente

      4:01

    • 8.

      Strings – Geführte Beispiele

      7:08

    • 9.

      Strings – Übungslösungen

      2:34

    • 10.

      Variablen

      7:17

    • 11.

      Variablen – Geführte Beispiele

      7:29

    • 12.

      Variablen – Übungslösungen

      3:40

    • 13.

      Eingebaute Funktionen

      2:01

    • 14.

      Eingebaute Funktionen – Geführte Beispiele

      3:27

    • 15.

      Eingebaute Funktionen – Übungslösungen

      2:04

    • 16.

      Eingebaute Typmethoden

      5:37

    • 17.

      Integrierte Typmethoden – Geführte Beispiele

      2:58

    • 18.

      Eingebaute Typmethoden – Übungslösungen

      3:02

    • 19.

      Booleane und Vergleichsoperatoren

      3:59

    • 20.

      Booleane und Vergleichsoperatoren – Geführte Beispiele

      4:45

    • 21.

      Booleane und Vergleichsoperatoren – Übungslösungen

      5:03

    • 22.

      Konditional

      6:14

    • 23.

      Konditionen – Geführte Beispiele

      5:12

    • 24.

      Konditionen – Übungslösungen

      2:43

    • 25.

      Listen

      2:38

    • 26.

      Listen – geführte Beispiele

      4:20

    • 27.

      Listen – Übungslösungen

      4:50

    • 28.

      Tupel

      3:21

    • 29.

      Sets

      4:13

    • 30.

      Sammlungen – Geführte Beispiele

      5:59

    • 31.

      Sammlungen – Übungslösungen

      3:51

    • 32.

      For Loops

      8:59

    • 33.

      For Loops – Geführte Beispiele

      7:31

    • 34.

      For Loops – Übungslösungen

      10:13

    • 35.

      Wörterbücher

      5:40

    • 36.

      Wörterbücher – geführte Beispiele

      10:05

    • 37.

      Wörterbücher – Übungslösungen

      8:23

    • 38.

      Benutzereingaben

      4:09

    • 39.

      Fehlerbehandlung

      6:15

    • 40.

      Benutzereingaben und Fehlerbehandlung – Geführte Beispiele

      4:00

    • 41.

      Benutzereingaben und Fehlerbehandlung – Übungslösungen

      8:27

    • 42.

      While-Loops

      8:18

    • 43.

      While Loops – Geführte Beispiele

      5:19

    • 44.

      While Loops – Übungslösungen

      7:00

    • 45.

      Benutzerdefinierte Funktionen

      9:41

    • 46.

      Benutzerdefinierte Funktionen – Geführte Beispiele

      9:07

    • 47.

      Benutzerdefinierte Funktionen – Übungslösungen

      9:00

    • 48.

      Namespace und Umfang

      7:46

    • 49.

      Namespace und Umfang – Geführte Beispiele

      11:49

    • 50.

      Namespace und Umfang – Übungslösungen

      5:39

    • 51.

      Module und Bibliotheken

      10:34

    • 52.

      Module und Bibliotheken – Geführte Beispiele

      7:59

    • 53.

      Python Standardbibliothek – Übungslösungen

      6:15

    • 54.

      Matplotlib – Exericse-Lösung

      3:11

    • 55.

      Pandas – Übungslösung

      4:17

    • 56.

      Sprachübersetzer-App – Projekteinführung

      3:40

    • 57.

      Sprachübersetzer-App – Projektlösung

      13:18

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

Von der Community generiert

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

148

Teilnehmer:innen

--

Projekte

Über diesen Kurs

Kursübersicht

Bist du bereit, Python schnell und einfach zu beherrschen – ohne Verwirrung oder Frustration? Python, visuell erklärt ist der ultimative anfängerfreundliche Kurs, der die Programmiergrundlagen durch klare, prägnante Erklärungen und praktische Beispiele aus der Praxis vereinfacht. Egal, ob du noch keine Erfahrung mit dem Programmieren hast oder deine Fähigkeiten erweitern möchtest, in diesem Kurs lernst du, wie du wie ein Cdierer denkst und Probleme mit Python, einer der vielseitigsten und gefragtesten Programmiersprachen heute, löst.

KURSRESSOURCEN

Alle Notizbücher, die in Vorlesungsvideos, Übungsnotizbüchern und Übungslösungsnotizbüchern gezeigt werden, finden Sie auf unserer Kurs-GitHub-Seite: https://github.com/Visually-Explained/Python-Visually-Explained/Python-Visually-Explained.

Lernziele

Durch die Teilnahme an diesem Kurs sammeln Sie praktische Erfahrungen und Grundkenntnisse in den folgenden Themen:

  • Erste Schritte mit Google Colab: Dein erster Schritt in Python leicht gemacht.
  • Numerische Operationen: Verstehe, wie Zahlen in der Programmierung funktionieren.
  • Datentypen und Variablen: Lerne, wie du Daten wie ein Profi speichern und manipulieren kannst.
  • Strings und Textmanipulation: Behandle Text und Zeichen selbstbewusst
  • Eingebaute Funktionen und Methoden: Vereinfache deinen Code mit den integrierten Tools von Python.
  • Booleane und Vergleiche: Lerne die Logik hinter der Entscheidungsfindung in der Programmierung
  • Konditionen und Loops: Schreibe effiziente Programme, die Entscheidungen treffen und Aufgaben wiederholen können.
  • Datenstrukturen (Listen, Tupel, Sätze und Wörterbücher): Meistere die nützlichsten Datenstrukturen von Python.
  • Benutzereingaben und Fehlerbehandlung: Interaktive Programme erstellen und Fehler wie ein Profi behandeln.
  • Funktionen, Namespaces und Umfang: Wiederverwendbaren Code erstellen – vertrauensvoll
  • Module und Bibliotheken: Das volle Potenzial von Python erschließen, indem du externe Bibliotheken verwendest.
  • Visualisierung mit Matplotlib und Datenanalyse mit Pandas: Mit echten Daten arbeiten und sie zum Leben erwecken.

Warum du diesen Kurs besuchen solltest

  • Klare und ansprechende Erklärungen: Die Themen sind in mundgerechte Lektionen unterteilt, sodass du dich nie überfordert fühlst.
  • Praktische Übungen: Wende das Gelernte durch praktische, reale Coding-Herausforderungen an.
  • Anfängerfreundlich: Es sind keine Vorkenntnisse in Programmierung erforderlich – perfekt für komplette Anfänger.
  • Flexibles Lernen: Im eigenen Tempo lernen können, wann und wo immer es Ihnen passt.

Am Ende dieses Kurses wirst du selbstbewusst Python-Code schreiben, praktische Probleme lösen, Daten visualisieren und grundlegende Datenanalysen durchführen. Egal, ob Sie eine neue Karriere starten, alltägliche Aufgaben automatisieren oder eine wertvolle Fähigkeit lernen möchten, dieser Kurs wird Sie für den Erfolg vorbereiten.

Für wen dieser Kurs ist

Dieser Kurs ist perfekt für:

  • Vollständige Anfänger, die keine Vorkenntnisse mit Programmieren oder Python haben.
  • Profis oder Studenten, die grundlegende Programmierfähigkeiten aufbauen möchten.
  • Jeder, der daran interessiert ist, Python für Automatisierung, Datenanalyse oder Karriereentwicklung zu lernen.
    Es sind keine vorherigen Programmierkenntnisse erforderlich, um an diesem Kurs teilzunehmen.

Materialien und Ressourcen

Um an diesem Kurs teilzunehmen, benötigen Sie:

  • Ein Computer mit Internetzugang.
  • Ein Google-Konto, um Google Colab (kostenlose Online-Coding-Umgebung) zu verwenden.
  • Es ist keine zusätzliche Software oder ein Setup erforderlich.

Im Kurs bereitgestellte Ressourcen:

  • Beispiel-Code-Snippets.
  • Schritt-für-Schritt-Übungen.
  • Vorlagen und Starterdateien, um zusammen mit den Lektionen zu üben.

Triff deine:n Kursleiter:in

Teacher Profile Image

Visually Explained

Visual Learning for Complex Topics

Kursleiter:in

At Visually Explained, we believe that learning complex topics becomes effortless when they're made easy to see and simple to understand. Through clear visual explanations--using illustrations, diagrams, and intuitive examples--we break down challenging concepts into something tangible and approachable. Our courses are designed for visual learners who thrive on seeing how things work, replacing dense text and jargon with highly visual content that simplifies even the toughest topics. With practical exercises to reinforce real-world application, we ensure learners not only grasp concepts but can apply them with confidence. Visually Explained is something we--Sebastien and Ally--created together, and below you'll get to know us and the passion we bring to every course!

Vollständiges Profil ansehen

Level: Beginner

Kursbewertung

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

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

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

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

Lerne von überall aus

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

Transkripte

1. Curse Einführung: Willkommen bei PyTon Visually Explain, einem Kurs, der Ihnen das Programmieren mit PyTon beibringen soll In diesem Kurs verwenden wir visuelle Darstellungen, um Konzepte zu veranschaulichen und Programmierung zugänglich zu machen In diesem Kurs lernen Sie die Grundlagen der Programmierung kennen und verwenden diese Konzepte, um Probleme aus der realen Welt zu lösen Um Sie auf Ihrer PTN-Reise zu unterstützen, stehen Ihnen zwei erfahrene Mentoren zur Seite Mein Name ist Sebastian. Ich bin Finanzprofessor an der University of Wisconsin Madison. Ich verwende PyTon seit vielen Jahren ausgiebig, sowohl für meine akademische Forschung als auch im Unterricht Und ich bin Ali, der Lehrassistent für diesen Kurs. Ich habe ein Doppelstudium in Informatik und Finanzen, ebenfalls von der University of Wisconsin Madison. Egal, ob Sie ein absoluter Anfänger sind oder Erfahrung mit dem Programmieren in anderen Sprachen haben , dieser Kurs vermittelt Ihnen wertvolle Fähigkeiten. Anfänger haben die Möglichkeit, die Grundlagen bequem zu erlernen , da wir keine Programmierkenntnisse voraussetzen. den ersten Vorlesungen dieses Kurses werden grundlegende Konzepte wie Variablenzuweisungen vorgestellt . Auf diesen Grundlagen bauen wir dann auf, um komplexere Themen zu untersuchen, z. B. für Loops. Schließlich zeigen wir Ihnen, wie Sie neue Funktionen nutzen können, indem Sie Python-Bibliotheken nutzen . Sie bieten Ihnen endlose Tools zur Lösung von Problemen, von der Erstellung von Diagrammen bis hin zur Sprachübersetzung und vielem mehr Diese modulare Struktur eignet sich auch hervorragend für erfahrene Programmierer, die sich für bestimmte Aspekte der Python-Sprache interessieren bestimmte Aspekte der Python-Sprache Sie können direkt zu interessanten Themen springen und sich mit der Python-Syntax vertraut machen. Wir haben diesen Kurs so konzipiert , dass er klar und präzise ist. Wir respektieren Ihre Zeit als Lernender und möchten Ihnen helfen, Konzepte effizient zu erlernen Für jedes Konzept in diesem Kurs gibt es ein eigenes Modul mit mehreren Videos Jedes Modul beginnt mit einem oder zwei Einführungsvideos, Ihnen anhand von visuellen Erklärungen und Codebeispielen ein grundlegendes Verständnis des Konzepts anhand von visuellen Erklärungen und Codebeispielen Dann tauchen wir mit Videos, die fortgeschrittenere Anwendungsfälle untersuchen, tiefer Videos, die fortgeschrittenere Anwendungsfälle untersuchen, In diesen Videos begleitest du Jamie und Pike auf ihren Wanderabenteuern, bei denen sie auf Probleme stoßen, die wir in Python lösen Auf diese Weise können wir sehen, wie Konzepte, die wir gelernt haben, angewendet werden können Um Ihr Verständnis der Konzepte zu vertiefen, stellen wir Ihnen dann Übungshefte zur Verfügung , an denen Sie selbstständig arbeiten können Diese Übungen ermöglichen es Ihnen, jedes Thema zu meistern und häufig neue verwandte Ideen einzuführen Nach jeder Übungsmappe gibt es ein Video, in dem die Lösungen zu den Übungen diesen Videos wird jedes Problem Schritt für Schritt beschrieben und dabei anschauliche Bilder verwendet , um Ihr Lernen zu unterstützen Jedem Modul ist eine Datei auf unserer Github-Seite für den Kurs zugeordnet auf unserer Github-Seite für den Kurs Diese Datei enthält Links zu Notizbüchern, die wir in den Videos, Übungsnotizbüchern und zusätzlichen Lernressourcen verwenden . Schauen Sie sich die Ressourcen an und verfolgen Sie die Videos in den bereitgestellten Notizbüchern. Schließlich werden Sie am Ende des Kurses an einem Projekt arbeiten, bei dem Sie Ihre neuen Programmierkenntnisse anwenden , um eine Sprachübersetzer-Anwendung zu erstellen. Ich bin ein bisschen voreingenommen, aber es macht viel Spaß. Wir freuen uns, Sie auf dieser Reise zu haben. Egal, wo Sie beginnen, dieser Kurs ist darauf ausgelegt Programmierkonzepte intuitiv, praktisch und unterhaltsam zu gestalten. Lass uns anfangen. 2. Erste Schritte mit Colab: In diesem Video stellen wir die in diesem Kurs verwendete Python-Codierungsumgebung vor. Es heißt Google Collaboratory oder Colab. Colab ist eine großartige Umgebung, um Programmieren zu lernen , da es kostenlos und cloudbasiert ist, was bedeutet, dass Sie von jedem Computer aus darauf zugreifen können , ohne Software installieren zu müssen Die Einrichtung von Colab ist sehr einfach. Sie benötigen lediglich ein Google-Konto. , wenn Sie Gmail Gute Nachrichten, wenn Sie Gmail, Google Drive oder Google Calendar verwenden. Sie haben bereits ein Konto. Wenn Sie dies nicht tun, können Sie kostenlos ein Konto erstellen, indem Sie zu Konten google.com mit dem Schrägstrich SINAP gehen zu Konten google.com mit dem Schrägstrich Sobald Sie sich angemeldet haben, navigieren Sie zu Ihrem Google Drive, wo Sie Ihr erstes Colab-Notizbuch erstellen können Ihr erstes Colab-Notizbuch erstellen können Um ein neues Notizbuch zu erstellen, klicken Sie auf die Schaltfläche Neu zu Ich gehen, wird Ihnen möglicherweise die Option Google Collaboratory angezeigt oder auch nicht Wenn Sie Colab nicht als Option sehen, bedeutet das, dass wir es installieren müssen Klicken Sie auf Weitere Apps verbinden und suchen Sie nach Collaboratory. Klicken Sie dann auf Collaboratory und installieren Sie es. installiert wird, werden Ihnen einige Berechtigungsdialoge Bevor Colab Fantastisch. Lassen Sie uns nun ein Notizbuch erstellen und die grundlegenden Funktionen von Colab erkunden Jedes Notizbuch ist in Zellen unterteilt , in die wir Code oder anderen Text schreiben können Um eine neue Zelle zu erstellen, bewegen Sie den Mauszeiger über den oberen oder unteren Rand einer vorhandenen Zelle Hier sehen wir, dass es zwei Arten von Zellen gibt. Codezellen, wie in der bereits vorhandenen, schreiben wir unseren Python-Code. Textzellen sind für alles, was kein Code ist. Optional können wir Zellen mit Markdown formatieren, worauf wir in diesem Kurs nicht eingehen Wenn Sie mehr über Markdown erfahren möchten, finden Sie auf der GitHub-Seite einen hilfreichen Link für dieses Modul Zusätzlich können wir die Reihenfolge der Zellen mithilfe der Pfeile ändern und Zellen entfernen, indem wir auf das Papierkorbsymbol klicken Acht. Möglicherweise möchten Sie Notizbücher für Ihre eigenen Projekte von Grund auf neu erstellen, in diesem Kurs stellen wir Notizbücher für jedes Video zur Verfügung. Sie können über die Seite mit den Notizbuch-Links in diesem Modul auf jedes Notizbuch zugreifen . Über diesen Link gelangen Sie zu einer GitHub-Seite, auf der Sie für jedes Modul eine Datei mit Links zu Notizbüchern und anderen relevanten Informationen finden. Wenn Sie auf einen Notebook-Link klicken, werden Sie zu einer schreibgeschützten Kopie des Notebooks weitergeleitet. Um Ihre eigene Kopie zu erstellen, klicken Sie in der Werkzeugleiste auf die Schaltfläche Auf Laufwerk kopieren. Colab erstellt dann eine Kopie auf einer neuen Registerkarte Sie besitzen jetzt diese Kopie des Notizbuches und sie wird auf Ihrem Google Drive gespeichert Das bedeutet, dass Sie die Zellen und den Namen des Notizbuchs bearbeiten können . Um die Liste Ihrer Colab-Notizbücher anzuzeigen, klicken Sie auf das Logo in der oberen linken Ecke, um zu Google Drive zu gelangen Alternativ können Sie im Ordner Colab-Notizbücher auf die Kursnotizbücher zugreifen , die Sie auf Ihr Laufwerk kopieren , die Sie auf Ihr Laufwerk Großartig. Dies sind alle Funktionen von Colab, die wir für den Einstieg benötigen Laufe dieses Kurses werden wir uns eingehender mit den Funktionen von Clob befassen also keine Sorgen, wenn diese Oberfläche Moment etwas einschüchternd wirkt Wenn wir uns mit unserem ersten Thema befassen, werden wir lernen, wie man Code in einem Notizbuch schreibt und ausführt Und damit wollen wir eintauchen. 3. Numerische Operationen: Willkommen zum ersten Programmierkonzept dieses Kurses numerische Operatoren. In diesem Video werden wir sehen, wie man numerische Operatoren verwendet , um grundlegende mathematische Operationen in PyTon auszuführen grundlegende mathematische Operationen in PyTon Die in diesem Video behandelten Konzepte sind ziemlich einfach. ist gut so, da wir uns so vorsichtig mit der Google Colab-Umgebung vertraut machen können vorsichtig mit der Google Colab-Umgebung vertraut machen der Google Colab-Umgebung In Bton können numerische Operatoren wie Plus, Minus, Stern und Schrägstrich mathematische Operationen an Zahlen ausführen mathematische Operationen an Zahlen so wie Sie es in der Grundschule gelernt haben Wenn wir beispielsweise die Summe von zwei und drei berechnen möchten , können wir zwei plus drei in eine Codezelle schreiben Um den Ausdruck auszuwerten, müssen wir Python anweisen , den Code auszuführen In Google Colab erfolgt dies, indem Sie links neben der Codezelle auf die Schaltfläche Ausführen klicken oder die Tasten Strg plus Enter oder je nach Betriebssystem die Tasten Strg plus Enter oder Befehl plus Return Herzlichen Glückwunsch. Sie haben jetzt Ihre allererste Codezeile ausgeführt. Es überrascht nicht, dass PyTon meldet, dass der Wert von zwei plus drei fünf ist In ähnlicher Weise verwenden wir, wenn wir drei von zwei subtrahieren wollen, den Subtraktionsoperator minus, um zwei und drei zu multiplizieren, wir verwenden den Multiplikationsoperator Stern und um zwei durch drei zu teilen, wir In jedem Fall erhalten wir beim Ausführen der Codezellen die erwarteten Antworten. Großartig. Wir haben jetzt unsere ersten paar Zeilen Byton-Code ausgeführt. Das war einfach, nicht wahr? Im nächsten Video werden wir einige Anwendungsbeispiele für die Betreiber sehen, einige Anwendungsbeispiele für die wir in diesem Video behandelt und wir werden einige weitere Betreiber vorstellen. 4. Numerische Operationen führen Beispiele: Jamie freut sich auf ihre bevorstehende Wochenendwanderung. Aber bevor sie sich in die Wildnis wagt, muss sie entsprechend planen. Insbesondere muss sie festlegen, wie viele Meilen sie wandern wird, wie lange sie unterwegs sein wird, wie viel Wasser sie mitnehmen muss und so weiter. Bei Meilen, Zeit und Unzen Wasser dreht sich alles um Zahlen. Und da Matt nicht Jamies Stärke ist, wird sie Bike bitten, ein paar Berechnungen für sie durchzuführen Eines von Jamies Gesundheitszielen ist es, täglich mindestens 10.000 Schritte zu gehen mindestens 10.000 Schritte Dieses Ziel möchte sie während unserer Wanderung erreichen. Um unser Ziel zu erreichen, wie viele Meilen lang sollte unsere Wanderung sein bedenkt, dass unsere durchschnittliche Schrittlänge 2,5 Fuß beträgt Während Pike die Antwort berechnet, wollen wir sehen, ob wir das Problem mit Piton lösen können die Entfernung in Fuß zu bewältigen, die Jamie zurücklegen muss, müssen wir zunächst ihr Schrittziel 10.000 mit unserer Schrittlänge, 2,5 Fuß, multiplizieren 10.000 mit unserer Schrittlänge Wenn wir die Zelle ausführen, erhalten wir ein Ergebnis von 25.000 Fuß. Lassen Sie uns nun diese Menge in Meilen umrechnen. Wir tun dies, indem wir unser vorheriges Ergebnis durch 5.280, die Anzahl der Fuß pro Meile, teilen 5.280, die Anzahl der Fuß pro Meile die Zelle ausführen, erhalten wir 4,73 Meilen, genau Pike. Basierend auf diesen Informationen schlägt Pike vor, einen lokalen Pfad namens Achterbahn zu wandern einen lokalen Pfad namens Jamie wird jedoch gewarnt, dass dieser Weg einige herausfordernde Anstiege mit einem Höhenunterschied von insgesamt 500 Fuß bietet einige herausfordernde Anstiege mit einem Höhenunterschied von insgesamt 500 Fuß Aus Jamies Sicht macht das Wandern auf einem Pfad durch Höhenunterschiede jedoch macht das Wandern auf einem Pfad durch Höhenunterschiede exponentiell Da Jamie gerne alle Aspekte ihrer Abenteuer quantifiziert, bittet sie Pike, zu berechnen wie viele Einheiten Spaß sie beim Wandern auf der Achterbahnstrecke haben wird Ihr zufolge berechnet sich der Spaß an einer Wanderung aus dem Quadrat des Höhenunterschieds zuzüglich einer Grundgröße von 1.000 Einheiten Spaß, wenn man einfach nach draußen geht Höhenunterschieds zuzüglich einer Grundgröße von 1.000 Einheiten Spaß, wenn man einfach nach draußen Lassen Sie uns die Berechnung im Notizbuch durchführen. Um die Formel zu implementieren, müssen wir den Höhenunterschied quadrieren. In Python ist der Exponentenoperator der Doppelstern. Wir vervollständigen den Ausdruck, indem wir zusätzliche 1.000 Einheiten Spaß hinzufügen , wenn Sie einfach nur nach draußen gehen. Wenn wir die Zelle ausführen, erhalten wir 251.000 Einheiten Spaß Und Pike auch. Das ist alles gut, aber mit viel Spaß geht auch viel Verantwortung Jamie muss sicherstellen, dass sie während der Wanderung ausreichend Flüssigkeit zu sich nimmt Aus früheren Erfahrungen weiß sie, dass für eine so lange Wanderung 40 Unzen Wasser benötigt werden Um Wasser mitzunehmen, hat Jamie 512-Unzen-Flaschen dabei. Sie ist daran interessiert, die Anzahl der Flaschen herauszufinden , die gefüllt werden müssen, und falls zutreffend, möchte sie wissen, wie viel Volumen der letzten Flasche hinzugefügt werden sollte , um insgesamt 40 Unzen Wasser zu haben insgesamt 40 Unzen Wir können diese Menge natürlich mit dem regulären Divisionsoperator ermitteln Durch die Berechnung von 40/12 erhalten wir 3,33. Dies bedeutet, dass Jamie drei volle Flaschen und eine vierte Flasche benötigt , die zu einem Drittel seines Fassungsvermögens oder 4 Unzen gefüllt seines Fassungsvermögens oder 4 Unzen Diese Methode funktioniert, aber PyTon bietet zwei weitere Operatoren, die diese Berechnung etwas einfacher machen diese Berechnung etwas einfacher die Operatoren Floor Division und Der Floor-Divisionsoperator gibt zurück , wie oft der Divisor vorkommt. In diesem Fall geht 12 gleichmäßig in die Dividende ein, in diesem Fall 40. In unserem Beispiel ergibt der Ausdruck das Ergebnis Drei, was bedeutet, dass Jimmy drei volle Flaschen Wasser benötigt drei volle Flaschen Wasser Beachten Sie, dass der Operator für die Floor-Division den ganzzahligen Teil des Ergebnisses der regulären Division ergibt , wobei alle Bruchteile verworfen Fantastisch. Lassen Sie uns jetzt über den Modulo-Operator sprechen Der Modulo-Operator gibt den Rest oder die Reste nach der Stockwerksteilung zurück oder die Reste nach der Stockwerksteilung In unserem Beispiel beträgt der Rest nach der Geschossteilung vier . Und sieh dir das an. Pike stimmt unserer Einschätzung zu. Wir kennen jetzt alle arithmetischen Operatoren von PyTon. Im nächsten Video werden wir einige Übungen mit diesen numerischen Operationen sammeln einige Übungen mit diesen 5. Einführung in Datentypen: vorherigen Video haben wir mehrere Zahlen in unser Notizbuch geschrieben . Einige waren Zahlen und andere waren Dezimalzahlen. Die Python-Sprache unterscheidet formal zwischen diesen beiden Typen von numerischen Werten. In diesem Video werden wir diesen Unterschied untersuchen, während wir den Begriff des Datentyps vorstellen Ganze Zahlen, also jede positive oder negative Zahl ohne Bruchteil als Ganzzahlen bezeichnet Dezimalzahlen , also jede positive oder negative Zahl mit einer Bruchkomponente, werden ihrerseits , also jede positive oder negative Zahl mit als Gleitkommazahlen bezeichnet Lassen Sie uns bestätigen, dass Piton tatsächlich zwischen diesen beiden Arten von Zahlen unterscheidet Um das Vorhandensein dieser Unterscheidung zu überprüfen, werden wir den eingebauten Funktionstyp verwenden Wir werden in einem zukünftigen Video ausführlich auf integrierte Funktionen eingehen. Nehmen wir zunächst den Schreibtyp, gefolgt von einer Zahl in Klammern, als gegeben an und weisen PyTon an, auszugeben, ob es sich bei der Zahl um eine Ganzzahl oder eine Fließkommazahl handelt Wenn wir zum Beispiel die Zahl 13 in Klammern schreiben und die Zelle ausführen, gibt PyTon int aus, was bedeutet, dass der gibt PyTon int aus, was bedeutet Wert 13 In ähnlicher Weise erhalten wir Float, wenn wir die Zahl 3,14 15 in die Klammern schreiben 15 in die Klammern In PyTon ist die Unterscheidung zwischen Ganzzahlen und Es gibt Kontexte, in denen diese Unterscheidung wichtig ist, aber für die Anwendungen, die wir in diesem Kurs behandeln, wird sie nicht Ein wichtiges allgemeines Konzept , das man aus diesem Video mitnehmen kann, ist der Begriff des Datentyps. BTN kann verschiedene Datentypen repräsentieren, darunter Ganzzahlen und Fließkommazahlen, aber auch mehrere Im Laufe dieser Vorlesungen werden wir viele weitere Datentypen behandeln und ihre Verwendung untersuchen Aber bevor wir uns damit befassen , wollen wir ein paar Übungen zu Ganzzahlen und Gleitkommazahlen lösen ein paar Übungen , um etwas Übung zu gewinnen 6. Numerische Operationen und Datentypen Übungen: In dieser Arbeitsmappe haben Sie die Verwendung der numerischen Operatoren und der Typfunktion von Python geübt numerischen Operatoren und der Typfunktion von Python Lassen Sie uns die Lösungen durchgehen. Um Übung eins, Teil A, zu lösen , können wir den Multiplikationsoperator verwenden Multiplizieren Sie einfach die Anzahl der Brote mit dem Gewicht des Mehls pro Laib und dann mit den Kosten Die Gesamtkosten des Besitzers betragen 12,65 USD. Wir können die Art unserer Kosten auch mithilfe der Typfunktion überprüfen unserer Kosten auch mithilfe der Typfunktion Aufgrund der Dezimalstellen würden wir erwarten, dass 12,65$ über Wasser sind Und Python stimmt zu. In Übung zwei können wir die Gesamtkochzeit für die 200 Kekse ermitteln , indem Begriffe in Klammern gruppieren Da wir zwei Öfen mit einer Kapazität von 25 Keksen haben, können wir 25 mit zwei multiplizieren können wir 25 mit zwei multiplizieren, um die Gesamtkapazität für Kekse zu erhalten Dann teilen wir die 200 Kekse, die wir backen müssen, durch diesen Ausdruck gruppieren ihn mit Klammern um die richtige Reihenfolge der Operationen sicherzustellen Dies ergibt die Anzahl der Chargen, die wir im Ofen garen müssen Schließlich können wir diesen Ausdruck mit 15 Minuten multiplizieren , um die Gesamtzeit zu erhalten Auch hier verwenden wir Klammern, um die richtige Reihenfolge der Operationen sicherzustellen die Zelle ausführen, stellen wir fest, dass es 60 Minuten dauern wird , alle Kekse zu backen Wenn wir keine Klammern verwenden, erhalten wir 240, was falsch ist Auch hier können wir den Typ des R-Ergebnisses mit der Typ-Funktion überprüfen R-Ergebnisses mit der Typ-Funktion 60.0 ist ein Float, weil es eine Dezimalkomponente hat, obwohl die Dezimalkomponente Null ist Wenn wir zu Übung drei übergehen, können wir die Anzahl der vollen Chargen mit dem Floor Division Operator berechnen vollen Chargen mit dem Floor Division 250 Gramm Schokoladenstückchen, geteilt durch 40 Gramm pro Charge, ergeben sechs Wir können die übrig gebliebenen Gramm Schokoladenstückchen mit dem Modulo-Operator berechnen Schokoladenstückchen mit dem Modulo-Operator Wenn wir 250 Gramm Schokoladenstückchen haben und 40 Gramm pro Charge benötigen, haben wir nach sechs Chargen noch 10 Gramm übrig In ähnlicher Weise können wir in Teil B mit dem Operator „Floor Division “ berechnen, dass wir 13 Backwaren herstellen können, wenn jedes Gebäck 37 Gramm Teig benötigt jedes Gebäck 37 Gramm Teig benötigt und wir 500 Gramm Teig haben jedes Gebäck 37 Gramm Teig benötigt und wir Mit dem Modulos-Operator können wir auch sehen , dass 19 Gramm Teig übrig bleiben Großartig. In Übung vier können wir mit dem Exponentenoperator die Tatsache erfassen , dass sich die Masse der Hefe jede Stunde verdoppelt mit dem Exponentenoperator die Tatsache erfassen , dass sich die Masse der Hefe jede Stunde Lässt man die Hefe 6 Stunden lang wachsen, erhöhen wir die Zahl Zwei auf die Potenz von Sechs Dann multiplizieren wir das mit den anfänglichen Gramm Hefe drei , um nach 6 Stunden das Ergebnis von 192 Gramm zu erhalten. Schließlich multiplizieren wir in Übung fünf, um das Gewicht des Mehls zu berechnen, um das Gewicht des Mehls zu berechnen, einfach 20 mit 23, um 460 zu erhalten. Um das Gewicht des Zuckers zu berechnen, können wir als Nächstes den Exponentenoperator verwenden, um die Quadratwurzel des Mehlgewichts zu ermitteln . 460 ergibt 21,45 Dann verwenden wir den Modulooperator, um den Rest des Gesamtmehls und Zuckers geteilt durch 42 zu ermitteln , was 19,45 ergibt Schließlich ist das Gesamtgewicht die Summe der drei Zutaten und beträgt In Teil B können wir das Gesamtgewicht der Zutaten wiederverwenden und durch die regelmäßige Aufteilung , dass der Eigentümer 8,04 Chargen mit 62,3 Gramm Zutaten pro Charge herstellen kann mit 62,3 Gramm Da der Besitzer jedoch nicht 0,04 aus einer Charge herstellen kann , sollten wir Dazu können wir den Floor-Divisionsoperator verwenden , um nur die ganzzahlige Komponente des Divisionsergebnisses, also acht , abzurufen nur die ganzzahlige Komponente des Divisionsergebnisses, also acht , Großartig. Nachdem Sie nun numerische Operationen und die Typfunktion verstanden haben, können wir damit beginnen, einen anderen Datentyp von Python zu untersuchen: Zeichenketten. 7. Saiteninstrumente: Bisher haben wir auf unserer Reise durch den Datentyp von PyTN ganze Zahlen und Flüsse behandelt, die die Grundlage der numerischen Darstellung in der Programmierung bilden numerischen Darstellung in der Programmierung Darüber hinaus haben wir mehrere Operatoren gesehen , die mathematische Operationen mit numerischen Werten ausführen mathematische Operationen mit numerischen Werten Lassen Sie uns nun den Gang wechseln und in die Welt der Textdaten wagen In diesem Video stellen wir Ihnen Zeichenketten vor, einen wichtigen Datentyp, der zur Darstellung von Text in PyTon verwendet wird Zeichenketten eröffnen völlig neue Möglichkeiten beim Programmieren, von der Verarbeitung von Benutzereingaben bis hin zur Erstellung umfangreicher Sprachmodelle. Am Ende dieser Lektion werden Sie wissen, wie Sie Zeichenketten in Python erstellen und bearbeiten. Beim Programmieren ist es oft nützlich, Textdaten darstellen zu können ist es oft nützlich, Textdaten darstellen Beispielsweise muss ein Notenzuweisungsprogramm möglicherweise den Buchstaben A darstellen. In ähnlicher Weise muss ein Rechtschreibprüfungsprogramm möglicherweise den Inhalt eines langen Textes wie die Odyssee darstellen In Python werden Textdaten wie ein einzelner Buchstabe oder das Odyssee-Gedicht mithilfe von Zeichenketten verwaltet Um eine Zeichenfolge zu erstellen, setzen wir die gewünschten Zeichen zwischen einfache oder doppelte Anführungszeichen Um beispielsweise den Buchstaben A darzustellen, können wir den Buchstaben A in eine Codezelle eingeben und ihn wie folgt mit einfachen Anführungszeichen umgeben In ähnlicher Weise können wir, um den gesamten Inhalt des Odyssee-Gedichts darzustellen , den Inhalt des Buchs wie folgt in einfache oder doppelte Anführungszeichen Beachten Sie, dass die Anführungszeichen nicht Teil der Zeichenfolge selbst sind. Sie sind dazu da, abzugrenzen , wo die Zeichenfolge beginnt und endet Beachten Sie auch, dass Zeichenketten zur Darstellung von Zahlen und anderen Sonderzeichen verwendet werden können Darstellung von Zahlen und anderen Sonderzeichen Warte eine Minute. Was habe ich gerade gesagt? Zeichenketten können verwendet werden , um Zahlen darzustellen. Warum brauchen wir also überhaupt Ganzzahlen und Gleitkommazahlen? Reichen Zeichenketten allein nicht aus ? Die Antwort lautet nein. Wie wir gleich sehen werden, macht Biton einen wichtigen Unterschied zwischen Zahlen, die als Ganzzahlen oder Gleitkommazahlen ausgedrückt werden, und Zahlen, die als Zeichenketten ausgedrückt werden Nehmen wir zum Beispiel an, wir wollen die Summe von eins und zwei auswerten Wenn wir diese Zahlen mit Ganzzahlen oder Gleitkommazahlen darstellen, erhalten wir erwartungsgemäß die Zahl Drei. Aber was erhalten wir, wenn wir diese Zahlen mit Zeichenketten darstellen und den Ausdruck auswerten? Wir haben 12. Wow. Das ist etwas New-Age-Mathematik. Was ist passiert? Nun, wie Sie vielleicht vermutet haben, , wenn wir mit Zeichenketten arbeiten bedeutet der Plus-Operator etwas anderes, wenn wir mit Zeichenketten arbeiten, als wenn wir mit numerischen Werten arbeiten Bei numerischen Werten führt der Plus-Operator eine Addition Bei Zeichenketten verknüpft der Plus-Operator Zeichenketten miteinander. Wie dieses Beispiel zeigt, können Datentypen das Verhalten eines bestimmten Operators beeinflussen . Dies wiederum schafft einen wichtigen Unterschied zwischen verschiedenen Datentypen In Piton bestimmen Datentypen das Verhalten der von uns verwendeten Operatoren Im nächsten Video werden wir einige Operationen untersuchen, die für Zeichenketten spezifisch sind 8. Strings-geführte Beispiele: Jamie und Pike haben gerade ihre Wanderung auf dem zerklüfteten Roller Coaster Trail begonnen ihre Wanderung auf dem zerklüfteten Roller Coaster Trotz seines Namens ist der erste Teil der Achterbahnstrecke gut gepflegt und größtenteils flach Jamie entspannt sich, während sie die Berglandschaft und den frischen Duft von Pinien genießt die Berglandschaft und den frischen Duft von Wunderbar. Eine halbe Stunde nach Beginn der Wanderung nimmt der Achterbahnweg jedoch seinen Namen zurück Tatsächlich erhebt sich vor Jamie und Pike eine 15 Fuß tiefe Schlucht , Um hinüber zu kommen, benötigen unsere beiden Wanderer das Seil, das sie Während Jamie und Pike Roben manipulieren, um ihr Problem zu lösen, werden wir untersuchen, wie die Manipulation von Schlagzeugfäden Programmierern helfen kann, analoge Herausforderungen kann Bevor er mit dem Abstieg beginnt, bittet Jamie Pike, das Seil Jamie Sicherheit geht vor. Pike überprüft das Seil sorgfältig und stellt die Scanergebnisse anhand von Zeichen dar die Scanergebnisse anhand von Zeichen Wenn ein bestimmter Seilfuß fehlerfrei ist, wird dies durch einen Strich dargestellt. Ergibt der Scan jedoch einen Defekt , wird dieser Fuß des Seils durch den Stern dargestellt. Lassen Sie uns die Ergebnisse des Pike-Scans in Piton anhand einer Zeichenfolge darstellen Pike-Scans in Piton anhand einer Zeichenfolge Wie Sie sehen können, ist das Seil leider defekt Jamie hätte es überprüfen sollen, bevor er gegangen ist. Aber jetzt, wo sie sich dessen bewusst ist, möchte sie herausfinden, wo genau der Defekt am Seil liegt Da in unserem Code jedes Zeichen für 1 Fuß Seil steht, können wir die Schnur visuell untersuchen und feststellen, dass es sich bei dem neunten Zeichen um den Defekt handelt. Das heißt, es befindet sich am neunten Fuß des Seils. Mal sehen, ob Biton mit unserer Sichtprüfung einverstanden ist. Wenn wir die Position eines Zeichens in einer Zeichenfolge kennen, können wir Python bitten, dieses Zeichen auszugeben , indem wir die Zeichenfolge indizieren Um eine Zeichenfolge zu indizieren, müssen wir am Ende ein Paar Klammern anhängen und die Position des gewünschten Zeichens zwischen den Klammern angeben gewünschten Zeichens zwischen den Die Zahl, die wir zwischen die Klammern schreiben , wird Index des Zeichens genannt Also, wenn wir diesen Code ausführen, werden wir sicherlich das Zeichen Stern erhalten, oder? Oh, nun, das ist unerwartet. Warum bekommen wir ein Bindestrichzeichen? Der Grund dafür ist, dass in Bton die Zeichen einer Zeichenfolge bei Null beginnen und nicht bei Eins indexiert werden Null beginnen und nicht bei Eins Wenn wir auf das Zeichen zugreifen, das sich an Index neun befindet, ziehen wir tatsächlich das zehnte Zeichen der Zeichenfolge ab, nicht das neunte Wir können das fehlerhafte Zeichen als Ausgabe erhalten, indem unseren Index auf acht ändern und unsere Zelle erneut ausführen. Ordnung. Jetzt, wo Jimmy weiß, wo der Defekt ist, will sie ihn vom Seil entfernen. Pike ist immer ein guter Helfer. Er schneidet das Seil vor und nach dem Defekt auf und es bleiben zwei fehlerfreie Seilstücke übrig zwei fehlerfreie Seilstücke Wir können in Python ein ähnliches Ergebnis erzielen, indem wir die Zeichenfolge in Scheiben schneiden Aber während die Indizierung ein einzelnes Zeichen zurückgibt, können wir durch Slicing mehrere benachbarte Zeichen abrufen Um eine Zeichenfolge zu segmentieren, fügen wir zunächst ein Paar Klammern am Ende der Dann schreiben wir zwischen die Klammern zuerst den Index des ersten Zeichens, das wir abrufen möchten Um zum Beispiel den ersten fehlerfreien Straßenabschnitt zu erhalten , schreiben wir zunächst Null. Wir folgen diesem ersten Index mit einer Spalte. Dann geben wir den Index des letzten gewünschten Zeichens plus eins an. Das bedeutet, dass wir in unserem Beispiel acht schreiben, um die ersten Zeichen der Zeichenfolge bis zum Defekt zu ermitteln um die ersten Zeichen der Zeichenfolge bis zum Defekt zu ermitteln. Beim Teilen einer Zeichenfolge wird das Zeichen, das dem oberen Index zugeordnet ist, nicht zurückgegeben Ich weiß. Es kann ein bisschen verwirrend sein, aber im nächsten Video wirst du die Gelegenheit haben , es zu üben. Lassen Sie uns vorerst bestätigen, dass dieser Code uns das gibt, was wir wollen. Wenn wir unseren Code ausführen, erhalten wir tatsächlich die ersten acht Zeichen der Zeichenfolge. In ähnlicher Weise können wir den anderen fehlerfreien Seilabschnitt abrufen den anderen fehlerfreien Seilabschnitt indem wir die Zeichenfolge von Index neun auf Index 19 Auch dies erreichen wir, indem wir 20 nach dem Doppelpunkt schreiben. Fantastisch. Jamie und Pike haben den Defekt beseitigt Leider stecken sie jetzt an zwei Seilstücken fest, die zu kurz sind, um die Schlucht zu überqueren Da kommt Pike die geniale Idee, die beiden Teile miteinander zu verbinden Wir können in PyTon ein analoges Ergebnis erzielen , indem wir den Plus-Operator verwenden Wie wir im vorherigen Video gesehen haben, kann der Plus-Operator tatsächlich verwendet werden, um Zeichenketten zu verbinden in unserem aktuellen Beispiel Wenn wir in unserem aktuellen Beispiel unsere beiden vorherigen String-Slices in eine neue Zelle kopieren und Plus-Zeichen dazwischen binden, bindet Piton sie zusammen Beachten Sie, dass in der Programmierung das Zusammenfügen von zwei oder mehr Zeichenketten als Verkettung und das Pluszeichen als Verkettungsoperator bezeichnet wird Fantastisch. Jetzt, wo die beiden Seile zusammengebunden sind, muss Jamie überprüfen, ob das Verbindungsseil noch mindestens 15 Fuß lang ist sich keine Sorgen, wenn Sie keine Laseraugen oder die Geduld haben , die Zeichen zu zählen Biton hat eine eingebaute Funktion namens N, die uns die schwere Arbeit abnehmen kann Die LN-Funktion kann verwendet werden, um die Länge einer Zeichenfolge zu bestimmen, ähnlich wie die Type-Funktion verwendet werden könnte , um den Typ einer Zahl zu bestimmen Um die NN-Funktion zu verwenden, geben Sie einfach die Zeichenketten zwischen den Klammern ein und führen Sie den Code aus Wir erhalten, dass unsere Zeichenfolge 19 Zeichen lang ist, was bedeutet, dass das Seil 19 Fuß lang ist und dass das Seil ausreicht, um die Schlucht zu überqueren Unsere beiden Wanderer können ihre Wanderung fortsetzen. Aber bevor wir mit unserer Python-Reise fortfahren, sollten wir uns ein paar Minuten Zeit nehmen, um das Manipulieren von Zeichenketten zu üben 9. Strings-Übungen: In dieser Arbeitsmappe haben Sie Zeichenkettenoperationen geübt und auch einige weitere nützliche Konzepte im Zusammenhang mit Zeichenketten gelernt Lassen Sie uns die Lösungen besprechen. Um die erste Übung zu lösen, müssen wir uns der beiden Arten der Zeichenkettenbildung bewusst sein beiden Arten der Zeichenkettenbildung In Teil A enthält unsere Zeichenfolge einen Apostroph, daher müssen wir die Zeichenfolge mit doppelten Anführungszeichen erstellen Andernfalls denkt Python, dass der Apostroph Teil der Zeichenkettenbegrenzer ist, und wir erhalten eine Fehlermeldung anstelle einer In Teil B ist jedoch das Gegenteil der Fall. Da unsere Zeichenfolge doppelte Anführungszeichen enthält, müssen wir die Zeichenfolge mit einfachen Anführungszeichen erstellen Wenn wir versuchen, die Zeichenfolge zu erstellen, doppelte Anführungszeichen verwenden, erhalten wir eine Fehlermeldung, da Python davon ausgeht, dass die doppelten Anführungszeichen Teil der Zeichenkettendelmeter sind Um Übung zwei, Teil A, zu lösen, verwenden wir Indexierung, um das G aus Rinderhackfleisch abzurufen Ausgehend von Index Null ist G das siebte Zeichen, daher geben wir Sieben zwischen den Klammern Dadurch wird G erfolgreich aus unserer Inhaltsstoffzeichenfolge abgerufen aus unserer Inhaltsstoffzeichenfolge In Teil B können wir die Scheibe Hackfleisch ermitteln, indem den Indexbereich sieben bis 20 angeben Denken Sie daran, dass der Endindex exklusiv ist. Da wir also möchten, dass Index 19 in unsere Zeichenfolge aufgenommen wird, geben wir den Endindex als 20 an. Dann können wir in Teil C die Kurzschreibweise verwenden, um zwei Scheiben unserer Zutatenzeichenfolge abzurufen zwei Scheiben unserer Zutatenzeichenfolge Erstens müssen wir diesen Index nicht angeben, da die Zwiebel in Scheiben bei Index Null beginnt müssen wir diesen Index nicht angeben Wir können einfach den fünften Doppelpunkt zwischen Klammern schreiben , um auf die Zwiebelscheibe zuzugreifen. Als Nächstes können wir die Scheibe von den Gewürzen bis zum Ende der Zeichenfolge berechnen , indem wir den Startindex 22, gefolgt von einem Doppelpunkt, schreiben . Wir müssen den Endindex nicht angeben, da wir möchten, dass jeder Index bis zum Ende der Zeichenfolge in unserem Slice enthalten ist. In Übung drei, Teil A, können wir dann den Verkettungsoperator verwenden, um mehrere Zeichenketten in einer einzigen Codezeile miteinander zu verbinden In Teil B können wir den Stern-Operator verwenden, um eine Knoblauchzehe schnell zweimal mit unserer Zutatenfolge zu verketten Schließlich können wir in Teil C die Funktion len verwenden, um die endgültige Länge unserer Zutatenzeichenfolge zu messen, die Großartig. Jetzt haben Sie ein solides Verständnis von Zeichenketten und den Operationen , die wir an ihnen ausführen können. Im nächsten Video werden wir uns mit Variablen, einem der wichtigsten und grundlegendsten Konzepte der Programmierung, befassen der wichtigsten und grundlegendsten Konzepte Variablen, einem der wichtigsten und grundlegendsten Konzepte der Programmierung, 10. Variablen: In früheren Videos haben wir gesehen, wie man drei grundlegende Datentypen, Ganzzahlen, Lasten und Zeichenketten manipuliert Ganzzahlen, Lasten und Zeichenketten Das hat viel Spaß gemacht, aber wie ich haben Sie vielleicht festgestellt, dass das ständige Kopieren und Einfügen von Werten mühsam war In diesem Video werden wir sehen, wie Werte mithilfe von Variablen effizienter verwaltet Werte mithilfe von Variablen effizienter Was sind also Variablen genau? In einem Programmierkontext können Sie sich Variablen als Speichercontainer vorstellen , die Daten aufnehmen können. Die Daten, die wir in Variablen speichern, können von beliebigem Typ sein, einschließlich Ganzzahlen, Gleitkommazahlen und Zeichenketten Wenn wir eine Variable erstellen, müssen wir ihr einen eindeutigen Namen geben Stellen Sie sich diesen Namen als Etikett für den Container vor. eine gute Idee, ein Etikett zu verwenden, das den von uns gespeicherten Wert beschreibt ist eine gute Idee, ein Etikett zu verwenden, das den von uns gespeicherten Wert beschreibt, da es einfacher ist, später darauf zu verweisen. Sehen wir uns anhand eines Beispiels an, wie Variablen funktionieren. Angenommen, wir möchten die Zeichenfolge , die Jamies Seil darstellt, in einer Variablen speichern , die Jamies Seil darstellt, in einer Variablen Dies kann erreicht werden, indem der Zeichenfolge zunächst das Symbol „Gleich“ vorangestellt wird In PyTon wird das Gleichheitssymbol als Zuweisungsoperator bezeichnet Es teilt PTN mit, dass wir die Daten auf der rechten Seite des Gleichheitszeichens in einem bestimmten Speicherplatz ablegen oder ihnen zuweisen möchten die Daten auf der rechten Seite des Gleichheitszeichens in einem bestimmten Speicherplatz Um die Zuweisung abzuschließen, müssen wir links neben dem Gleichheitszeichen einen Variablennamen eingeben links neben dem Gleichheitszeichen wir zum Beispiel X eingeben und die Zelle ausführen, sehen wir anhand des grünen Häkchens, dass der Code problemlos ausgeführt Beachten Sie, dass bei der Zuweisung eines Werts zu einer Variablen der Wert selbst nicht im Ausgabefeld angezeigt wird Um den Inhalt einer Variablen auszugeben, geben Sie einfach den Namen der Variablen die letzte Zeile der Zelle Lassen Sie uns nun über unsere Wahl des Variablennamens sprechen. Es ist ein gültiger Name in dem Sinne, dass dieser Code ohne Probleme ausgeführt wurde, aber X beschreibt nicht sehr genau, was sich im Speichercontainer befindet Lassen Sie uns also einen aussagekräftigeren Variablennamen wählen. Hier schlage ich vor, dass Rope ein besserer Variablenname ist , da er direkt das hervorruft, was wir in der Variablen speichern Wenn wir unser Programm ausführen, der Code erfolgreich ausgeführt, was uns sagt, dass Rope auch ein wertvoller Variablenname ist . Das ist großartig Mit dieser Aussage konnten wir unsere Saite dem variablen Seil zuordnen. wir nun wissen, wie man Variablen erstellt, wollen wir uns ansehen, wie man sie benutzt. Im Allgemeinen können wir Variablen genauso manipulieren Variablen genauso die Werte, die sie speichern. Erinnerst du dich, wie wir in den vorherigen Videos Zeichenketten manipuliert in den vorherigen Videos Zeichenketten Wir können all diese Operationen immer noch ausführen , wenn unsere Daten in einer Variablen gespeichert sind Zum Beispiel können wir den Inhalt der Variablen rope indexieren, indem wir Klammern an das Ende des Variablennamens anhängen und den Index des Zeichens, an dem wir interessiert sind, zwischen die Klammern schreiben Zeichens, an dem wir interessiert sind, zwischen die Klammern In ähnlicher Weise können wir den Inhalt des Seils mithilfe der Indexbereichsnotation Wenn wir wollen, können wir sogar neue Variablen erstellen , die die String-Slices aufnehmen. Und um das linke und das rechte Seil miteinander zu verbinden, verwenden Sie einfach den Verkettungsoperator mit den beiden Variablennamen. Fantastisch. Wir wissen jetzt, wie man Variablen manipuliert. Aber bevor wir weitermachen, lassen Sie uns ein paar Dinge über Variablennamen sagen. Zu diesem Zeitpunkt haben Sie möglicherweise den Eindruck , dass jeder Variablenname geeignet ist. Dies ist jedoch nicht der Fall. Es gibt einige Einschränkungen, deren wir uns bewusst sein müssen. Lassen Sie uns darauf eingehen. Wenn Sie sich erinnern, hat unsere verkettete Seilschnur eine Länge von Wenn wir es also einer Variablen zuweisen wollten, könnte es verlockend sein, es einer Variablen mit dem Namen 19 Fuß langes Seil zuzuweisen dem Namen 19 Fuß langes Seil Lassen Sie uns versuchen, das zu tun. Hoppla. Hmm. Das scheint nicht zu funktionieren. Warum nicht? Nun, das liegt daran, dass wir bei der Benennung von Variablen vier Regeln beachten müssen. Erstens können Variablennamen nicht mit Zahlen beginnen. Der Variablenname 19 Fuß langes Seil verstößt eindeutig gegen diese Regel Davon abgesehen können Zahlen außer dem ersten Zeichen in jedem anderen Teil des Variablennamens enthalten sein , einschließlich des letzten Zeichens Zum Beispiel sind Variablennamen wie My var two und my second var gültig. Das bedeutet, dass wir zur Behebung des Fehlers stattdessen einen Namen wie 19-Fuß-Seil oder 19-Fuß-Seil verwenden könnten . Wie erwartet sind dies gültige Variablennamen. Aber lassen Sie uns trotzdem die anderen drei Regeln besprechen. Die zweite Regel besagt, dass Buchstaben, Zahlen und Unterstriche die einzigen Zeichen sind , die wir in einem Variablennamen verwenden können Unser Variablenname 19 Fuß langes Seil folgt eindeutig dieser Regel Aber Namen wie mein Ausrufezeichen Star var oder M var oder mein var, in zwei Worten, tun das nicht Der Name myvar in zwei Worten verstößt auch gegen die dritte Regel. Leerzeichen sind nicht erlaubt. Da Variablennamen keine Leerzeichen enthalten dürfen, trennen Programmierer Wörter aus Gründen der Lesbarkeit üblicherweise mit einem Unterstrich Das haben wir mit unserem Variablennamen, einem 19-Fuß-Seil, gemacht. Schließlich ist die vierte Regel, die wir beachten müssen dass bei Variablennamen zwischen Groß- und Kleinschreibung unterschieden wird. Das bedeutet, dass Python ein 19-Fuß-Seil als eine andere Variable erkennt als ein 19-Fuß-Seil , bei dem wir den ersten Buchstaben jedes Wortes Großartig. Variablen sind ein unverzichtbares Programmierwerkzeug , das bei der Umstellung auf komplexere Programmierung von entscheidender Bedeutung sein wird . Im nächsten Video werden wir uns mit einer Anwendung befassen, bei der sich die Verwendung von Variablen als sehr hilfreich herausstellt. 11. Variablen-geführte Beispiele: Jamie und Pike kommen auf der Achterbahnstrecke trotz praller Sonne und steigender Temperaturen schnell voran der Achterbahnstrecke trotz praller Als sie die 1,5-Meilen-Marke überschreiten, trinkt Jamie einen Schluck Wasser und trinkt ihre erste Flasche aus Jamie einen Schluck Wasser und trinkt ihre erste Flasche aus. Da wundert sie sich, ob sie genug Wasser hat , um für den Rest der Wanderung in dieser Geschwindigkeit weiter zu trinken für den Rest der Wanderung in dieser Geschwindigkeit Pike bietet an, uns bei der Berechnung unseres Wasserverbrauchs in Unzen Wasser pro Meile Wir führen diese Berechnung in PyTon durch und verwenden Variablen, die uns bei der Organisation der Daten helfen Lassen Sie uns zunächst Variablen erstellen, um die Anzahl der Meilen zu speichern, die Jimmy bisher gewandert ist, 1,5, und die Anzahl der Unzen Wasser, die sie getrunken 12. Lassen Sie uns auch Variablen für die Länge der Wanderung erstellen, 4,73 Meilen, und für das Wasservolumen, das sie dabei hat, 40 Unzen Anhand der ersten beiden Variablenzuweisungen können wir die aktuelle Geschwindigkeit bestimmen, können wir die aktuelle Geschwindigkeit bestimmen mit der Jamie Wasser trinkt Wir müssen einfach das Verhältnis zwischen dem Wasser, das sie verbraucht hat, zur zurückgelegten Strecke nehmen . Um den Überblick über das Ergebnis zu behalten, weisen wir es der Variablen Current CR zu, was für die aktuelle Verbrauchsrate steht Lassen Sie uns dann anhand der letzten beiden Variablen die maximale Verbrauchsrate berechnen leisten kann , die sich Jamie während der gesamten Wanderung Speichern wir diese Informationen in der Variablen MAX CR, die für maximale Verbrauchsrate steht Wenn wir diese Zellen ausführen, stellen wir fest, dass Jamies aktuelle Verbrauchsrate 8 Unzen/Meile beträgt und die maximale Verbrauchsrate, die sie sich leisten kann sich leisten Natürlich erzielt Pike dasselbe Ergebnis, aber Jamie ist etwas verwirrt darüber, aber Jamie ist wie er die Antwort liefert. Ohne Kontext ist es für Jamie schwierig zu wissen, was diese In PyTon besteht eine einfache Möglichkeit, Kontext für die Ausgabe eines Programms bereitzustellen , darin, Zeichenketten zu verwenden Lassen Sie uns also zwei neue Zeichenkettenvariablen erstellen, um Jamies aktuellen Wasserverbrauch und maximalen Wasserverbrauch zu kontextualisieren Jamies aktuellen Wasserverbrauch und maximalen Wasserverbrauch zu kontextualisieren. Großartig. Lassen Sie uns nun sehen, wie wir diese Zeichenketten zusammen mit den Werten verwenden können, um einen gewissen Kontext bereitzustellen. Wir könnten versucht sein, den Beschreibungstext und den Ausgabewert zu verketten Beschreibungstext und den Wenn wir das tun, erhalten wir jedoch eine Fehlermeldung, die uns mitteilt, dass PyTon eine Zeichenfolge und einen Float nicht verketten Nun, wenn wir darüber nachdenken, wissen wir, dass der Plus-Operator eine unterschiedliche Bedeutung hat je nachdem, ob er mit Zahlen oder mit Zeichenketten verwendet wird mit Zahlen oder mit Wenn Pyton sowohl eine Zeichenfolge als auch eine Zahl erhält, ist er verwirrt darüber, was zu tun Zum Glück ist es, wie wir im vorherigen Video gesehen haben, möglich, Zahlen als Zeichenketten darzustellen Wenn wir also wüssten, wie man die aktuelle Verbrauchsrate von einem numerischen Wert in eine Zeichenfolge umrechnet aktuelle Verbrauchsrate von , könnten wir die Verkettung durchführen Mal sehen, wie das geht. In der Programmierung wird das Konvertieren eines Datentyps in einen anderen Datentyp als Typecasting bezeichnet Insbesondere können wir die eingebaute Funktion STR verwenden, um die variable Stromverbrauchsrate von einem Float in eine Zeichenfolge umzurechnen oder umzuwandeln variable Stromverbrauchsrate von einem Float in eine Zeichenfolge umzurechnen oder von einem Float in eine Das heißt, wir können STR eingeben und dann unsere Berechnung in Klammern setzen, um die Umwandlung von Zahlen in Zeichenketten durchzuführen Wenn wir die Zelle ausführen, sehen wir, dass der Wert, der der aktuellen Verbrauchsrate zugeordnet der aktuellen Verbrauchsrate ist, jetzt zwischen einfachen Anführungszeichen steht, was bedeutet, dass wir den Float erfolgreich in eine Zeichenfolge konvertiert haben den Float erfolgreich in eine Zeichenfolge konvertiert der Wert umgerechnet wurde, können Sie sehen, dass die Verkettung jetzt In ähnlicher Weise können wir die Stringcasting-Funktion auf die Berechnung der maximalen Verbrauchsrate anwenden die Berechnung der maximalen Verbrauchsrate und sie mit maximalem Text verketten Wir erhalten jetzt ein viel aussagekräftigeres Ergebnis, und ich bin mir sicher, ich bin mir sicher Fantastisch. Jamie scheint mit unserem Wasserverbrauch auf dem richtigen Weg zu sein und kann weiterhin Wasser mit ihrer aktuellen Rate trinken Umwandlung numerischer Werte wie Gleitkommazahlen und Ganzzahlen Zeichenketten ist eine von vielen Umwandlungsoperationen, die wir in Piton durchführen können Es ist auch der einfachste Umwandlungsvorgang , da, wie wir im vorherigen Video gesehen haben, jeder numerische Wert als Zeichenfolge dargestellt werden kann Aber das wirft die Frage auf, können wir das Gegenteil tun? Können wir Zeichenketten in Ganzzahlen und Gleitkommazahlen umwandeln? Die Antwort hier ist etwas nuancierter. Wenn eine Zahl als Zeichenfolge dargestellt wird, können die Funktionen int und float verwendet werden um die Zeichenfolge in eine Ganzzahl bzw. eine Gleitkommazahl umzuwandeln eine Ganzzahl bzw. eine Gleitkommazahl Mit der Float-Funktion können wir beispielsweise die Variablen für die aktuelle Verbrauchsrate und die maximale Verbrauchsrate von Zeichenketten zurück in Floats umwandeln Beachten Sie, dass die einzelnen Anführungszeichen rund um die Werte verschwunden sind, was darauf hinweist, dass es sich bei den Werten um numerische Werte und nicht um Zeichenketten handelt Aber seien Sie vorsichtig. Nicht jede Zeichenfolge kann in einen Float oder eine Ganzzahl umgewandelt werden. Zum Beispiel können wir nicht unseren gesamten Stromverbrauchssatz in einen Float umwandeln . Das ergibt keinen Sinn. Schließlich ist es mit den Funktionen float und in auch möglich , Ganzzahlen in Floats und Floats in Ganzzahlen umzuwandeln Wenn wir beispielsweise die Float-Version der aktuellen Verbrauchsrate einer eigenen Variablen zuweisen die Float-Version der , können wir dann die Funktion int verwenden, um den Wert in eine Ganzzahl umzuwandeln Beachten Sie jedoch, dass, wenn Sie den Flow in eine Ganzzahl umwandeln, der Dezimalteil der Zahl verloren geht. beispielsweise die Gesamtzahl der Meilen eine Ganzzahl umwandeln, ergibt sich der Wert vier Wir haben bei der Berechnung tatsächlich den Dezimalteil verloren . In Ordnung, ich weiß, das waren viele Informationen. Damit Sie sich besser erinnern können, haben wir die folgende Übersichtstabelle erstellt , in der die Besetzungsregeln beschrieben werden Zu Ihrer Information finden Sie diese Tabelle am Anfang der Übungsmappe , die diesem Video folgt Fantastisch. Wir wissen jetzt, wie man Informationen mithilfe von Variablen speichert und darauf zugreift. Außerdem haben wir gelernt, Datentypen zu manipulieren. Im nächsten Video werden wir die Verwendung von Variablen und Typecasting üben 12. Variablen-Übungen: In dieser Arbeitsmappe hatten Sie die Möglichkeit, die Verwendung von Variablen zur Lösung von Problemen zu üben Sie haben auch mehrere weitere Konzepte im Zusammenhang mit Variablen gelernt , was sie zu einem noch nützlicheren Programmierwerkzeug macht einem noch nützlicheren Programmierwerkzeug Lassen Sie uns die Lösungen durchgehen. Zunächst haben wir in der ersten Übung ein Konzept erneut aufgegriffen, das im vorherigen Video mit angeleiteten Beispielen erörtert wurde im vorherigen Video mit angeleiteten Beispielen erörtert Das heißt, Python erlaubt uns nicht Zeichenketten und numerische Daten zu verketten In Teil A haben wir zwei Variablen erstellt, um die Anzahl der Blaze-Siege 13 und die Anzahl der Titans-Siege 12 zu speichern . In Par B haben wir zwei weitere Variablen erstellt, um die Beschreibungszeichenfolgen zu speichern Blaze gewinnt und Titan gewinnt Dann haben wir beide numerischen Variablen, Blaze gewinnt und Titans gewinnt, mithilfe der STR-Funktion in Zeichenketten umgewandelt Auf diese Weise können wir einen Fehler vermeiden und die gewünschte Zeichenkettenausgabe erzeugen In Teil C stellen wir das Konzept der F-Strings vor. F-Strings eignen sich hervorragend, um Variablen natürlicher in Zeichenketten einzubetten Variablen natürlicher in Zeichenketten einzubetten als durch Verkettung und Umwandlung numerischer Werte in Zeichenketten Hier können wir entweder die quadratischen Textvariablen aus Teil B in unserer Zeichenfolge wie folgt wiederverwenden die quadratischen Textvariablen aus Teil B in unserer Zeichenfolge wie folgt oder wir können den Notationstext direkt wie folgt eingeben. Als Nächstes verwenden wir in Übung zwei das Konzept der Mehrfachzuweisungen, verwenden wir in Übung zwei das Konzept der Mehrfachzuweisungen um Variablen für jedes Ergebnis des Teams zu erstellen und sie alle in einer einzigen Codezeile auf Null zu setzen . Wir können anhand des ausgegebenen Werts erkennen, dass beiden Variablen tatsächlich der Wert Null zugewiesen wurde Wenn wir zu Übung drei übergehen, können wir den Zuweisungsoperator plus gleich nutzen , den Python bereitstellt um vorhandenen Variablen effizienter Werte hinzuzufügen Für jedes Quartal addieren wir die erzielten Punkte zu den Punktevariablen des entsprechenden Teams Nach einem engen Spiel beträgt das Endergebnis der Titans 112, während das Endergebnis des Blaze 108 beträgt Es sieht so aus, als hätten die Titans die Meisterschaft gewonnen. Schließlich stoßen wir in Übung vier auf eine benutzerdefinierte Metrik, die von Ihrem Kollegen zur Verfügung gestellt wurde. Sie heißt Spielermagie Wir können den Endwert der Variablen Spielermagie bestimmen , indem wir den Variablenwert nach jeder Zeile berechnen Nach der ersten Zeile ist die Spielermagie zehn. In Zeile zwei wenden wir den Modulus-Zuweisungsoperator an. Diese Codezeile besagt, dass Spielermagie jetzt dem vorherigen Wert von Spielermagie zehn Modulus zwei entspricht dem vorherigen Wert von Spielermagie zehn Modulus Da zwei zehn gleichmäßig teilt, Zehnermodul zwei Null Nach Zeile zwei ist die Spielermagie also Null. Zeile drei addieren wir 23 zum Magiewert des vorherigen Spielers, Null, damit die Spielermagie nach Zeile drei gleich 23 ist. In Zeile vier wird der Operator für die Divisionszuweisung angewendet. Dadurch wird die Magie des Spielers geteilt. Diese ist 23 mal fünf , um 4,6 zu erhalten Dann wenden wir in Zeile fünf den Operator zur Zuweisung der Floor-Division an, der die Dezimalkomponente von 4,6 entfernt, sodass die Spielermagie am Ende von Zeile fünf gleich vier Bei sechs multiplizieren wir vier mit neun, sodass die Spielermagie 36 entspricht. Zeile sieben sagt uns, dass wir 34 vom Zauberwert 36 des vorherigen Spielers abziehen müssen , um zwei zu erhalten Schließlich wenden wir in Zeile acht den Operator für die Exponentenzuweisung an, um die Spielermagie gleich zwei mit der Potenz von Drei oder Acht zu setzen Spielermagie gleich zwei mit der Potenz von Drei oder Acht zu Und es sieht so aus, als ob Python unserer Einschätzung zustimmt. Großartig. Nachdem Sie nun mit der Funktionsweise von Variablen und ihrer Verwendung in komplexeren Kontexten vertraut sind, können wir zum nächsten Thema, den integrierten Funktionen, übergehen. 13. Eingebaute Funktionen: In früheren Videos haben wir mehrere der integrierten Funktionen von BTon verwendet , um verschiedene Aufgaben auszuführen In diesen Videos erklären wir, wie man einige der integrierten Funktionen verwendet Wir haben eine gründliche Diskussion dieses Konzepts bis jetzt verschoben . Lassen Sie uns also gemeinsam tiefer in diesen wichtigen Begriff eintauchen. In PTN sind integrierte Funktionen vordefinierte Abkürzungen , mit denen Programmierer bestimmte Aufgaben mit minimalem Aufwand ausführen bestimmte Aufgaben mit minimalem Aufwand Diese Funktionen akzeptieren bestimmte Eingaben, sogenannte Argumente, mit denen sie einige Operationen ausführen Sobald die Operationen ausgeführt wurden, erzeugt eine Funktion in der Regel eine Ausgabe, die als Rückgabewert bezeichnet wird. Nehmen wir als Beispiel unsere frühere Verwendung der Typfunktion. Wir haben der Funktion die Variable Gesamtzahl der Meilen als Argument gegeben Gesamtzahl der Meilen als Argument und sie hat den Variablentyp float zurückgegeben. Beachten Sie, dass der Prozess , mit dem der Funktionstyp von der Gesamtzahl der Meilen auf Float umsteigt , nicht explizit angegeben ist. In gewisser Weise können Sie sich eine eingebaute Funktion als eine kleine Blackbox vorstellen . Eine Blackbox? Das klingt nicht nach einer guten Sache. Nun, es stellt sich heraus, dass es tatsächlich um ein sehr nützliches Merkmal integrierter Funktionen handelt. Da wir integrierte Funktionen verwenden können , ohne ihre inneren Abläufe zu erlernen, können wir Zeit und Mühe sparen, indem unsere Programmieraufgaben einfacher und schneller erledigen Wie Sie sehen können, sind eingebaute Funktionen in PyTN sehr hilfreich Im nächsten Video werden wir unser Codierungs-Toolkit erweitern, indem wir einige neue integrierte Funktionen vorstellen und gemeinsam Anwendungsfälle untersuchen. Wir sehen uns dort 14. Eingebaute funktionsorientierte Beispiele: Jamie und Pike haben das zweite große Hindernis ihrer Wanderung erreicht , einen entmutigenden Anstieg, der selbst erfahrenen Wanderern schwer fällt selbst Während sie eine Pause von dem herausfordernden Aufstieg einlegen, fragt sich Jamie, welchen Höhenunterschied sie insgesamt während der Wanderung erleben wird. Pike erinnert sie daran, dass der Höhenunterschied 500 Fuß beträgt und der Höhenverlust natürlich auch 500 Fuß beträgt Um die gesamte Höhenänderung zu ermitteln, müssen wir den Höhenunterschied und den absoluten Wert des Höhenverlusts addieren den absoluten Wert des Höhenverlusts In Python wurde die ABS-Funktion genau dafür entwickelt den absoluten Wert des Höhenverlustes zum Höhenunterschied addieren , wir den absoluten Wert des Höhenverlustes zum Höhenunterschied addieren, ergibt sich eine Gesamthöhenänderung von 1.000 Fuß, wie Sie wahrscheinlich erwartet haben Und das ist auch die Zahl, die Pike meldet. Aber auch hier hätte Jamie gerne etwas mehr Kontext rund um die Ausgabe In einem früheren Video haben wir unserer Ausgabe Kontext hinzugefügt, indem wir numerische Ergebnisse in eine Zeichenfolge umgewandelt und eine beschreibende Bezeichnung verkettet Das hat funktioniert, aber es gibt einen besseren Weg. In PyTon macht es die integrierte Print-Funktion einfach, Werte im Ausgabefeld anzuzeigen Der Hauptvorteil der Druckfunktion besteht darin, dass sie das Typisieren und Verketten für uns übernimmt Schauen wir uns an, wie man diese Funktion benutzt. Der Einfachheit halber weisen wir zunächst das Ergebnis unserer Berechnung einer Variablen zu. Dann erstellen wir eine Labelvariable und weisen sie der Zeichenfolge Total Elevation Change zu . In Ordnung. Wir sind jetzt bereit, die Druckfunktion aufzurufen. Diese Funktion hat eine interessante Funktion , die wir noch nicht gesehen haben. Sie kann mit mehreren Argumenten umgehen. Um mehrere Argumente in eine Funktion einzugeben, schreiben wir sie zwischen die Klammern und trennen sie durch ein Wenn wir die Zelle ausführen, schreibt die Druckfunktion den Wert ihres ersten Arguments in das Ausgabefeld, gefolgt vom Wert ihres zweiten Arguments gefolgt vom Wert ihres Wir sollten wissen, dass die Reihenfolge der Eingaben wichtig ist. Wenn wir die Reihenfolge im Funktionsaufruf umkehren, kehren wir auch die Reihenfolge der Anzeige im Ausgabefeld um. Großartig. Jetzt sind Jamie und Pike ausgeruht und bereit, den steilen Aufstieg in Angriff zu nehmen Bevor wir ihnen folgen, wollen wir noch ein paar abschließende Bemerkungen zu den eingebauten Funktionen machen noch ein paar abschließende Bemerkungen zu den eingebauten Funktionen Die Druckfunktion ist nur eine von vielen eingebauten Funktionen, die mehrere Eingaben zulassen Zum Beispiel können wir die eingebaute Funktion Max verwenden, um die größte Zahl aus den Argumenten eins, vier, zwei, sechs und fünf wie folgt zu ermitteln aus den Argumenten eins, vier, zwei, sechs und fünf wie folgt Zu Ihrer Information: ITN verfügt über rund 70 integrierte Funktionen, die Sie bei gängigen Vorgängen unterstützen In den folgenden Übungen haben Sie die Möglichkeit, einige weitere dieser integrierten Funktionen kennenzulernen 15. Integrierte Funktionen-Übungen: In dieser Arbeitsmappe haben Sie sich mit mehreren der integrierten Funktionen von Python befasst Lassen Sie uns die Lösungen aufschlüsseln. In Übung eins können wir Alex' Trainingsplan mit der richtigen Formatierung ausgeben, indem wir die Escape-Sequenzen Backslash N und Backslash T verwenden, um jeweils neue Zeilen und Tabulatoren zu erstellen Nach dem Header und dem Training jedes Tages fügen wir ein neues Zeilenzeichen ein, das Python anweist , den folgenden Text in die nächste Zeile zu verschieben. Wir fügen auch den Tabulator Escape hinzu, der vor der Trainingszeile jedes Tages sequenziert ist, um Python anzuweisen , den folgenden Text einzuziehen Unser Ergebnis ist ein gut formatierter Trainingsplan. Als Nächstes können wir in Übung zwei mithilfe der ABS-Funktion den absoluten Wert der Differenz zwischen der Schrittzahl von heute und gestern bestimmen den absoluten Wert der Differenz zwischen heute und gestern mithilfe der ABS-Funktion den absoluten Wert der Differenz zwischen der Schrittzahl von Da wir die absolute Differenz ermitteln, hat die Reihenfolge, in der wir die beiden Schrittwerte subtrahieren , keinen Einfluss auf unser Endergebnis Wir stellen fest, dass der Unterschied zwischen den Schrittzahlen der beiden Tage in beiden Anordnungen 3.050 beträgt In Übung drei können wir die Max-Funktion verwenden, um die meisten Schritte zu ermitteln , die Alex in den letzten sieben Tagen gemacht hat Wenn wir die Anzahl der sieben Schritte als Argumente an die MAX-Funktion übergeben, erhalten wir die größte Anzahl von Schritten, die Alex gemacht hat, nämlich 15.400 Um dann Übung vier zu lösen, rufen wir die Min-Funktion auf, um Alex' schnellste Hundert-Meter-Zeit zu ermitteln Ähnlich wie wir die Max-Funktion verwenden, übergeben wir die fünf Zeiten als Argumente und erhalten, dass 13,87 die schnellste Zeit von Alex war Schließlich berechnen wir in Übung fünf anhand der Standarddurchschnittsberechnung die durchschnittlichen Minuten, die Alex pro Tag trainieren möchte Standarddurchschnittsberechnung die durchschnittlichen Minuten, die Alex pro Tag trainieren Dann übergeben wir unsere durchschnittliche Minutenvariable zusammen mit einer Variablen als Argumente an die runde Funktion. Dies teilt Python mit , dass wir möchten durchschnittlichen Minuten auf die erste Dezimalstelle gerundet werden. Fantastisch. Jetzt haben Sie die Möglichkeit, mehrere integrierte Funktionen von Python zu verwenden. In den nächsten Videos werden wir uns mit einigen weiteren integrierten Operationen befassen, die Python bietet. 16. Eingebaute Typmethoden: Als Pike in einem früheren Video über die gesamte Höhenänderung berichtete , übersah er, den ersten Buchstaben der Ausgabe Großschreibung des ersten Buchstabens einer Zeichenfolge ist eine grundlegende Operation PyTon muss also sicherlich eine eingebaute Funktion in Großbuchstaben bereitstellen eine eingebaute Funktion in Großbuchstaben , um uns bei der Behebung dieses Problems zu helfen Hmm. Es sieht so aus, als ob die großgeschriebene Funktion nicht existiert. Wie seltsam? Nun, die Operation mit Großbuchstaben ist tatsächlich in PyTN verfügbar, aber sie ist nicht als eingebaute Funktion implementiert Stattdessen wird die Operation mit Großbuchstaben als eingebaute Typmethode implementiert In diesem Video zeigen wir, wie integrierte Typmethoden verwendet werden, um allgemeine Operationen auszuführen , und die Unterschiede zwischen Typmethoden und integrierten Funktionen verdeutlichen die Unterschiede zwischen Typmethoden und integrierten Ähnlich wie eingebaute Funktionen, Typmethoden oder Tools, die es Programmierern ermöglichen, allgemeine Aufgaben schnell auszuführen Es gibt jedoch subtile Unterschiede zwischen den beiden Begriffen, integrierte Funktionen oder um vielseitige Tools handelt, die für die Bearbeitung verschiedener Datentypen konzipiert sind Sie bieten Programmierern ein flexibles Toolkit. Im Gegensatz dazu sind integrierte Typmethoden spezielle Tools, die für die Arbeit mit einem bestimmten Datentyp entwickelt wurden Arbeit mit einem bestimmten Datentyp Sie bieten Programmierern ein maßgeschneidertes Toolkit. Beispielsweise ist es sinnvoll, den ersten Buchstaben eines Werts groß zu schreiben , wenn es sich bei diesem Wert um eine Zeichenfolge handelt, aber nicht wirklich sinnvoll, wenn es sich bei diesem Wert um eine Zahl handelt Aus diesem Grund wird die Operation mit Großbuchstaben nicht unter den integrierten Funktionen, sondern unter den Zeichenkettenmethoden zusammengefasst integrierten Funktionen, sondern Sehen wir uns nun an, wie man auf die Operation mit Großbuchstaben zugreift und sie für die Labelvariable verwendet Um eine Typmethode für eine Variable aufzurufen, müssen wir dem Variablennamen einen Punkt folgen Zu diesem Zeitpunkt war kein Wortspiel beabsichtigt. den meisten Programmierumgebungen wird Ihnen eine Liste der verfügbaren Methoden Das ist eine Liste von Operationen, die mit der Variablen ausgeführt werden können. Lassen Sie uns durch die Liste blättern und sehen, ob wir einen guten Kandidaten für unseren Zweck finden können. Oh, würdest du dir das ansehen? Eine Methode namens Capitalize ist verfügbar. Das ist vielversprechend. Lassen Sie uns diese Methode wählen. Bevor wir die Zelle ausführen, müssen wir am Ende des Methodennamens ein Paar leerer Klammern anhängen Methodennamens ein Paar leerer Klammern anhängen Mehr dazu werden wir im Übungsvideo sagen. Wenn wir die Zelle ausführen, können wir sehen, dass die Methode eine Zeichenfolge zurückgibt oder beschriftet, wobei der erste Buchstabe groß geschrieben wird Beachten Sie, dass die Anwendung der Methode mit Großbuchstaben auf die Labelvariable den Wert des Labels nicht geändert Stattdessen wurde eine Kopie der ursprünglichen Variablen mit einem großgeschriebenen Anfangsbuchstaben erstellt der ursprünglichen Variablen mit einem großgeschriebenen Anfangsbuchstaben Um den Inhalt der Label-Variablen zu ändern, müssen wir die großgeschriebene Zeichenfolge neu zuweisen in Übereinstimmung mit unserer vorherigen Diskussion, Beachten Sie in Übereinstimmung mit unserer vorherigen Diskussion, dass die Methode mit Großbuchstaben nur auf Zeichenketten angewendet werden kann Wenn wir beispielsweise versuchen, diese Methode auf das Variablenergebnis anzuwenden, erhalten wir eine Fehlermeldung Andere Datentypen, wie Ganzzahlen und Gleitkommazahlen, haben ebenfalls zugehörige Methoden Wir werden einige davon in den Übungen untersuchen. Nun gebe ich zu, dass der Unterschied zwischen integrierten Funktionen und Typmethoden etwas subtil ist. Um den Unterschied zu verdeutlichen, betrachten wir die folgende Analogie aus dem wirklichen Leben Stellen Sie sich vor, Sie sind im Supermarkt, um Kaffeebohnen und Orangen Jeder Artikel im Geschäft, einschließlich Orangen und Kaffeebohnen, kann zu Ihrer Karte hinzugefügt und an der Kasse gekauft In diesem Sinne spiegeln die Vorgänge zum Hinzufügen von Artikeln zu Ihrer Karte Vorgänge zum Hinzufügen von Artikeln zu Ihrer Karte und zum Auschecken das Konzept der integrierten Funktionen in der Programmierung Es handelt sich um generische Operationen , die für viele Arten von Elementen funktionieren. Sobald Sie jedoch zu Hause sind, die Art und Weise, wie Sie Ihr Essen zubereiten hängt die Art und Weise, wie Sie Ihr Essen zubereiten, von der Art der Artikel ab. Möglicherweise möchten Sie Ihre Kaffeebohnen mahlen und in heißem Wasser aufbrühen, und Sie möchten Ihre Orangen vielleicht schälen und zu Saft pressen Diese Aktionen sind auf die spezifischen Elemente zugeschnitten und ähneln daher Typmethoden bei der Programmierung So wie es keinen Sinn macht, Orangen zuzubereiten oder Kaffeebohnen zu schälen, sind Typmethoden spezielle Operationen, die nicht universell für verschiedene Datentypen gelten Großartig. Wir haben jetzt ein besseres Verständnis der integrierten Typmethoden und wie sie sich von eingebauten Funktionen unterscheiden. Im nächsten Video werden wir einige zusätzliche integrierte Typmethoden untersuchen und sehen, wie sie uns bei der Manipulation von Daten helfen können. 17. Eingebaute Typmethoden – geführte Beispiele: Jimmy und Pike haben gerade ihren steilen Aufstieg hinter sich gebracht. Die beiden Wanderer setzen den Weg in einem guten Tempo fort, aber draußen wird es noch wärmer Jamie ist neugierig, wie die gefühlte Temperatur verwendet seine Sensoren zur Messung von Temperatur, Wind Pike verwendet seine Sensoren zur Messung von Temperatur, Wind und Luftfeuchtigkeit und berechnet die gefühlte Pike hat nun erfahren , dass Jim gerne etwas mehr Kontext zu den Ergebnissen seiner Berechnungen hätte Da er sich jedoch nicht sicher ist wie Jimi das Ergebnis formatieren möchte, gibt er die Informationen mit zufälliger Großschreibung , wie Jimi das Ergebnis formatieren möchte, gibt er die Informationen mit zufälliger Großschreibung aus. Oh, Pike Unzufrieden mit dem Format bittet Jamie Pike, ihr ein paar Optionen aufzuzeigen Die erste Option, die Pike vorschlägt, besteht darin, die Groß- und Kleinschreibung aller Zeichen in seiner Ausgabe zu vertauschen In Python kann dies mit der Swap-Case-Methode geschehen. Leider ist das neue Format genauso schwer zu lesen wie das ursprüngliche. Pike versucht es noch einmal und wandelt alle Zeichen in Großbuchstaben um In unserem Code können wir das mit der Methode upper machen. Konvertierung in Großbuchstaben kann nützlich sein, um wichtige Botschaften hervorzuheben oder Kleinschreibung einheitlich zu gestalten Aber Jamie findet es ein bisschen unhöflich. Pike gibt nicht auf. Ich versuche es erneut, indem ich alle Zeichen in Kleinbuchstaben umwandle alle Zeichen in Kleinbuchstaben umwandle In PyTon konvertiert die Methode mit der unteren Zeichenfolge Zeichenketten konvertiert die Methode mit der unteren Zeichenfolge Zeichenketten Wie die Methode für Großbuchstaben kann auch die Methode für Kleinbuchstaben verwendet werden, kann auch die Methode für Kleinbuchstaben verwendet werden um die Groß- und Kleinschreibung zu vereinheitlichen. Diese Ausgabe ist deutlich lesbarer, aber es fehlt ihr immer noch die richtige Persistent Pike versucht es erneut und konvertiert die Ausgabe in Groß-/Kleinschreibung. Wir können Zeichenketten auch in Groß-/Kleinschreibung konvertieren, indem wir die bereitgestellte Methode für Titelzeichenfolgen verwenden Groß- und Kleinschreibung kann nützlich sein, wenn Sie eine Zeichenfolge für eine Überschrift oder einen Titel formatieren. Diese Ausgabe ist viel besser lesbar, aber nicht ganz zufriedenstellend. Pike, du bist so nah dran. Mit einem weiteren Trick ist die Roboter-Hülle dran. Pike modifiziert die Ausgabeformatierung mithilfe der Methode capize so, dass sie eine normale Großschreibung von Sätzen eine normale Großschreibung von Sätzen ist Großartig. Jamie ist mit der neuen Formatierung zufrieden Sie müssen nicht schick sein. Pike nimmt zur Kenntnis, dass er diesem Stil in Zukunft folgen wird. Fantastisch. Wir haben jetzt mehrere nützliche eingebaute String-Methoden in Aktion gesehen. Im nächsten Video haben Sie die Möglichkeit, die Verwendung integrierter Funktionen und integrierter Typmethoden zu üben Funktionen und integrierter , um mit Daten zu arbeiten. 18. Übungen mit eingebauten Typmethoden: In dieser Arbeitsmappe haben Sie gesehen, wie mehrere weitere Zeichenkettenmethoden verwenden können Lassen Sie uns die Lösungen besprechen. Um die erste Übung zu lösen, müssen wir die Zählmethode verwenden. Wenn wir die Count-Methode im ersten Code aufrufen und die Zeichenfolge ocean als Argument übergeben, können wir sehen, dass das Wort Ocean innerhalb der Nachricht 14-mal vorkommt. Um Übung zwei zu lösen, können wir die Strip-Methodenfamilie verwenden die Strip-Methodenfamilie , um die ablenkenden Zeichen zu entfernen Sie können die Strip-Methode entweder wiederholt anwenden, oder Sie können etwas genauer vorgehen und die Strip- und R-Strip-Methoden verwenden , bei denen die Ablenkungszeichen nur auf einer Seite der Zeichenfolge erscheinen nur auf einer Seite der Zeichenfolge Konzentrieren wir uns auf diese genauere Lösung. Zuerst müssen wir die zusätzlichen Leerzeichen an beiden Enden von Code zwei entfernen. Wir können die Strip-Methode ohne Argumente verwenden , um dies zu erreichen. Zweitens können wir die Apostroph-Zeichen vom Anfang der Zeichenfolge entfernen die Apostroph-Zeichen vom Anfang der , indem wir das Apostroph an die Strip-Methode übergeben Apostroph an die Ebenso können wir auch die Ausrufezeichen am Anfang der Zeichenfolge entfernen , indem wir das Ausrufezeichen als Argument für die Strip-Methode übergeben als Argument für die Strip-Methode Dann können wir neun an die R-Strip-Methode übergeben , um die Neunen vom Ende der Zeichenfolge zu entfernen Schließlich können wir R Strip ohne Argumente aufrufen , um die Leerzeichen am Ende der Zeichenfolge zu entfernen die Leerzeichen am Ende der Zeichenfolge Großartig. Dann bleibt uns die Saite Apple Grove. Beachten Sie, dass die Reihenfolge, in diese Methoden angewendet werden, wichtig ist, da Strip nur die Zeichen am Anfang oder Ende der Zeichenfolge entfernt . Es werden keine Zeichen an einer anderen Stelle entfernt. Um zu Übung drei überzugehen, müssen wir die Ersetzungsmethode verwenden. Mithilfe der Methodenverkettung können wir die Nullen und Einsen in Code drei durch die leere Zeichenfolge ersetzen die Nullen und Einsen in Code drei durch die leere Zeichenfolge Dann können wir die Zweien durch D, die Dreien durch B, die Vieren durch L, die Fünfer durch A, die Sechsen durch M, die Sieben durch R, die Acht durch Y und die Neunen durch I ersetzen die Dreien durch B, die Vieren durch L, die Fünfer durch A, die Sechsen durch M, die Sieben durch R, . Dadurch können wir die Nachricht dekodieren, um das Wort Library zu erhalten . Dadurch können wir die Dadurch können wir . Um dann Übung vier zu lösen, können wir die Find-Methode mit der String-Bibliothek als Argument verwenden , um die Position in Code 1 zu finden , an der die Wortbibliothek beginnt. Wir erhalten, dass die Bibliothek mit dem Zeichen 1.114 beginnt. Schließlich haben wir in Übung fünf das Konzept der Booleschen Werte eingeführt , die entweder wahr oder falsch sein können Für Zeichenketten und numerische Werte gibt es Methoden, die boolesche Werte zurückgeben Diese Methoden ermöglichen es uns, Fragen zu unseren Daten zu stellen. Zum Beispiel können wir feststellen, ob Code vier alphanumerisch ist, indem wir die Methode I lnum aufrufen Hier stellen wir fest, dass der Code tatsächlich alphanumerisch ist. Fantastisch. In den letzten beiden Arbeitsmappen haben Sie gelernt, Funktionen und Methoden zu identifizieren , mit denen Sie ein bestimmtes Problem lösen können Dies ist eine nützliche Fähigkeit , auf die Sie beim weiteren Programmieren zurückgreifen werden . In den nächsten Videos werden wir uns mit dem booleschen Typ befassen, den wir in Übung fünf gesehen haben , und erfahren, wie dieser Typ uns eine neue Klasse von Problemen eröffnet , die es zu 19. Booleane und Vergleichsoperatoren: In der vorherigen Übungsmappe haben wir die Methode ist Ziffer verwendet Wir haben festgestellt, dass diese Methode den Wert true zurückgab, der in diesem Video dem Booleschen Datentyp entspricht Wir werden diesen neuen Datentyp genauer untersuchen. Boolesche Werte sind ein Datentyp, der nur die Werte true oder false annehmen kann die Werte true oder false annehmen Auf den ersten Blick scheint ein Datentyp, der nur einen von zwei Werten annehmen kann, von begrenztem Nutzen Tatsächlich ist es jedoch genau diese Einschränkung, die Boolesche Werte so mächtig macht . Mal sehen warum Analog dazu spiegeln Boolesche Werte die möglichen Zustände eines Lichtschalters wider, entweder an, wahr oder aus, falsch In der Praxis sind Boolesche Werte nützlich, wenn wir wollen, dass PyTon Stellen Sie sich zum Beispiel vor, Sie haben Schwierigkeiten mit Zahlen und benötigen Unterstützung von PyTN , um festzustellen, ob 40 Grad Fahrenheit über dem Gefrierpunkt liegen, der 32 Grad beträgt haben Schwierigkeiten mit Zahlen und benötigen die Unterstützung von PyTN , um festzustellen, ob 40 Grad Fahrenheit über dem Gefrierpunkt liegen, der 32 Grad beträgt. Wir können Pyton diese Frage mithilfe eines Vergleichsausdruck testet , ob zwei Werte eine bestimmte Beziehung erfüllen , und gibt den Wert wahr zurück , wenn die Beziehung erfüllt ist , und falsch, wenn dies nicht der Fall ist Um beispielsweise festzustellen, ob 40 Grad über dem Gefrierpunkt liegen, können wir den Vergleichsoperator „Größer als“ verwenden. Wenn PyTon die Anweisung auswertet, gibt es den booleschen Wert true zurück, was bedeutet, dass 40 tatsächlich größer als 32 ist Du lernst heute viel. Umgekehrt, wenn wir den Operator weniger als in der Anweisung verwenden , wertet PyTN ihn Auf ähnliche Weise können wir schwache Ungleichheitsbeziehungen testen, indem den Operator „Größer oder Gleichheit“ und den Operator „Kleiner als oder Neben numerischen Werten können Python-Vergleichsausdrücke auch verwendet werden, um Zeichenketten und andere Datentypen zu vergleichen. Weisen wir beispielsweise der Variablen Tag eins die Zeichenfolge Dienstag und der Variablen Tag zwei die Zeichenfolge Montag zu. Nehmen wir nun an, wir möchten testen, ob diese beiden Zeichenketten identisch sind. Können wir das Gleichheitszeichen als Vergleichsoperator verwenden ? Natürlich nicht. Denken Sie daran, dass das Gleichheitszeichen der Zuweisungsoperator in Python ist der Zuweisungsoperator in Python Bei der Auswertung dieses Ausdrucks wird die Zeichenfolge Montag der Variablen Tag eins neu zugewiesen , was nicht unsere ursprüngliche Absicht war Um einen Gleichheitsvergleichsausdruck zu erstellen, müssen wir stattdessen den doppelten Gleichheitsoperator verwenden Da sich die Zeichenfolgen Montag und Dienstag unterscheiden, bei der Auswertung des Ausdrucks der Wert Falsch zurückgegeben. Wenn wir schließlich testen möchten, ob zwei Werte unterschiedlich sind, verwenden wir den Ungleichheitsoperator Ausrufezeichen das erste Gleichheitszeichen durch ein Ausrufezeichen ersetzen und den Ausdruck auswerten, erhalten wir den Wert true, der anzeigt, dass die beiden Zeichenketten Großartig. Wir haben noch einen anderen PyTN-Datentyp behandelt, Boolesche Insbesondere haben wir gesehen, dass Boolesche Werte sehr nützlich sind, um innerhalb des PTN-Programms Ja- oder Nein-Fragen zu stellen Im nächsten Video werden wir auf dieser Grundlage aufbauen und sehen, wie wir in PTN komplexere Fragen stellen können 20. Booleans und Vergleichsoperatoren geführte Beispiele: entlang der Achterbahn gewandert Jamie und Pike sind entlang der Achterbahn gewandert und haben gerade Voller Energie fragt sich Jamie, ob sie das Tempo erhöhen können Dazu bräuchte Pike noch mindestens 73% seiner Batterie um auf Turbogeschwindigkeit hochzufahren Jamie ihrerseits würde sich wohler fühlen, wenn sie schneller wandern würde, da sie weiß, dass ein paar Wolken vorhergesagt sind , die die intensive Sonne abschirmen Im Wesentlichen möchten Jamie und Pike folgenden Ja- oder Nein-Fragen beantworten Liegt der Akkuladestand von Pike über 73% ? Und ist die Wettervorhersage bewölkt? Sie können nicht schneller wandern, wenn die Antwort auf beide Fragen nicht Ja lautet. Schauen wir uns an, wie wir PTN fragen können, ob diese beiden Bedingungen gleichzeitig erfüllt sind Praktischerweise stellt PTN das Schlüsselwort zur Verfügung, das uns bei der Durchführung dieses Tests hilft der logische Operator end Wenn der logische Operator end zwischen zwei booleschen Werten platziert wird, können wir überprüfen, ob die beiden Werte gleichzeitig wahr sind Wenn die beiden Werte wahr sind, wird der gesamte logische Ausdruck als wahr ausgewertet Wenn andererseits mindestens einer der Werte falsch ist, wird der logische Ausdruck als falsch ausgewertet Pike geht davon aus, dass er noch über einen Batteriestand von 65% verfügt , und prognostiziert, dass einige Wolken auftauchen werden weiteren Verlauf der Lassen Sie uns anhand dieser Informationen herausfinden, ob es eine Option ist, schneller zu fahren Wir beginnen mit der Erstellung von zwei Variablen, die den Akkuladestand und die Wettervorhersage von Pike darstellen Dann können wir wie folgt fragen, ob der Akkuladestand von Pike mindestens 73% beträgt und ob die Wettervorhersage bewölkt ist Wenn wir die Zelle ausführen, erhalten wir False. Natürlich tun wir das. Der erste Ausdruck von Bolling ist eindeutig falsch. Das ist schade. Jamie und Pike werden nicht schneller wandern können Aber warte. Jamie hat eine andere Idee Wenn sie sich in die Wildnis wagen, bringt Pike normalerweise Notstrom mit Jamie fragt Pike, ob er entweder eine tragbare Batterie oder seine Mini-Winterbine mitgebracht entweder eine tragbare Batterie oder seine Entweder die Batterie oder die Windturbine zu haben , würde ausreichen , um Pike etwas mehr Ladung zu geben In dieser Situation möchte Jamie die Frage beantworten. Hat Pike entweder die tragbare Batterie oder die Mini-Windturbine mitgebracht ? Um Fragen wie diese zu stellen, stellt Biton einen weiteren logischen Operator zur Verfügung: den Operator oder, wenn er zwischen zwei booleschen Werten steht, überprüft der Operator oder, ob einer der Wenn mindestens einer der Werte wahr ist, wird der gesamte logische Ausdruck als wahr der gesamte logische Ausdruck Nur wenn beide booleschen Werte falsch sind, wird der logische Ausdruck als falsch ausgewertet Pike scannt sein internes Inventar und informiert Jamie, dass er seine Mini-Windturbine mitgebracht hat, aber Wir können diese Informationen verwenden, um einen weiteren logischen Ausdruck einzurichten Lassen Sie uns zunächst zwei boolesche Variablen erstellen , die angeben, dass Pike die Mini-Turbine mitgebracht hat, aber nicht die Dann können wir den Test durchführen, indem wir einfach „hat eine Mini-Turbine“ oder „ Hat eine tragbare Batterie “ schreiben Mini-Turbine“ oder „ Hat eine tragbare Batterie Beachten Sie, dass hier keine Vergleichsausdrücke erforderlich sind, da unsere beiden Variablen bereits boolesche Werte sind Beim Ausführen der Zelle wird unser logischer Ausdruck wahr ausgewertet. Auch dies haben wir erwartet, da mindestens eine unserer beiden Variablen wahr ist. Fantastisch. Pike kann jetzt die Turbine anbringen , um die Kraft des Windes zu nutzen und die Batterie um ein paar Prozent mehr aufzuladen Dann können Jamie und Pike ihre Wanderung noch schneller fortsetzen Großartig. Sie wissen jetzt, wie Sie Vergleichs- und logische Operatoren verwenden, um Ja - oder Nein-Fragen innerhalb des PTN-Programms zu stellen - oder Nein-Fragen innerhalb des PTN-Programms Es ist jetzt an der Zeit, diese neue Fähigkeit zu üben. 21. Booleane und Vergleichsoperatoren-Übungen: In dieser Arbeitsmappe haben Sie mehr Erfahrung mit dem booleschen Typ und mit Vergleichs- und logischen Operatoren Gehen wir die Übungen durch. In Übung eins haben Sie einige komplexere Vergleichsaussagen erstellt . Um Teil A zu lösen, müssen wir die Durchschnittstemperaturen zu Beginn der Woche und Ende der Woche berechnen die Durchschnittstemperaturen zu Beginn . Wir können diese Werte in Variablen speichern und dann den Operator „Größer als“ verwenden , um zu testen, ob die frühen Temperaturen höher waren als die späteren Temperaturen. Der Vergleich ergibt „Falsch“, was bedeutet, dass die Durchschnittstemperatur zu Beginn der Woche unter der Durchschnittstemperatur im Laufe der Woche liegt. In Teil B müssen wir feststellen, ob die absolute Temperaturänderung zwischen Montag und Dienstag mindestens so groß ist wie die absolute Temperaturänderung zwischen Donnerstag und Freitag. Wir können die ABS-Funktion verwenden , um die absoluten Unterschiede zu berechnen. Dann können wir den Operator größer als oder gleich verwenden , um festzustellen, ob die absolute Differenz zwischen Montag und Dienstag mindestens so groß ist wie die absolute Differenz zwischen Donnerstag und Freitag. Wir stellen fest, dass das Vergleichsergebnis wahr ist, was bedeutet, dass sich die Temperatur zwischen Montag und Dienstag stärker verändert hat als zwischen Donnerstag und Freitag. Wenn wir zu Übung zwei übergehen, können wir überprüfen, ob die Temperatur von Montag bis Donnerstag tatsächlich ansteigt , indem wir mehrere weniger als Operatoren verwenden. In dieser Erklärung werden drei Fragen in einer gestellt. Darin wird gefragt, ob die Temperatur am Montag unter der Temperatur am Dienstag liegt, ob die Temperatur am Dienstag unter der Temperatur am Mittwoch liegt und ob am Mittwoch unter der Temperatur am Donnerstag liegt Unsere Aussage wird als wahr gewertet, was darauf hindeutet, dass diese vier Temperaturwerte stark ansteigen. In Übung drei haben wir den Knotenoperator eingeführt. Wir können den Operator verwenden, um dieses Problem auf zwei verschiedene Arten Erstens besteht der intuitivere Ansatz darin, sowohl die Variablen „Wird regnen“ als auch „Temperatur wird fallen“ direkt zu negieren Variablen „Wird regnen“ als auch „Temperatur wird fallen Es ist jedoch logisch gleichwertig, zu überprüfen, ob Regen oder Temperatur wird sinken wahr sind, und dann die Gruppe zu negieren Dies funktioniert aufgrund des De Morganschen Gesetzes, das besagt, dass nicht A und nicht B dasselbe sind wie nicht A oder B. In beiden Ausdrücken wird eine Temperatur größer oder gleich 90 als wahr gewertet. Dann wird im ersten Ausdruck sowohl „Nicht herrschen Nicht Temp“ fallen, bewerte es als wahr. Drei Wahrheiten, die mit den Operatoren und verknüpft sind, ergeben Wahr. Im zweiten Ausdruck sind will reign und temp will drop falsch und sie sind mit einem Oder-Operator verknüpft Dieser Ausdruck wird ihn also als falsch bewerten. Aber wir wenden den Operator an, der das Falsche in ein Wahres umwandelt Dann bewerten wir wahr und wahr, was wahr ist. Als nächstes in Übung vier. Wenn es um komplexe Vergleiche und logische Ausdrücke geht, ist es am besten, sie in kleinere Teile zu zerlegen. Das können wir hier tun, indem wir zunächst berücksichtigen , dass es nicht hageln sollte Dann sehen wir das Wort und wissen, dass der Rest des Ausdrucks mit einem Schlüsselwort und verknüpft wird Außerdem wissen wir, dass aufgrund des Satzes eine der folgenden Bedingungen erfüllt sein muss, dass diese beiden Bedingungen mit einem Oder-Operator verknüpft werden. Als Nächstes können wir Sichtweite von mindestens 500 Metern und eine Niederschlagsrate von nicht mehr als 0,2 „/Stunde in diese Aussage Und wir können nicht weniger als 600 Meter Sichtweite und eine Niederschlagsrate von nicht mehr als 0,3 „/Stunde in diese Aufgrund unserer Eingabevariablen dieser Teil des Ausdrucks den Wert „ Wahr“ Dieser Teil des Ausdrucks wird als falsch ausgewertet, und dieser Teil wird ebenfalls als falsch ausgewertet Diese beiden Ausdrücke sind mit einem oder verknüpft, also falsch oder falsch ist falsch Als Ergebnis bleiben uns wahr und falsch übrig , was falsch ist. Zum Schluss komme ich zu Übung fünf. In Teil A erstellen wir vier Variablen und setzen sie Platzhalterwerten gleich In Teil B verwenden wir dann diese Variablen, um einen Ausdruck zu erstellen bestimmt werden kann, ob ein erhöhtes Lawinenrisiko besteht Da wir wissen müssen, ob eine dieser Bedingungen zutrifft, verwenden wir einen Oder-Operator, um sie zu verknüpfen Wir können überprüfen, ob in letzter Zeit mehr als 12 Zoll Schnee gefallen ist und ob es drei oder mehr schwache Schichten gibt Und wir können auch überprüfen, ob die Windgeschwindigkeit mehr als 20 Meilen pro Stunde beträgt und es eine große Temperaturänderung gegeben hat Schließlich können wir in Teil C die Platzhalterwerte unserer Variablen ersetzen und den Ausdruck so auswerten, dass kein erhöhtes Lawinenrisiko besteht Großartig. Nachdem Sie nun das Erstellen von Vergleichs- und logischen Ausdrücken geübt haben, sind wir bereit, mit unserem nächsten Thema, den Bedingungen, fortzufahren. Boolesche Werte und logische Ausdrücke sind ein wichtiger Bestandteil von Konditionalen, sodass Sie in Zukunft noch mehr Gelegenheit haben werden, sie zu üben 22. Konditional: In den vorherigen Videos haben wir untersucht, wie man Fragen mit Ja oder Nein und PTN beantwortet, indem man Vergleiche und logische In diesem Video werden wir untersuchen, wie wir diese Ausdrücke verwenden können , um den Ausführungsablauf unseres Codes zu steuern den Ausführungsablauf unseres Codes Alle PTN-Programme, die wir bisher geschrieben haben , laufen linear bewegen sich bis zum Ende des Programms von einer Zeile zur nächsten Analog dazu war die Ausführung unseres Codes wie eine reibungslose Fahrt auf einer geraden Autobahn direkt zu unserem Ziel führte Aber beim Programmieren wie beim Autofahren ist der Weg, dem wir folgen wollen, nicht immer einfach So wie Sie möglicherweise einen Umweg zu einem Rastplatz machen müssen , wenn Ihr Auto wenig Benzin hat, müssen Programmierer häufig den Ausführungsablauf ihres Codes auf der Grundlage bestimmter Bedingungen steuern den Ausführungsablauf ihres Codes auf der Grundlage bestimmter Nehmen wir zum Beispiel an, Sie entwerfen ein einfaches Fahrassistenzprogramm , das die Fahrer benachrichtigt, wenn es Zeit ist, zu tanken Das Programm muss wie folgt funktionieren. Wenn ein Auto an einem Rastplatz vorbeifährt , obwohl es weniger als ein Viertel getankt hat, muss das Programm die Zeichenfolge Time to Fuel ausgeben, Baby. In der Programmierung können solche bedingten Ausführungsentscheidungen mit I-Anweisungen implementiert werden. Und wenn die Anweisung mit dem Schlüsselwort beginnt, folge ich der Bedingung, die wir testen wollen, und einer Spalte. Beachten Sie, dass die nächste Codezeile automatisch eingerückt wird, wenn Sie nach dem Schreiben der Terminalspalte die Eingabetaste drücken Terminalspalte die Eingabetaste nächste Codezeile automatisch eingerückt wird, wenn Sie nach dem Schreiben der Das ist kein Glitch. Die Einrückung signalisiert Python, dass der Code, den wir in diese Zeile schreiben nur ausgeführt werden darf wenn der Vergleichsausdruck wahr ist Wenn der Vergleichsausdruck falsch ist, die eingezogene Codezeile bei der Ausführung übersprungen Wir können leicht überprüfen, ob unser Programm wie vorgesehen funktioniert Wenn wir der Variablen Gas remaining den Wert 0.1 zuweisen und den Code ausführen, wird die gewünschte Zeichenfolge gedruckt. Und wenn wir den Wert 0,5 zuweisen, erscheint nichts in der Ausgabebox. Nun, ein Programm, das nichts zurückgibt, ist ein bisschen beunruhigend. Es macht es schwierig zu sagen, ob das Programm ausgeführt wurde oder nicht Lassen Sie uns unseren Code verbessern, indem das Programm die Zeichenfolge direkt am Ende ausgibt. Diese Zeichenfolge sollte unabhängig davon gedruckt werden, ob der Vergleichsausdruck wahr ist oder nicht. Dies kann in PyTon geschehen, indem eine Print-Anweisung ohne Einrückung unter die aktuelle Zeile geschrieben eine Print-Anweisung ohne Einrückung unter die Beim Testen unseres Codes mit dem Wert 0.1 stellen wir fest, dass beide Print-Anweisungen ausgeführt Und wenn Sie 0.1 auf 0.5 ändern, wird nur die letzte Print-Anweisung ausgeführt. Wie Sie sehen, ist die richtige Einrückung bei der Arbeit mit if-Anweisungen von entscheidender Bedeutung , da sie den Umfang der Anweisung bestimmt Wenn Anweisungen mächtig sind, aber sie sind nur ein Baustein, Python uns zur Verfügung stellt, um den Fluss unseres Codes zu kontrollieren. Piton bietet auch mehr Bausteine für komplexere Szenarien Stellen Sie sich zum Beispiel vor, Sie nähern sich einer T-Kreuzung und müssen anhand der verbleibenden Gasmenge entscheiden , ob Sie den kurzen Weg oder die landschaftlich reizvolle Route nehmen Wenn Sie mehr als einen halben Tank haben, können Sie die landschaftlich reizvolle Route nehmen. Wenn nicht, müssen Sie den kürzeren Weg nehmen, sonst würde Ihnen das Benzin ausgehen. Dieses Szenario unterscheidet sich vom vorherigen, da wir hier zwischen links oder rechts wählen müssen. Wir können diese Wahl nicht ganz überspringen und geradeaus weitermachen. Um den Fahrern zu helfen, eine solche Entscheidung zu treffen, sollten wir eine zweite Version eines Fahrerassistenzprogramms erstellen . Diese neue Version führt weiterhin einen bestimmten Code aus, wenn die Bedingung erfüllt ist. Aber wenn diese Bedingung falsch ist, möchten wir, dass unser Code einen anderen Code ausführt. Um das zu erreichen, schreiben wir das Schlüsselwort Ls, gefolgt von einer Spalte auf derselben Einrückungsebene wie die I-Anweisung Unter der Anweisung schreiben wir in eine eingezogene Codezeile den Code, der ausgeführt werden soll, wenn die Bedingung falsch ist Schließlich schreiben wir der Vollständigkeit halber eine Codezeile ohne Einrückung, die unabhängig vom gewählten Pfad ausgeführt wird Lassen Sie uns nun testen, ob unser Code wie erwartet funktioniert. Wenn wir die Variable gas remaining auf 0,7 setzen, wird der mit der I-Anweisung verknüpfte Code ausgeführt. Und wenn wir die Variable gas remaining auf einen Wert von 0,3 ändern , wird der mit der Ls-Anweisung verknüpfte Code ausgeführt. Beachten Sie, dass in beiden Szenarien die endgültige Print-Anweisung immer ausgeführt wird da sie außerhalb des Gültigkeitsbereichs des bedingten Blocks liegt . I- und IL-Anweisungen sind leistungsstarke Konzepte , mit denen Programmierer den Ausführungsablauf ihres Codes steuern Insbesondere die IL-Struktur ist sehr hilfreich für Situationen, in denen sich zwei sich gegenseitig ausschließende Szenarien beinhalten . Im nächsten Video werden wir diese IL-Struktur verallgemeinern, werden wir diese IL-Struktur verallgemeinern um Situationen zu berücksichtigen, in denen es zwei, drei, vier oder sogar mehr mögliche Szenarien gibt drei, vier oder sogar mehr mögliche 23. Conditionals-geführte Beispiele: Als Jamie und Pike sich dem Gipfel nähern, erreichen sie eine kritische Kreuzung, an der sie einen von drei Pfaden wählen müssen Weg am besten zu beschreiten hängt von Jamies Energieniveau ab, das entweder hoch, mittel oder niedrig sein kann Wenn Jamie viel Energie hat, er Recht, seine Reise um weitere 2,8 Meilen zu verlängern seine Reise um weitere 2,8 Meilen zu Wenn wir eine mittlere Energie haben, fahren sie geradeaus weiter behalten dabei den ursprünglichen Höhenunterschied von 4,73 Meilen Wenn unsere Energie niedrig ist, nehmen sie schließlich eine Abkürzung, indem sie nach links abbiegen, wodurch die Strecke um 0,56 Meilen reduziert wird Lassen Sie uns bedingte Aussagen verwenden , um den Entscheidungsprozess darzustellen Wir werden auf Konzepten aufbauen, mit denen wir bereits vertraut sind. Im letzten Video lernen wir, wie man zwei Pfade auf der Grundlage des Werts eines logischen Ausdrucks mithilfe von I- und S-Anweisungen weiterleitet oder codiert des Werts eines logischen Ausdrucks mithilfe von . Nun, es stellt sich heraus, dass wir diesen Ansatz erweitern können, um die Ausführung unseres Codes über drei oder sogar mehr Pfade zu leiten . Zum Beispiel können wir die folgende Logik implementieren, um zu entscheiden , welchen Pfad Jamie einschlagen muss Zunächst testen wir mit einer I-Aussage, ob Jamies Energieniveau hoch ist Wenn diese Bedingung zutrifft, nimmt Jamie den Weg, der ihre Wanderung um 4,5 Meilen verlängert Wenn diese Bedingung jedoch falsch ist, müssen wir feststellen, ob ihr Energieniveau mittel oder niedrig ist Dies kann erreicht werden, indem ein weiterer Is-Block in den ersten S-Block eingebettet wird Is-Block in den ersten S-Block , um zu testen, ob unser Energieniveau mittel ist Wenn die Bedingung erfüllt ist, wird Jamie der ursprünglich geplanten Route folgen Wenn diese Bedingung jedoch falsch ist, können wir daraus schließen, dass Jamies Energieniveau niedrig ist und sie die Abkürzung nehmen sollte Wie dieses Beispiel zeigt, können wir mehrere Auswahlmöglichkeiten darstellen indem wir if else-Blöcke verschachteln Dieser Ansatz funktioniert zwar recht gut für drei Alternativen, wird aber schnell aufwändig wenn es mehr Möglichkeiten gibt Sie werden in den Übungen erleben, wie umgänglich es wird Zum Glück gibt es einen besseren Weg. Um Programmierern das Leben zu erleichtern, bietet PyTon das Schlüsselwort LIF, das für s if steht Der Code im ALIF-Block wird genau dann ausgeführt wenn der Ausdruck der if-Anweisung falsch ist und der Ausdruck der ALF-Anweisung In der Praxis können ALIF-Anweisungen verwendet werden, um dieselbe Logik wie verschachtelte ifelse-Blöcke zu implementieren, sie sind jedoch Indem Pie der Logik folgt, kann er bestimmen, welchem Lassen Sie uns diese Logik in Python implementieren. Zunächst testen wir mit einer if-Anweisung, ob das Energieniveau von JB hoch ist Wenn das der Fall ist, aktualisieren wir zuerst die Wanderstrecke entsprechend. Und geben Sie den Pfad aus, dem Sie folgen möchten. Beachten Sie, dass bedingte Anweisungen mehrere Codezeilen enthalten können. Die Einrückung bestimmt , ob eine Codezeile Teil der Anweisung ist Auf die I-Anweisung folgt eine IF-Anweisung , um zu testen, ob Jamies Energieniveau mittel ist Da wir die Wanderstrecke nicht aktualisieren müssen, ist es in diesem Fall nicht erforderlich, variable Gesamtmeilenanzahl neu zuzuweisen Wir vervollständigen unseren Bedingungsblock mit einer L-Anweisung, um den Fall zu behandeln, in dem Jamies Energieniveau niedrig ist In diesem Fall müssen wir den Wert der Gesamtmeilen um 0,56 verringern den Wert der Gesamtmeilen um 0,56 Lassen Sie uns abschließend eine Druckanweisung ohne Einrückung schreiben , um die aktualisierte Gesamtzahl der Meilen auszugeben Da diese letzte Codezeile nicht Teil des Bedingungsblocks If ist , wird sie jedes Mal ausgeführt, wenn wir das Programm ausführen Auf Pikes Anfrage hin räumt Jamie ein, ein mittleres Energieniveau zu haben Lassen Sie uns das variable Energieniveau entsprechend zuweisen. Bei der Ausführung der Zelle empfiehlt unser Programm, sich an den ursprünglichen Plan zu halten . Fantastisch. Jamie und Pike werden dann ihren ursprünglichen Weg bis zum Gipfel fortsetzen ihren ursprünglichen Weg bis zum Gipfel Wir lassen Jamie und Pike diese Wanderung beenden und treffen sie, sobald sie nach Hause Fantastisch. Wir verstehen jetzt, wie man bedingte Anweisungen verwendet, um den Ausführungsablauf unseres Codes zu steuern . In der nächsten Arbeitsmappe haben Sie die Möglichkeit, die Verwendung bedingter Anweisungen zu üben Verwendung bedingter Anweisungen 24. Konditionen-Übungen: In dieser Arbeitsmappe üben Sie die Verwendung von Konditionalen unter verschiedenen Umständen Lassen Sie uns die Lösungen besprechen. In Übung eins haben Sie erlebt, wie der F-Block das Lesen Ihres Codes erleichtern kann. In Teil A können wir if und else Block verschachteln, um die Stunden für die Erkundung der Variablen entsprechend den Umgebungsbedingungen zu aktualisieren . Diese beiden Codeblöcke sind zwar logisch gleichwertig, es hat sich jedoch bewährt, explizit auf alle unsere Bedingungen zu testen Wenn Sie den Erfolgsstatus dem Block else überlassen, kann dies zu unerwartetem Verhalten führen, wenn Ihr Programm fehlerhafte Eingaben empfängt In Teil B können wir das Schlüsselwort LF verwenden, anstatt if else-Blöcke zu verschachteln Das macht unseren Code sauberer und ist gleichzeitig logisch gleichwertig In Übung zwei haben Sie zwei Szenarien gesehen, in denen das Verschachteln von bedingten Blöcken die bessere Option sein könnte In Teil A wollen wir Bedingungen verschachteln, weil jede Prüfung eine Voraussetzung für die nächste Prüfung ist Zunächst fragen wir, ob die Feldprüfung erfolgreich ist. Wenn ja, können wir überprüfen, ob der Crew-Check bestanden wurde. Wenn ja, können wir unseren letzten Navigationscheck durchführen. Wenn diese Prüfung bestanden ist, drucken wir die Startbereitschaftsnachricht aus. Wenn eine dieser Prüfungen fehlschlägt, drucken wir eine spezielle Fehlermeldung die genau angibt, welche Prüfung fehlgeschlagen ist. Wenn wir zu Teil B übergehen, stoßen wir auf eine weitere Situation, in der Verschachtelungsbedingungen die beste Option sind Hier wollen wir die Bedingungen für die Verschachtelung festlegen, weil wir sicherstellen müssen , dass die Zeus-Rakete sowohl verfügbar als auch betriebsbereit ist , bevor wir die anderen Bedingungen überprüfen überprüfen Wir können diese anderen Bedingungen mithilfe eines verschachtelten I-LFL-Blocks überprüfen , wobei jede Bedingung prüft, ob der Missionstyp der verfügbaren Besatzung entspricht , und fehlschlägt, wenn es keine Übereinstimmung gibt Um Übung drei zu lösen, müssen wir auf die Reihenfolge achten, in der wir unsere Bedingungen überprüfen Wir müssen zuerst überprüfen, ob die Motortemperatur höher als 90 ist , damit wir die richtige Meldung ausgeben können Wenn wir stattdessen zunächst prüfen, ob die Motortemperatur über 50 liegt, führen alle Temperaturen, die diese Bedingung erfüllen, einschließlich Temperaturen, die andere Bedingungen erfüllen, fälschlicherweise dazu, dass die Warnmeldung gedruckt wird. Wie Sie sehen, müssen Sie die Reihenfolge beachten , in der Sie Ihre Bedingungen überprüfen, um sicherzustellen, dass Ihr Code wie erwartet verhält Schließlich können wir in Übung vier den ternären Operator verwenden, können wir in Übung vier den ternären Operator verwenden um eine Bedingung in eine einzelne Zeile zu schreiben Wir möchten, dass der Status ausreichend ist, wenn das Lebensmittelangebot mehr als 50 beträgt Andernfalls sollte er unzureichend sein. Fantastisch. Sie haben jetzt ein solides Verständnis von Bedingungen und bedingter Logik In den nächsten Videos werden wir uns mit einem anderen nützlichen Datentyp befassen: Listen 25. Listen: Im vorherigen Video haben wir gesehen, wie Zeichenketten zur Darstellung von Daten verwendet werden. Insbesondere betrachten wir das Beispiel eines Hirten, der Inhaltsstoffe ausspioniert, die wir in einer langen Zeichenfolge dargestellt haben . Diese Methode funktioniert zwar, ist aber nicht die effizienteste Methode, um auf jeden Inhaltsstoff zuzugreifen und ihn zu manipulieren. In diesem Video werden wir untersuchen, wie diese Art von Informationen mithilfe von PyTON-Listen besser organisiert Listen sind vielseitige Tools , mit denen Sammlungen von Elementen gespeichert werden können , z. B. die Zutaten in einem Rezept Listen ermöglichen es uns, die Reihenfolge aufrechtzuerhalten, einfach auf Artikel zuzugreifen und viele Operationen wie das Hinzufügen und Entfernen von Elementen auszuführen . Zum Beispiel können wir die Inhaltsstoffe von Shepherds By als eine Liste von Zeichenketten darstellen die Inhaltsstoffe von Shepherds By als eine Liste von Zeichenketten Um eine Liste in Piton zu erstellen, setzen wir ihren Eintrag in eckige Klammern und trennen jeden Eintrag durch ein Komma So wie jedes Zeichen in einer Zeichenfolge einen zugehörigen Index hat Jedes Element in einer Liste ist auch einem Index zugeordnet. Um beispielsweise Gemüsebrat aus unserer Liste abzurufen, setzen wir Klammern an das Ende der Zutatenvariablen und fügen den entsprechenden Index für darin Sie nun die Grundlagen verstanden haben, wollen wir noch ein paar weitere Beobachtungen anstellen Erstens können Listen in Piton zwischen einigen wenigen Elementen und mehreren Millionen davon speichern zwischen einigen wenigen Elementen und mehreren Millionen davon Das heißt, Listen können verwendet werden, um einige Lebensmittel oder das Inventar eines ganzen Lebensmittelgeschäfts darzustellen Zweitens sind Listen unglaublich vielseitig. Sie können Zeichenketten, Ganzzahlen, Gleitkommazahlen, Boolesche Werte oder eine Kombination davon enthalten Gleitkommazahlen, Boolesche Werte oder eine Kombination Wir können sogar Listen erstellen, die andere Listen enthalten. In unseren kommenden Videos werden wir diese Möglichkeiten weiter untersuchen. Darüber hinaus werden wir uns mit einigen der integrierten Methoden befassen , die für Listen verfügbar sind. wir uns mit diesen Methoden befassen, werden Sie aus erster Hand erkennen, warum Listen besser sind als Zeichenketten, um Sammlungen verwandter Elemente zu organisieren 26. Listen mit geführten Beispielen: Jimmy und Pike sind nach ihrem aufregenden Abenteuer auf der Achterbahnstrecke wieder zu Hause ihrem aufregenden Abenteuer auf der Achterbahnstrecke Wegpunkten navigiert werden muss Pike möchte sich auf eine weitere Reise begeben und schlägt vor, eine ehrgeizigere Wanderung zu planen, bei der zwischen mehreren . Jimmy stimmt zu, stellt jedoch fest dass dies eine sorgfältige Vorbereitung erfordert Der erste Schritt in ihrem Planungsprozess besteht darin, eine Liste von Wegpunkten zusammenzustellen Pike schlägt eine abenteuerliche Route vor, die am Eagles Crest Trailhead beginnt und nach Crystal Brook Bend führt, in den Echo Canyon hinabsteigt, aus nebligen Wasserfällen herausklettert und in einem steilen Anstieg am Mount gipfelt Lassen Sie uns diese Liste von Wegpunkten in Biton vorstellen. Zwischen eckigen Klammern schreiben wir Zeichenketten, die jeden der fünf Wegpunkte repräsentieren , und trennen diese Zeichenketten Dann weisen wir unsere neu erstellte Liste den variablen Wegpunkten zu Um zu überprüfen, ob unsere Liste korrekt erstellt wurde, visualisieren wir sie. Großartig. Laut Pike sieht alles gut aus, aber dann merkt Janie, dass sie vergessen haben, ihre Route anzugeben, um nach Hause zu kommen Hoppla. Hechte schlagen vor, am Aussichtspunkt Star Watch vorbeizukommen, ihre Wanderung in Richtung Jem Lake fortzusetzen und dann zum Eagles Crest Trailhead zurückzukehren Um diese Wegpunkte zur Liste hinzuzufügen, stellt uns PyTon die Methode append zur Verfügung, die das anzuhängende Element Argument Lassen Sie uns überprüfen, ob die Wegpunkte tatsächlich hinzugefügt wurden. Wunderbar. Wie Sie vielleicht erwartet haben, wurden die Elemente in der Reihenfolge, in der sie hinzugefügt wurden, an das Ende der Liste angehängt Reihenfolge, in der sie hinzugefügt wurden, an das Ende der Liste Er stimmt zwar den Vorschlägen von Pike zu, sie schlägt aber auch vor, dass sie in Pipers Cove anhalten, um die malerische Aussicht zu genießen, bevor sie zum Jem-See wandern Um ein Element an einer bestimmten Position in einer Liste hinzuzufügen, bietet uns Piton Diese Methode benötigt zwei Argumente. Das erste Argument gibt den Index an, in den der Wert eingefügt werden muss. Das zweite Argument gibt den Wert an, der eingefügt werden soll. Wenn wir die Zelle ausführen, erhalten wir eine aktualisierte Liste, in der Piper's Cove vor Gem Lake eingefügt wurde die vollständige Liste der Ziele sieht, Jamie die vollständige Liste der Ziele sieht, ist er der Meinung, dass sie zu ehrgeizig sind Folglich schlägt Pike vor, Crystal Brook Band aus ihrer Reiseroute zu streichen Crystal Brook Band aus , da es zu weit von den Um ein Objekt aus der Liste zu entfernen, stellt uns PyTon die Methode remove zur Verfügung Diese Methode verwendet das zu entfernende Element als Argument. Oh nein. Was ist passiert? Warum bekommen wir hier eine Fehlermeldung? Nun, beachten Sie, dass wir Crystal Brook Ben nicht so groß Crystal Brook Ben geschrieben haben, wie es in der Liste erscheint Wir haben im Wesentlichen versucht, ein Element zu entfernen , das in der Liste nicht existiert, und PyTon gefiel das nicht die Groß-/Kleinschreibung korrigiert und Wir haben die Groß-/Kleinschreibung korrigiert und das Element erfolgreich entfernt Perfekt. Jamie und Pike sind jetzt beide mit der Liste zufrieden Neugierig fragt Jamie Pike wie viele Wegpunkte sie während ihrer Wanderung besuchen werden Um die Anzahl der Elemente in der Liste zu ermitteln, können wir eine Funktion verwenden, mit der wir bereits vertraut sind : die Acht Wegpunkte, die es zu besuchen gilt. Diese Wanderung wird viel Spaß machen. Fantastisch. Nachdem wir nun einige nützliche integrierte Methoden für Listen gesehen haben , ist es an der Zeit, dass Sie sie üben. Im nächsten Video haben Sie die Möglichkeit, an einigen Übungen zu diesen Konzepten zu arbeiten. 27. Listen Übungen: In dieser Arbeitsmappe müssen Sie die Verwendung von Listen zum Speichern, Organisieren und Bearbeiten von Daten üben Organisieren und Bearbeiten von Daten Lassen Sie uns die Lösungen aufschlüsseln. Um die erste Übung zu lösen, können wir die Syntax und die Methoden verwenden , die wir in den vorherigen Videos gesehen haben. In Teil A erstellen wir die Packliste, indem wir unsere Daten in eckige Klammern In Teil B können wir die Append-Methode verwenden, um unserer Packliste eine Zahnbürste und ein Telefonladegerät hinzuzufügen In Teil C verwenden wir dann die Einfügemethode, um ein Buch nach der Sonnenbrille einzufügen Wir übergeben drei, was Python anweist , unsere Daten am dritten Index einzufügen, und wir übergeben Book als die Daten, die wir einfügen möchten. Schließlich können wir in der ersten Übung, Teil D, die Sonnenbrille entfernen, indem wir sie als Argument an die Methode remove übergeben. Nun zu Übung zwei, Teil A, wir unsere Packliste mithilfe der integrierten Sortierfunktion in alphabetischer Reihenfolge sortieren können mithilfe der integrierten Sortierfunktion in alphabetischer Reihenfolge Python bietet auch die Listenmethode sort, die Elemente einer Liste in alphabetischer Reihenfolge sortiert Sowohl die sortierte Funktion als auch die SRT-Methode sortieren Listen technisch gesehen in aufsteigender Reihenfolge Für Zeichenkettendaten, wie wir sie hier haben , bedeutet das alphabetisch Bei numerischen Daten bedeutet das einfach vom niedrigsten zum höchsten Wert Beachten Sie auch, dass die Sortierfunktion die ursprüngliche Liste nicht verändert, die Sortiermethode jedoch schon. Dann können wir in Teil B unsere Packliste in umgekehrter alphabetischer Reihenfolge sortieren , indem wir zuerst die Sortiermethode und dann die umgekehrte Methode anwenden die Sortiermethode und dann die umgekehrte Methode Dies ist jedoch nicht die einzige Möglichkeit , eine Liste umzukehren Wir können die Sortiermethode auch mit dem Argument Reverse Equals True anwenden mit dem Argument Reverse Equals True Oder wir können die sortierte Funktion aufrufen und ihr Ergebnis direkt an die Umkehrfunktion übergeben Seien Sie sich nur bewusst, dass Sie am Ende diese nicht hilfreiche Ausgabe erhalten, wenn Sie dieses Ergebnis nicht in eine Liste Sie dieses Ergebnis nicht Wenn wir unser Ergebnis in eine Liste umwandeln, haben wir jetzt unsere Packliste in umgekehrter alphabetischer Reihenfolge In Übung drei haben wir das Konzept der multidimensionalen Listen eingeführt Es kann schwierig sein, sich mit diesem Konzept vertraut zu machen. Lassen Sie sich also nicht entmutigen, wenn Ihnen sich also nicht entmutigen, wenn diese Übungen etwas schwieriger erscheinen In Teil A können wir eine mehrdimensionale Liste erstellen, um die Ausgaben für jede Stadt wie folgt zu speichern Der nullte Index jeder Unterliste speichert die Stadt und der erste Index speichert die Liste der Ausgaben Der Nullwert in dieser Liste entspricht den erwarteten Übernachtungskosten Der erste Wert entspricht den erwarteten Lebensmittelkosten, und der zweite Wert entspricht den erwarteten Transportkosten. In Teil B können wir jeder Variablen wie folgt die richtigen Werte zuweisen . Um von unserer Ausgabenliste aus auf London England zuzugreifen, geben wir Null für die nullte Unterliste und dann wieder Null für das nullte Element in dieser Dieselbe Logik gilt für die anderen Stadtzeichenfolgen. Um dann auf die Übernachtungskosten für Paris zuzugreifen, können wir eins angeben, um diese Liste zu erhalten, eins erneut, um diese Liste zu erhalten, und dann Null, um das nullte Element abzurufen Für die Verpflegungs - und Reisekosten in Paris ändern wir einfach den dritten Index , um den richtigen Wert abzurufen Um auf die Übernachtungskosten für London zuzugreifen, geben wir als Nächstes die Indizes Null, Eins und Null Um die Verpflegungskosten für Venedig zu ermitteln, geben wir 31 und eins Und für die Reisekosten nach München geben wir 21 und zwei an. In Teil C können wir die Funktionen Summe, Min und MX verwenden , um unsere drei Fragen zu beantworten. Wir übergeben den ersten Index in der nullten Liste an die Summenfunktion, die dann die Summe der Listenelemente zurückgibt Um dann den geringsten Betrag zu ermitteln, den wir voraussichtlich für Lebensmittel ausgeben werden, können wir die Min-Funktion verwenden Wir übergeben den ersten Index des ersten Elements in jeder Städteliste, und die Min-Funktion findet den kleinsten. Um die dritte Frage zu beantworten, können wir die Ausgabenliste für Venedig an die MAX-Funktion übergeben . Wenn wir zu Übung vier, Teil A, , können wir mit der normalen List-Syntax drei Listen mit Zielen, Entfernungen und Zeiten erstellen . In Teil B verwenden wir die Zip-Funktion und wandeln unser Ergebnis in eine Liste um, um die Daten an jedem Index zu gruppieren . Unser Ergebnis ist eine Liste von Tupeln, bei der sich alle Daten, die sich auf Paris beziehen, am nullten Index befinden. Die Daten zu München befinden sich im ersten Index, und die Daten zu Venedig befinden sich im zweiten Großartig. Jetzt haben Sie gelernt , Listen zu verwenden und mit ihnen umzugehen, und Sie haben ein paar neue Konzepte im Zusammenhang mit Listen gelernt, die sie noch nützlicher machen. Im nächsten Video werden wir uns mit Tupeln befassen und lernen, wie sie sich von Tupeln unterscheiden 28. Tupel: In der vorherigen Übungsarbeitsmappe verwenden wir die Zip-Funktion, um verwandte Elemente aus drei verschiedenen Listen zu einer einzigen Liste zusammenzufassen verwandte Elemente aus drei verschiedenen Listen einer einzigen Wir haben festgestellt, dass es sich bei den Elementen dieser einzelnen Liste um sogenannte Tupel handelt Hm. In diesem Video untersuchen wir diese Tupel genauer und untersuchen, wie sie sich ähneln, aber von Listen unterscheiden Ähnlich wie Listen sind Tupel Sammlungen von Elementen. Um jedoch ein Tupel zu erstellen, setzen wir die Elemente einer Sammlung in Klammern statt in eckige Klammern Wie Listen unterstützen auch Tupel die Indizierung. einzelne Elemente und Elementsegmente kann mithilfe der Standardsyntax zugegriffen werden Die Unterschiede zwischen Tupeln und Listen werden deutlich, wenn wir anfangen, sie zu verwenden. Wie wir in früheren Videos gezeigt haben, eine einmal erstellte Liste kann eine einmal erstellte Liste mit Methoden wie Anhängen, Einfügen und Entfernen geändert werden wie Anhängen, Einfügen und Im Gegensatz zu Listen können Tupel nicht geändert werden, sobald sie einmal erstellt wurden Dementsprechend gibt es keine Methoden zum Anfügen, Einfügen oder Entfernen, die mit Tupeln verknüpft sind Darüber hinaus führen die wenigen verfügbaren Methoden keine Änderungen an Mit anderen Worten, der große Unterschied zwischen Listen und Tupeln besteht darin, dass Listen nach ihrer Erstellung modifizierbar sind und Stürze nicht. Die Tatsache, dass eine Sammlung nicht geändert werden kann, ist eine erhebliche Einschränkung Warum sollte also jemand jemals ein Tupel anstelle einer flexibleren Liste verwenden wollen ein Tupel anstelle einer flexibleren Liste Nun, gerade weil Tupel unveränderbar sind. Sie sind ein wertvolles Tool für die Organisation von Daten, die während des gesamten Programms konsistent bleiben müssen Beispielsweise enthält das zuvor definierte Roadtrip-Stop-Tupel endgültige Informationen Die Entfernung zwischen London und Paris ist in Stein gemeißelt und sollte nicht geändert werden Jede Änderung dieses Werts wäre ein Fehler. Ein weiteres Beispiel: Geographische Koordinaten sind ebenfalls eine Art von Daten, die wir möglicherweise in einem Tupel speichern möchten Der Breiten- und Längengrad von New York City wird sich niemals ändern Die Verwendung eines Tupels garantiert , dass wir diese Werte nicht versehentlich zu einem bestimmten Zeitpunkt in einem Programm ändern bestimmten Zeitpunkt in einem Programm Großartig. Wir verstehen jetzt, was Stürze sind und wie sie sich von der Liste unterscheiden Obwohl Topples seltener verwendet werden als Listen, eignen sie sich hervorragend zum Speichern von Informationen, die unverändert bleiben müssen Im nächsten Video werden wir uns mit einem weiteren wertvollen, aber weniger gebräuchlichen Datentyp zum Speichern von Sammlungen befassen einem weiteren wertvollen, aber weniger gebräuchlichen Datentyp , nämlich Datensätzen 29. Sets: In den letzten Videos haben wir gesehen, wie man Sammlungen von Elementen mithilfe von Listen und Tupeln darstellt Elementen mithilfe von Listen und Tupeln In diesem Video stellen wir einen dritten und letzten Datentyp vor, einen dritten und letzten Datentyp zur Darstellung von Sammlungen von Elementen, also Sets, verwendet wird Sätze werden seltener verwendet als Listen. Wir werden jedoch feststellen, dass es einige Situationen gibt, in denen Sets vorzuziehen sind. Sätze, wie Listen und Tupel, sind Sammlungen von Elementen. In Python erstellen wir eine Menge, indem ihr Element in geschweiften Klammern aufzählen Abgesehen von diesem Unterschied in der Syntax gibt es zwei Hauptunterschiede zwischen Mengen und den anderen Erstens können Listen und Tupel zwar doppelte Elemente enthalten, die Elemente einer Gruppe sind Beispielsweise können wir die einzelne Banane, drei Orangen und zwei Äpfel, aus denen sich eine Obstschale zusammensetzt , anhand einer Liste darstellen drei Orangen und zwei Äpfel, eine Obstschale zusammensetzt , anhand einer Wenn wir jedoch stattdessen dieselbe Obstsammlung anhand eines Sets darstellen , werden die doppelten Elemente entfernt, und es bleibt eine Sammlung von drei verschiedenen Früchten übrig von drei verschiedenen Früchten Diese Eigenschaft von Mengen ist in der Praxis hilfreich, wenn wir die eindeutigen Werte einer vorhandenen Liste ermitteln möchten. Nehmen wir zum Beispiel an, wir haben diese Liste, die doppelte Werte enthält. Wir können die eindeutigen Werte der Liste schnell ermitteln , indem wir sie mithilfe der Set-Casting-Funktion in eine Menge umwandeln. Der zweite große Unterschied zwischen Sets und den anderen Arten von Sammlungen besteht darin , dass ein Set seinen Elementen keine bestimmte Position zuweist . Mit anderen Worten, die Elemente in Sätzen sind keinem Indexwert zugeordnet ihre Position in der Sammlung angibt. In der Programmierung sagen wir, dass die Sammlung geordnet ist, wenn den Elementen einer Sammlung eine bestimmte Position zugewiesen wird. Wenn die Objekte einer Sammlung dagegen keine bestimmten Positionen haben, sagen wir, dass die Sammlung ungeordnet ist Schließlich gibt es eine zusätzliche Unterscheidung zwischen Mengen und Tupeln Wie Listen können auch Mengen geändert werden. Lassen Sie uns zur Veranschaulichung wissen, dass wir mit der Methode add einem Set ein neues Element hinzufügen können mit der Methode add einem Set ein neues Element hinzufügen Wie Sie sehen können, wurde Aprikose zum Set hinzugefügt. Beachten Sie, dass die Positionen der vorhandenen Artikel geändert wurden, was mit der Beobachtung übereinstimmt, dass die Sets nicht sortiert sind Sätze eignen sich hervorragend zur Darstellung von Daten, wenn das Vorhandensein eines Elements wichtiger ist als seine Position. Fantastisch. Wir haben jetzt drei verschiedene Datentypen zur Darstellung von Sammlungen von Objekten gesehen. Jeder Typ hat Merkmale und Einschränkungen, die ihn je nach Anwendungsfall mehr oder weniger geeignet machen . Listen sind das beliebteste Tool zur Darstellung von Sammlungen. Sie sind nach der Erstellung änderbar, erlauben Duplikate und sind geordnet Tupel und Mengen sind weniger verbreitet, aber sie sind in bestimmten Situationen nützlich Tupel sind nicht veränderbar, erlauben Duplikate Sie eignen sich hervorragend zum Speichern von Daten , die sich während eines Programms nicht ändern sollten Schließlich sind Sets modifizierbar, erlauben aber keine Duplikate und sind nicht geordnet Das bedeutet, dass Sets am nützlichsten sind, wenn wir sicherstellen möchten , dass unsere Sammlung einzigartige Artikel enthält Im nächsten Video werden wir einige Szenarien untersuchen, in denen Tupel und Sets der Liste vorzuziehen sind . Wir sehen uns dort 30. Sammlungen geführte Beispiele: Am Ausgangspunkt von Eagles Crest Jamie die frische Luft tief ein und macht sich auf den frische Luft tief ein und macht sich freut sich darauf, in die Natur einzutauchen, und Jamie freut sich darauf, in die Natur einzutauchen, und schlägt vor, eine Bestandsaufnahme aller Wildtiere zu führen, eine Bestandsaufnahme Immer bereit, den Freiwilligen von Pike dabei zu helfen , ihre Ergebnisse zu dokumentieren Kurz nach der Abfahrt von Eagles Crest Trailhead wird die Reise von Jamie und Pike aufregend, als sie zwei Hirsche und ein Kaninchen beobachten Als sie sich zwischen Echo Canyon und Misty Falls schlängeln, bemerkt Jamie inmitten des dichten Laubs ein weiteres Reh und bemerkt Jamie einen majestätischen Elch. Auf dem Weg zum Mount Silvercrest Summit entdeckt Pike ein Paar Bergziegen, die geschickt durch die felsigen Klippen navigieren, und drei weitere Elche, die in der Ferne felsigen Klippen navigieren, und drei weitere Elche, die in der grasen. sich dem Star Watch Lookout nähern, beobachten sie einen Bären, beobachten sie einen Bären entlangschlängelt Als sie schließlich zum Eagles Crest Trailhead zurückkehren , um ihre Wanderung abzuschließen, weist Jamie aufgeregt auf ein Elchpaar am Rand des Wassers ein Elchpaar Endlich machen sie sich perfekt auf ihre Expedition, die reich an Wildtieren ist. Fantastisch. Wir werden jetzt Python verwenden, um die Sammlung von Wildtiersichtungen zu dokumentieren der drei Arten von Sammlungen, mit denen wir vertraut sind, ist Ihrer Meinung nach am besten geeignet um diese Art von Informationen darzustellen Wie Sie sehen können, enthält diese Sammlung doppelte Werte da Jamie und Pike mehrere Sichtungen derselben Art aufgezeichnet mehrere Sichtungen derselben Art Wenn wir die Sammlung anhand eines Satzes darstellen würden, würden wir daher einige Informationen verlieren, da die doppelten Werte eliminiert würden Da Jamie und Pike ihre Wanderung bereits abgeschlossen haben, wissen wir außerdem , dass sie dieser Sammlung keine weiteren Tiere hinzufügen werden dieser Sammlung keine weiteren Tiere hinzufügen Die Sammlung ist in Stein gemeißelt. Aus diesen Gründen scheint es hier angemessen, einen Tuppel zu verwenden. Denken Sie daran, dass der Unterschied zwischen Listen und Tupeln darin besteht, dass Tupel nach der Erstellung nicht mehr geändert werden können Sobald sie nach Hause zurückgekehrt sind, bittet Jamie Pike, über die einzigartigen Arten zu berichten, denen sie auf dem Weg begegnet sind Um diese Informationen zu erhalten, können wir das Wildtier-Tupel in ein Set zusammenfassen Dadurch wird eine Kopie des Wildtier-Tupels in eine Menge umgewandelt, wobei die doppelten Werte entfernt Pike informiert Jamie, dass sie auf Bären, Hirsche, Elche, Elche, Bergziegen und Kaninchen gestoßen Hirsche, Elche, Elche, Bergziegen und Kaninchen Das ist großartig. Jamie ist begeistert, so viele Wildtierarten gesehen zu haben Sie fragt sich, wie viele Tiere sie möglicherweise noch hätten sehen Insbesondere möchte Jamie wissen, welchen der Tiere, die in unserer Gegend leben, sie während der Wanderung nicht begegnet sind während der Wanderung nicht begegnet Um Jamie zu helfen, konsultiert Bike einen alten lokalen Wildtierführer und findet die Sammlung aller Tiere, die in der Gegend leben Lassen Sie uns diese Sammlung von Tieren anhand eines Sets darstellen. Großartig. Nun, um Jamies Frage zu beantworten, müssen wir herausfinden, welche Tiere in der möglichen Wildtierwelt vorkommen, aber nicht in der Wildtierwelt. In PyTon kann dies geschehen, indem die Differenzmethode für die mögliche Wildtiergruppe aufgerufen und die Variable Wildtiere als Argument übergeben Wie der Name schon sagt, gibt die Differenzmethode eine Menge zurück, die Elemente enthält , die sich in der aufrufenden Menge befinden, aber nicht in der als Argument übergebenen Menge Beim Ausführen der Zelle wird ein Set mit drei Tieren angezeigt, die Jamie und Pike nicht gesehen haben, die sie aber hätten sehen Als Pike Jamie darüber informiert , dass sie Dickhornschafe, Bisons und Adler hätten sehen können, erinnert sich Jamie tatsächlich daran, einige dieser Tiere auf ihrer ersten Wanderung in der Gegend vor einigen Monaten gesehen zu ihrer haben. Sie bittet Pike, ihr zu helfen, sich genau daran zu erinnern , welches dieser drei Tiere sie auf ihrer ersten Wanderung gesehen hat. Zum Glück ist Pike ein zuverlässiger Rekordhalter und speichert diese Sammlung auf seiner Festplatte Indem wir die Wildtierszene auf der ersten Wanderung einem Set zuordnen , können wir mit einer anderen Methode feststellen, welche Gegenstände in beiden Sets vorkommen Um das in PTN zu tun, können wir die Schnittmengenmethode für das erste Wildtier-Set aufrufen und das Set mit nicht gesehenen Wildtieren als Argument angeben Die Schnittpunktmethode gibt eine Menge zurück , die die Elemente enthält , die sich in der aufrufenden Menge und in der als Argument übergebenen Menge Wenn wir die Zelle ausführen, erhalten wir Dickhornschafe und Bisons. Das bedeutet, dass Jamie und Pike auf ihrer ersten Wanderung Dickhornschafe und Bisons gesehen haben , aber nicht auf ihrer zweiten Wanderung . Großartig. In den letzten Videos haben wir gesehen, wann wir je nach unseren Programmieranforderungen Listen, Touples und Sets verwenden je nach unseren Programmieranforderungen Listen, Touples und Sets In den folgenden Übungen lernen Sie, wie Sie alle drei Datentypen verwenden 31. Sammlungen Übungen: In dieser Arbeitsmappe hatten Sie die Gelegenheit, die Auswahl des richtigen Sammlungstyps für einen bestimmten Kontext zu üben Auswahl des richtigen Sammlungstyps für einen bestimmten Kontext Darüber hinaus haben Sie die einzelnen typspezifischen Operationen verwendet , um Probleme zu lösen Lassen Sie uns die Lösungen besprechen. In Übung 1, Teil A, haben wir die Aufgabe, einen Datentyp zum Speichern der neuen Buchinformationen auszuwählen einen Datentyp zum Speichern der neuen Buchinformationen Wir wissen, dass sich diese Informationen in Zukunft nicht ändern werden und dass die Reihenfolge, in der die Informationen präsentiert werden, von Bedeutung ist Deshalb sollten wir die neuen Buchinformationen mit einem Tupel darstellen die neuen Buchinformationen mit einem Tupel In Teil B wurden wir dem Konzept des Auspackens vertraut Wir können unser neues Buchtupel wie folgt in drei Variablen, Titel, Autor und Jahr, auspacken wie folgt in drei Variablen, Titel, Autor und Jahr, Weiter zu Übung zwei, P A, müssen wir nun die Genres der ausgeliehenen Bücher darstellen der ausgeliehenen Bücher Beachten Sie, dass diese Sammlung von Genres doppelte Werte enthält, was die Verwendung von Sets ausschließt. Wir wissen auch, dass diese Daten in Zukunft aktualisiert werden , wenn Bücher aus- oder wieder eingecheckt werden, was die Verwendung von Tupeln ausschließt In diesem Szenario ist es daher am besten, eine Liste zu verwenden. In Teil B wurden gerade zwei Science-Fiction-Bücher und ein Kriminalbuch zurückgegeben, und drei Biografien, zwei Gedichtbände und ein Fantasy-Buch wurden gerade ausgeliehen. Wir können die Liste der ausgecheckten Genres entsprechend aktualisieren, indem wir die Methoden remove und append In Teil C können wir dann die Anzahl der Fantasy- und Poesiebücher zählen , die mit der Zählmethode ausgeliehen wurden Wir stellen fest, dass derzeit zwei Fantasy - und zwei Gedichtbände ausgeliehen sind. Schließlich wünscht sich der Bibliothekar in Übung drei, P A, eine Sammlung der einzigartigen Genres, die derzeit ausgeliehen sind Da wir nach den einzigartigen Genres suchen , müssen wir ein Set verwenden einer Set-Casting-Funktion können wir aus der Liste der ausgecheckten Genres aus Übung zwei ein Set erstellen . In Teil B verwenden wir geschweifte Klammern, um ein Set mit den Genres von Büchern zu erstellen , die nicht ausgeliehen sind In Teil C können wir dann mithilfe von Set-Operationen Fragen zu den ausgecheckten Genres und den verfügbaren Genresets Zunächst können wir die Union-Set-Methode verwenden , um alle Genres in den beiden Sets zu ermitteln, und mit der n-Funktion insgesamt 11 Genres zählen. Zweitens können wir mit der Intersection-Set-Methode bestimmen, welche Genres sowohl ausgecheckt als auch verfügbar sind. Denken Sie daran, dass der Schnittpunkt zweier Mengen die Elemente sind, die in beiden Gruppen vorkommen. Wir stellen fest, dass die Genres Biographie, Fantasy und Poesie beide ausgecheckt und immer noch verfügbar sind. Drittens können wir mit der Differenzmethode herausfinden , welche Genres zwar verfügbar, aber noch nicht ausgecheckt sind. Da wir die Genres finden wollen , die sich im verfügbaren Genre-Set befinden, aber nicht im ausgecheckten Genre-Set, müssen wir die Differenzmethode für das verfügbare Genre-Set aufrufen und die ausgecheckten Genres als Argument übergeben. Wenn wir die Differenzmethode für ausgecheckte Genres aufrufen und stattdessen verfügbare Genres als Argument übergeben , erhalten wir die Genres, die ausgecheckt, aber nicht verfügbar sind, was das Gegenteil von dem ist, was wir wollen. Schließlich verwenden wir für Frage vier die Methode der symmetrischen Differenzmenge, um die Genres zu finden , die in dem einen oder anderen Set vorkommen , aber nicht in beiden Anschließend wenden wir die Funktion n an, um zu zählen, ob es acht Genres gibt , die entweder ausgecheckt oder verfügbar sind Großartig. Jetzt, wo Sie sich mit Sammlungen auskennen, sind wir bereit, uns mit einem der schwierigeren Themen dieses Kurses zu befassen : Loops. Schleifen sind für die Arbeit mit Sammlungen sehr nützlich , da sie es uns ermöglichen , Operationen effizient auf jedes Element einer Sammlung anzuwenden . In den nächsten Videos werden wir Loops in ein leicht zugängliches Konzept zerlegen und dann lernen wie man sie in komplexeren Situationen einsetzt 32. For Loops: Im vorherigen Video haben wir besprochen, wie Sammlungen von Elementen mithilfe von Listen, Tupeln und Mengen dargestellt Sammlungen von Elementen mithilfe von Listen, Tupeln und Mengen Darüber hinaus haben wir die Vorteile der Verwendung von Sammlungen beim Speichern großer Datenmengen hervorgehoben Verwendung von Sammlungen beim Speichern großer Datenmengen und untersucht, wie uns die leistungsstarken integrierten Methoden von PyTN bei der Verwaltung dieser Sammlungen helfen können Aber wie wir gleich sehen werden, Verwaltung großer Sammlungen von kann die Verwaltung großer Sammlungen von Objekten manchmal eine ziemliche Herausforderung sein Nehmen wir zum Beispiel an, Sie sind Inhaber eines Ladens möchten auf alle Inventarartikel einen Rabatt von 30% gewähren. Um diese Aufgabe zu erfüllen, können wir zunächst eine leere Liste mit ermäßigten Preisen erstellen eine leere Liste mit ermäßigten Preisen Dann können wir mithilfe der Indexierung auf jeden Preis zugreifen, ihn mit 0,7 multiplizieren und das Ergebnis an die ermäßigte Preisliste anhängen Aber wie Sie sich vorstellen können, wird das ziemlich mühsam sein, da Zum Glück gibt es einen besseren Weg. In diesem Video erfahren wir, wie Sie sich wiederholende Aufgaben wie Preisnachlässe mithilfe eines Programmierkonzepts namens Four Loops automatisieren Preisnachlässe mithilfe eines Programmierkonzepts namens Four Am Ende dieses Videos werden Sie sehen, wie Loops Ihren Code vereinfachen und optimieren können Lassen Sie uns eintauchen und sehen, wie es gemacht wird. Denn Schleifen sind Strukturen , die es Programmierern ermöglichen, Codezeilen für jedes Element in einer Sammlung auszuführen Die Vier-Loop-Syntax in PyTon ist sehr intuitiv. Um die Einfachheit der Syntax besser zu verstehen, werden wir eine einfache For-Schleife schreiben, die die Preise in der Preisliste reduziert Konkret werden wir Folgendes tun. für jeden Preis in der Preisliste Lassen Sie uns für jeden Preis in der Preisliste einen Rabatt von 30% gewähren und das Ergebnis an die ermäßigte Preisliste anhängen Beachten Sie, wie nah die Python-Syntax an der englischen Beschreibung dessen ist , was wir tun wollen. Lassen Sie uns unser Programm mit einer Print-Anweisung abschließen und die Zelle ausführen um zu bestätigen, dass die Schleife den Rabatt tatsächlich auf jeden Artikel angewendet hat. Großartig. Es sieht so aus, als ob die ermäßigte Preisliste die Rabatte enthält, auf die wir gehofft hatten Wenn Sie die Geduld haben, können Sie dies gerne überprüfen. Beachten Sie auch, dass nur zwei Codezeilen benötigt wurden, um die gewünschte Ausgabe zu erzielen. Das ist ziemlich nett. Okay, jetzt , wo wir die Syntax kennen, wollen wir die Anatomie der Schleife etwas genauer untersuchen . Eine vierteilige Schleife besteht aus zwei Hauptkomponenten: einer Kopfzeile, die mit einer Spalte endet, und einem eingezogenen Hauptteil Diese Struktur sollte Ihnen an dieser Stelle bekannt vorkommen. Bedingte Aussagen, die wir in den vorangegangenen Vorlesungen behandelt haben, folgen ebenfalls einem ähnlichen Format. Schauen wir uns den Header unserer vier Schleifen genauer an. Zunächst weist das Schlüsselwort vier Piton an, dass das Programm einen Codeblock eingibt, der möglicherweise wiederholt werden muss Die zweite Komponente des Headers wird als Iterationsvariable oder Schleifenvariable bezeichnet Iterationsvariable oder Schleifenvariable Diese Variable wird während der gesamten Schleifeniterationen verwendet , um die Elemente der Liste zu speichern Wir werden in Kürze mehr über diese Iterationsvariable sagen. Lassen Sie uns zunächst einfach anmerken, dass wir anstelle von Preis einen anderen Variablennamen wie zwei, zwei verwenden könnten, ohne dass dies Auswirkungen auf die Ausgabe unseres Programms hat uns zwar frei, einen beliebigen Namen für die Iterationsvariable zu wählen, es ist besser, einen repräsentativen Variablennamen zu wählen In diesem Beispiel ist Preis ein besserer Name als 22, da er die Art der Elemente in der Liste besser die Art der Elemente in der Liste Als Nächstes wird das Schlüsselwort in verwendet um die Sammlung vorzustellen, über die iteriert werden soll In diesem Beispiel verwenden wir eine Sammlung namens Prices Die Länge dieser Sammlung bestimmt die Anzahl der Iterationen, die die Schleife durchführt In diesem speziellen Fall enthält die Preisliste 30 Preise Daher führt Piton den Hauptteil der vier Schleifen 30-mal aus, einmal für jedes Element in der Preisliste Schließlich enthält der Hauptteil einer vierteiligen Schleife den Code, den PyTon bei jeder Iteration ausführt In diesem Beispiel wird der Hauptteil der vier Schleifen auf den Preis eines Artikels herabgesetzt und das Ergebnis an die Liste mit den ermäßigten Preisen angehängt Ergebnis an die Liste mit den ermäßigten Fantastisch. Nachdem wir nun die Anatomie unserer Schleife genau untersucht haben, wollen wir Schritt für Schritt untersuchen, wie PyTon diese Schleife ausführt Wenn PTN während der Ausführung des Programms zum ersten Mal den Header der Schleife erreicht, erstellt es den variablen Iterationspreis und weist ihm den ersten Punkt der Dann führt Pyton den Code im Hauptteil der Schleife aus. In diesem Fall enthält der Hauptteil der Schleife eine einzige Codezeile, es könnten aber auch mehr sein Da der variable Preis der Iteration bei der ersten Iteration den Wert 51,79 annimmt , wird der Liste der ermäßigten Preise der Wert 36,25 hinzugefügt Nach der Ausführung des Codes im Hauptteil der Schleife kehrt PyTon zum Header zurück Codes im Hauptteil der Schleife kehrt PyTon zum Header zurück. Zu diesem Zeitpunkt wird der Iterationsvariablen erneut der zweite Eintrag in der Dann führt PyTon den Code im Hauptteil der Schleife erneut aus Da die Iterationsvariable während der zweiten Iteration den Wert 39,37 annimmt , wird der Wert 27,56 an die ermäßigte Preisliste angehängt Piton kehrt dann zum Header zurück, weist die Iterationsvariable neu zu und führt den Code im Hauptteil der Schleife und führt Dieser Vorgang wird fortgesetzt, bis der Iterationsvariablen jeder Preis in der Preisliste zugewiesen wurde jeder Preis in der Preisliste zugewiesen Wenn PyTon kein Element mehr hat, ist die Schleifenausführung abgeschlossen PyTon fährt dann mit der Ausführung der verbleibenden Zeilen im Programm fort Und so werden im Allgemeinen vier Schleifen ausgeführt. Eine Iteration nach der anderen, beginnend mit dem ersten Element der Sammlung und endend mit dem letzten Dabei wird die Iterationsvariable sequentiell dem nächsten Element der Sammlung zugewiesen dem nächsten Element der Sammlung Bei der Ausführung sich wiederholender Aufgaben haben Schleifen den Vorteil , haben Schleifen den Vorteil Diese beiden Codezeilen machen uns in der Tat eine Menge Arbeit ab Ein verwandter Vorteil von vier Schleifen ist die Skalierbarkeit. Um diesen Punkt zu verdeutlichen, wir an, dass der Filialleiter in unserem Beispiel einige weitere Artikel entdeckt, die es zu einem Rabatt gibt in unserem Beispiel einige weitere Artikel entdeckt , die es zu einem Rabatt und deren Preise in die Liste aufnimmt Unser Code besteht aus vier Schleifen berücksichtigt diese Änderung ohne jegliche Änderung PTN erledigt die Änderung automatisch für uns, indem es einige weitere Schleifeniterationen durchführt Ohne eine Schleife müssten wir die hinzugefügten Artikel manuell verfolgen und weitere Codezeilen schreiben , um den Rabatt anzuwenden Großartig. Sie haben jetzt ein grundlegendes Verständnis von vier Schleifen und wissen, warum sie manchmal besser sind, als manuelle Operationen auf die Elemente einer Liste anzuwenden . Im nächsten Video werden wir uns mit einem komplexeren Anwendungsfall für vier Loops befassen einem komplexeren Anwendungsfall für vier Loops 33. Für Loops geführte Beispiele: Da die letzten Wanderungen so gut verliefen, beschloss Jamie, für das kommende Wochenende eine ehrgeizigere zweitägige Expedition zu planen eine ehrgeizigere zweitägige Expedition für das kommende Wochenende Pike gefällt die Idee und empfiehlt eine Liste von Wegpunkten, die auf dem Gipfel des Pine Ridge Mountain gipfeln , wo sie Lassen Sie uns die Wegpunkte, die zum Pine Ridge Mountain führen, mit einer PyTon-Liste darstellen Pine Ridge Mountain Da diese Wanderung komplizierter sein wird als alle vorherigen, hätte Jamie gerne eine Liste mit Aufgaben, die sie an jedem Wegpunkt erledigen sollten , damit ihre Wanderung sicher und angenehm bleibt Pike schlägt vor, dass Jamie an jedem Wegpunkt Wasser trinkt, einen Snack isst, eine Bestandsaufnahme unserer Vorräte macht und Fotos macht, um ihr Abenteuer zu dokumentieren Liste dieser Aufgaben Pike ist immer eifrig, Notizen zu machen und erstellt eine Lassen Sie uns diese Liste auch in Python darstellen. Fantastisch. Lassen Sie uns nun den Spielplan von Jamie und Pike für ihre nächste Expedition zusammenfassen Spielplan von Jamie und Pike für ihre nächste Vom Trailhead aus wandern die beiden in Richtung Granite Wenn sie die Kreuzung erreichen, trinkt Jimi Wasser, isst einen Snack, inventarisiert Vorräte und macht Fotos. Von dort aus werden sie nach Starlight Meadow fahren. Bei ihrer Ankunft werden sie die Aufgabenliste erneut durchgehen zum Trail zurückkehren, beginnen sie mit der Wanderung in Richtung Cedar Creek Junction. Sobald sie ankommen, werden sie die Aufgabenliste erneut vervollständigen. Sie machen sich dann auf den Weg nach Evergreen Grove, wo Sie es erraten haben Jamie und Pike werden Schließlich, nach dem letzten Abschnitt ihrer Wanderung, werden die beiden am Pine Ridge Summit ankommen, wo sie ein letztes Mal die Liste der Aufgaben erledigen werden der Aufgaben erledigen Wow. Das waren viele Wiederholungen Können wir diese Aufgabenliste in PTon ausdrucken, ohne jede Aktivität an jedem Wegpunkt explizit eingeben Weil mir das irgendwie mühsam erscheint. Nun, wenn einige Programmieraufgaben wiederholt ausgeführt werden müssen, helfen uns vier Schleifen. Mal sehen wie. Lassen Sie uns zunächst eine Vierschleife schreiben , die die Liste der Wegpunkte durchläuft und die Ankunftsnachricht und die Abfahrtsnachricht für jeden Wegpunkt ausgibt Ankunftsnachricht und die Abfahrtsnachricht für jeden zwischen diesen beiden Druckanweisungen Lassen Sie uns zwischen diesen beiden Druckanweisungen weitere Druckanweisungen für jede der Aufgaben schreiben , die an einem bestimmten Ort ausgeführt werden sollen Wenn wir die Zelle ausführen, können wir sehen, dass die Ausgabe mit der Aufgabenliste übereinstimmt. Um sicherzustellen, dass alles klar ist, werden wir nun Schritt für Schritt aufschlüsseln, wie dieser Code funktioniert. Wenn das Programm zum ersten Mal den Header der vier Loops erreicht , setzt Biton die Waypoint-Loop-Variable auf Granite Falls Beim Betreten des Hauptteils der Schleife druckt PyTon die Ankunftsnachricht beim Überqueren der Granite Falls, gefolgt von den einzelnen Aufgaben und dann die Ausgangsmeldung von Granite Falls Crossing In der nächsten Schleifeniteration setzt PyTon dann die Waypoint-Loop-Variable auf Starlight Meadow und wiederholt die entsprechenden Print-Anweisungen im Hauptteil der im Der Wegpunkt der Loop-Variablen wird auf ähnliche Weise Beginn jeder der verbleibenden Iterationen aktualisiert zu Beginn jeder der verbleibenden Iterationen aktualisiert. Am Ende der letzten Iteration der Schleife, wenn die Waypoint-Loop-Variable wenn die Waypoint-Loop-Variable Pine Ridge Summit gesetzt ist, kehrt Python zum Loop-Header zurück, stellt fest, dass es keine Elemente mehr gibt, durch die iteriert werden kann , und beendet Das funktioniert einwandfrei. Unser Code ist viel kompakter, als wenn wir alle 30 Print-Anweisungen manuell geschrieben hätten . Aber wir können es tatsächlich besser machen. Beachten Sie, dass unser Code im Hauptteil des Vier-Doops manuell die Indizes der Aufgabenliste durchläuft Wenn es viel mehr Aufgaben gäbe, wäre das Zum Glück können diese Wiederholungen vermieden werden, indem wir innerhalb unserer ersten vier Schleifen weitere vier Schleifen schreiben Zur Erinnerung: Wir nennen eine Schleife, die sich innerhalb weiterer vier Schleifen befindet, eine verschachtelte Schleife Sehen wir uns an, wie wir unseren Code mit einer verschachtelten Viererschleife verbessern können unseren Code mit einer verschachtelten Viererschleife Um alle Aufgaben an einem bestimmten Wegpunkt durchzugehen, erstellen wir eine For-Schleife, in für jede Aufgabe in der Aufgabenliste wir für jede Aufgabe in der Aufgabenliste den Namen der Aufgabe ausgeben Nachdem wir die Zelle ausgeführt haben, sehen wir, dass die Ausgabe wieder dem entspricht was Jamie und Pike auf ihrer Wanderung planen Nun, ich weiß, dass es schwierig sein kann, den Ausführungsablauf einer verschachtelten Schleife zu verstehen kann, den Ausführungsablauf einer verschachtelten Schleife Lassen Sie uns diesen Code aus diesem Grund gegen ein paar Iterationen eintauschen Wie zuvor wird, wenn Python zum ersten Mal den äußeren Loop-Header erreicht, der Waypoint-Loop-Variablen die Zeichenfolge Granite Falls Crossing zugewiesen Dann bewegt sich Python zum Körper der äußeren Schleife und druckt die Ankunftsnachricht von Granite Falls Crossings Als Nächstes wechselt Python zum Header der verschachtelten Schleife. An diesem Punkt wird der Loop-Variablen-Aufgabe das erste Element in der Aufgabenliste zugewiesen, Wasser trinken bewegt sich in den Hauptteil der verschachtelten Schleife und PyTon bewegt sich in den Hauptteil der verschachtelten Schleife und druckt die Aufgabe Dann kehrt PyTon zum Header der verschachtelten Schleife zurück und weist die Aufgabenvariable dem zweiten Element der Aufgabenliste neu zu Iss einen Snack. Diese Aufgabe wird dann gedruckt. Die verbleibenden Iterationen der verschachtelten Schleife werden ähnliche Weise ausgeführt, bevor Pyton diese Schleife verlässt Beim Verlassen der verschachtelten Schleife führt Pyton die letzte Zeile der ersten Iteration der äußeren aus Dann kehrt Pyton zum Header der äußeren Schleifen zurück, wo dem variablen Wegpunkt erneut der wo dem variablen Wegpunkt erneut der Wert starlight meadow zugewiesen wird. Und dieser Zyklus wird für alle Elemente in der Wegpunktliste wiederholt für alle Elemente in Um dies zu betonen, ist die wichtige Erkenntnis , dass alle Iterationen der verschachtelten Schleife ausgeführt werden, bevor Python zur nächsten Iteration der äußeren Schleife übergeht Fantastisch. Sie haben jetzt Loops im Griff und Sie haben gesehen, wie sie verschachtelt werden können , um komplexe Probleme zu lösen Davon abgesehen sind vier Schleifen schwierigeres Konzept als das, das wir zuvor behandelt haben Aus diesem Grund bieten wir Ihnen in den folgenden Übungen viele Gelegenheiten zum Üben. 34. For Loops-Übungen: In dieser Arbeitsmappe hatten Sie die Gelegenheit, die Verwendung von vier Loops in verschiedenen Szenarien zu üben Darüber hinaus haben Sie gelernt, mehrere Schleifenvariablen zu verwenden , die Funktionen aufzählen und bereichern, Mechanismen zur Steuerung von Schleifen und Auflisten, wodurch vier Schleifen noch nützlicher Lassen Sie uns die Lösungen aufschlüsseln. In der ersten Übung, P A, erhielten wir eine Playlist und mussten den Titel und die Dauer jedes Songs ausdrucken , indem wir vier Schleifen nutzten. Da jedes Element in der Playlist ein Tupel mit drei Elementen ist, haben wir unsere Song-Loop-Variable in drei einzelne Variablen entpackt in drei einzelne Wir verwenden diese Variablen dann in der Print-Anweisung. Dieser Loop druckt jeden Song in der Liste zusammen mit seiner Dauer in Minuten und Sekunden aus. In Teil B haben wir unserem Code aus Teil A einen Minuten- und Sekundenzähler hinzugefügt unserem Code aus Teil A einen Minuten- und Sekundenzähler , um die Gesamtdauer aller Songs in der Playlist zu berechnen . Innerhalb des Loops haben wir die Variablen Gesamtminuten und Gesamtsekunden inkrementiert die Variablen Gesamtminuten und Gesamtsekunden , um der Dauer jedes Songs Rechnung zu tragen Nach dem Vier-Loop haben wir dann mithilfe des Floor-Division-Operators die Anzahl der vollen Minuten aus der Variablen für die Gesamtsekunden extrahiert mithilfe des Floor-Division-Operators die Anzahl der vollen Minuten aus der Variablen für die Gesamtsekunden Floor-Division-Operators die Anzahl der vollen Minuten aus der Variablen für die und zur Variablen für die Gesamtminuten hinzugefügt Als Nächstes verwenden wir den Modulo-Operator, um die verbleibenden Sekunden zu berechnen und diesen Wert der Variablen für die Gesamtzahl der Sekunden neu zuzuweisen Wert der Variablen für die Gesamtzahl der Sekunden , sodass dieser Wert niemals 60 überschreitet Schließlich haben wir die Gesamtdauer ausgedruckt. Als wir zu Übung zwei übergingen, erhielten wir eine Playlist klassischen Songs und mussten herausfinden , welche Songs in der Playlist von den Beatles waren , und entsprechende Playlisten erstellen Dafür haben wir zwei leere Listen erstellt, eine für die Beatles-Songs und eine für andere Songs und eine für andere diese leeren Listen außerhalb der For-Schleife erstellen , wird sichergestellt, dass wir die Listen nicht bei jeder Iteration der Schleife überschreiben Listen nicht bei jeder Iteration der Im Hauptteil der Schleife haben wir die beiden Elemente der Song-Tupel in die Variablen title und artist entpackt beiden Elemente der Song-Tupel in die Variablen title und Anschließend haben wir anhand einer bedingten Aussage festgestellt , ob es sich bei dem Künstler um die Beatles handelt Wenn ja, dann haben wir den Songtitel an die Beatles-Songliste angehängt den Songtitel an die Beatles-Songliste Wenn nicht, haben wir den Songtitel an die Liste der anderen Songs angehängt den Songtitel an die Liste der anderen Songs Schließlich haben wir die beiden Liederlisten ausgedruckt. In Übung drei haben wir gelernt, wie man mehrere Loop-Variablen verwendet , um Elemente einer Sammlung direkt in den vier Loop-Header zu entpacken . In Teil A erhielten wir eine Playlist beliebten Songs und wurden gebeten, einen Bericht mit den Songinformationen auszudrucken. Zu diesem Zweck haben wir mehrere Loop-Variablen verwendet, um den Songnamen, den Interpreten und die Albuminformationen zu entpacken , in jedem Tupel der Liste gespeichert Schließlich verwenden wir diese Variablen um die Songinformationen auszudrucken In Teil B erhielten wir Listen mit Liedern, Minuten und Sekunden und wurden gebeten, jedes Lied zusammen mit seiner Dauer in Minuten und Sekunden auszudrucken . Da die drei Listen in derselben Reihenfolge indexiert sind, was bedeutet, dass die Elemente an derselben Position in jeder Liste miteinander verknüpft sind, haben wir die Zip-Funktion verwendet, um die Listen zu kombinieren Mithilfe mehrerer Loop-Variablen haben wir sofort die Song-, Minuten- und Sekundendaten in den Loop-Header entpackt Minuten- und Sekundendaten in den Loop-Header Schließlich verwenden wir diese Variablen um eine nützliche Nachricht auszudrucken In Teil C mussten wir dieselben Listen wie in Teil B ausdrucken, aber diesmal mussten wir jedem Song eine Nummer zuweisen Dazu haben wir auf unserem Code aus Teil B aufgebaut und die Zählervariable Song Num hinzugefügt. Anfänglich haben wir sie auf eins gesetzt , sodass wir von dort aus mit der Nummerierung der Songs beginnen können Wir haben die Songnummer aktualisiert, indem sie am Ende jeder Loop-Iteration erhöht Mit dieser Änderung haben wir jeden unserer Songs nummeriert In Teil D haben wir im Vergleich zu Teil C gesehen, wie die Aufzählungsfunktion unser Programm vereinfachen kann . Anstatt eine separate Zählervariable zu erstellen, haben wir unsere komprimierten Listen an die Aufzählungsfunktion übergeben Dann haben wir die Iterationsvariable song num erstellt, um den Index zu erfassen Da es sich bei den Daten, die wir an die Aufzählungsfunktion übergeben haben , um eine komprimierte Liste handelt, dem zweiten von der Aufzählungsfunktion zurückgegebenen Element um ein Tupel, das die Song-, Minuten ein Tupel handelt es sich bei dem zweiten von der Aufzählungsfunktion zurückgegebenen Element um ein Tupel, das die Song-, Minuten - und Sekundendaten enthält. Wir haben diese Informationen mithilfe der Variablen Song, Minuten und Sekunden direkt in den Header entpackt mithilfe der Variablen Song, Minuten und Sekunden direkt in den Header . Beachten Sie, dass wir dieselbe Ausgabe wie in Teil C erhalten, die aktuelle Version unseres Codes jedoch prägnanter ist Im letzten Teil der dritten Übung wurde uns eine Liste von Tupeln zur Verfügung gestellt, die jeweils mehrere Elemente enthielten Unsere Aufgabe bestand darin, einen Bericht zu erstellen, in dem nur der Songtitel und das Jahr der Veröffentlichung extrahiert und angezeigt Da wir zu jedem Song viele unnötige Informationen erhielten , verwendeten wir stattdessen Unterstriche im Loop-Header als Platzhalter für die Werte, die wir nicht verwenden wollten Das ist eine gute Programmierpraxis, da es deutlich macht, dass diese Daten nicht im Hauptteil des Loops verwendet werden Als wir zu Übung vier übergingen, erhielten wir eine Top-Ten-Playlist und mussten die ersten fünf Songs der Liste ausdrucken. Um nur die ersten fünf Songs zu drucken, verwenden wir die Bereichsfunktion mit dem Argument five im Loop-Header. Dies führte dazu, dass der Loop fünfmal iterierte sequenziell Null, Eins Loop-Variablen I sequenziell Null, Eins, Zwei, Drei und Vier zuwies. Im Hauptteil des Loops verwendeten wir I , um unsere Listen zu indexieren und den entsprechenden Song abzurufen Beachten Sie, dass I ein gebräuchlicher Variablenname ist, den Programmierer verwenden, um einen Iterationszähler darzustellen Mit diesem Code haben wir die ersten fünf Songs in der Top-Ten-Liste erhalten die ersten fünf Songs in der Top-Ten-Liste In Übung fünf erhielten wir eine Liste mit Albuminformationen. Unsere Aufgabe bestand darin, jedes Album und jeden Künstler zusammen mit den Songs in diesem Album zu drucken . Dazu mussten wir eine verschachtelte Schleife verwenden. The Outer Loop entpackt die Album-, Künstler- und Songinformationen für jedes Element in der Albumliste Anhand dieser Informationen haben wir den Künstler und das Album innerhalb der äußeren Schleife ausgedruckt den Künstler und das Album innerhalb der äußeren Schleife Um dann jeden Song in der Songliste auszudrucken, den wir im äußeren Loop-Header entpackt hatten, mussten wir einen verschachtelten Loop erstellen Diese innere Schleife druckt jeden Song in der Songliste aus, bevor die äußere Schleife zur nächsten Iteration übergeht Die Ausgabe dieses Codes ist das Album und der Künstler, gefolgt von jedem Song in diesem Album Als wir zu Übung sechs, P A, erhielten wir eine Party-Playlist, in der einige der Liedtitel das Wort California enthielten. Wir mussten nur die Songs in der Playlist drucken , deren Titel das Wort California nicht enthielten. Dazu haben wir einen Loop mit dem variablen Song erstellt, um den Songnamen und einen Platzhalter für die Songdauer zu erfassen , da wir diese Information hier nicht benötigen Dann haben wir innerhalb der Schleife mit dem Schlüsselwort in getestet, ob der Songname die Teilzeichenfolge California enthält ob der Songname die Teilzeichenfolge California Diese Aussage werten wir als wahr aus, wenn die Teilzeichenfolge California irgendwo im Songtitel zu finden ist irgendwo im Songtitel zu finden Wenn der Songname California enthält, möchten wir sofort zur nächsten Iteration des Loops übergehen, ohne die verbleibenden Codezeilen im Loop-Body auszuführen die verbleibenden Codezeilen im Loop-Body Wir verwenden das Schlüsselwort continue. Wenn der Liedname Kalifornien nicht enthält, wird er gedruckt. Aus diesem Grund enthält keiner der Songs in unserer Ausgabe das Wort Kalifornien. In Teil B mussten wir unter Verwendung derselben Party-Playlist jeden Song und die Gesamtdauer der bisher gespielten Musik ausdrucken die Gesamtdauer der bisher gespielten Musik Sobald wir jedoch länger als 32 Minuten Musik abgespielt haben , müssen wir aufhören, Songs zu drucken diesem Zweck haben wir unsere Lösung aus Zu diesem Zweck haben wir unsere Lösung aus Teil A um einen zusätzlichen Dauertest erweitert. Zu Beginn jeder Loop-Iteration haben wir geprüft, ob die Gesamtdauer mehr als 32 beträgt, um festzustellen, ob es an der Zeit ist , die Musikwiedergabe zu beenden Wenn ja, haben wir das Schlüsselwort break verwendet, um sofort aus dem Loop auszubrechen und das Drucken von Songs zu beenden Wenn nicht, haben wir unseren Test in Kalifornien fortgesetzt. Wenn dieser Test bestanden wurde, wurde der Songname gedruckt und die Gesamtdauer wurde erhöht, um dem abgespielten Song Rechnung zu tragen Die Ausgabe zeigt an , dass das Lied Livin' on our Prayer vor der 32-Minuten-Marke der Party abgespielt wurde vor der 32-Minuten-Marke der Party Sobald das Lied zu Ende war, wurde das nächste Lied nicht abgespielt, da Gesamtdauer nun mehr als 32 Minuten betrug In Übung 7, P A, erhielten wir eine Playlist und nutzten einen Vierer-Loop, um eine Liste von Liedtiteln mit mehr als 15 Zeichen zu erstellen . In diesem Loop testeten wir, ob jeder Song die Bedingung für die Titellänge erfüllte. Wenn ja, haben wir den Song zu unserer Liste mit langen Titeln hinzugefügt . Schließlich haben wir in Teil B unseren Code aus Teil A verbessert, haben wir in Teil B unseren Code aus Teil A verbessert indem wir ein Listenverständnis Denken Sie daran, dass ein Listenverständnis mehreren Teilen besteht Es beginnt mit dem Ausdruck. Hier verwenden wir einfach den Songnamen, da wir ihn in der endgültigen Liste der langen Songs haben möchten . Dann spezifiziert das Listenverständnis den Artikel in der Sammlung Das Element erstellt den Loop-Variablen-Song , den wir im Ausdruck verwendet haben Die Sammlung ist die Playlist durch die wir iterieren möchten Schließlich beinhaltet das Verständnis der Liste eine bedingte Aussage Diese bedingte Aussage filtert Songs mit 15 Zeichen oder weniger im Titel heraus Als Ergebnis erhielten wir eine Liste von Songs mit Titeln, die länger als 15 Zeichen sind. Großartig. Sie haben nun umfangreiche Erfahrungen mit der Verwendung von vier Schleifen in verschiedenen Szenarien gesammelt und die Verwendung neuer Konzepte zur Verbesserung ihrer Funktionalität erprobt. Im nächsten Video stellen wir einen neuen Datentyp vor: Wörterbücher Vier Schleifen sind besonders leistungsfähig, wenn Sie mit Wörterbüchern arbeiten also versichert, dass Sie in den kommenden Wörterbuchübungen noch viel mehr Möglichkeiten haben werden , den Umgang mit vier Schleifen zu üben , den 35. Wörterbücher: In früheren Vorlesungen haben wir etwas über Sammlungen wie Listen und Tupel gelernt Sammlungen wie Listen und Unter anderem haben wir gelernt, dass die Elemente dieser Sammlungen anhand aufeinanderfolgender Ganzzahlen, Null, Eins, Zwei usw., indexiert werden Null, Eins, Zwei usw., In vielen Anwendungen ist es völlig angemessen, die Elemente mithilfe aufeinanderfolgender Ganzzahlen zu indizieren mithilfe aufeinanderfolgender Ganzzahlen In anderen Fällen benötigen wir jedoch möglicherweise flexiblere Indizierungsoptionen Wenn mehr Flexibilität erforderlich ist, bietet PyTon eine andere Art von Sammlungen, die als Wörterbücher bezeichnet werden In diesem Video stellen wir das Konzept von Wörterbüchern vor und veranschaulichen, warum sie manchmal anderen Arten von Sammlungen vorzuziehen sind vorzuziehen Angenommen, Sie möchten die E-Mail-Adressen Ihrer drei besten Freunde Bob, Wendy und Cecilia sammeln und speichern die E-Mail-Adressen Ihrer drei besten Freunde Bob, Wendy Um dies zu erreichen, können wir die Tools verwenden, die wir in den vorherigen Vorlesungen gelernt haben , und eine Liste mit E-Mail-Adressen erstellen Dies funktioniert in dem Sinne, dass wir die Daten effektiv gespeichert haben. Die Art und Weise, wie die Werte indexiert werden, ist jedoch nicht so informativ, wie sie sein könnte Nehmen wir zum Beispiel an, dass Sie irgendwann in der Zukunft Ihre Liste aufrufen, um Cecilias E-Mail-Adresse abzurufen Nun, das könnte schwieriger sein als es sollte. Ist Cecilias E-Mail das erste oder zweite Element in der Liste? Ist es Cecilia, die Hasen liebt, oder ist es Bob? Wer benutzt Hotmail im 21. Jahrhundert noch? Wirklich, wir haben mehr Fragen als Antworten. In der Tat wäre diese Sammlung aussagekräftiger, wenn die Werte nach dem Namen unserer Freunde statt nach willkürlichen ganzen Zahlen indexiert unserer Freunde statt nach willkürlichen ganzen Zahlen Und genau das ermöglichen uns PyTON-Wörterbücher Das Erstellen eines Wörterbuchs beginnt mit einem leeren Paar Dann verbinden wir innerhalb dieser Klammern einen Schlüssel mit einem Wert, indem wir die beiden mit einer Spalte verbinden , um dem Wörterbuch weitere Schlüssel-Wert-Paare hinzuzufügen Wiederholen Sie die gleichen Schritte und trennen Sie jedes Paar durch ein Komma Sobald das Wörterbuch erstellt wurde, können wir auf sehr intuitive Weise Informationen daraus abrufen sehr intuitive Weise Informationen daraus Um beispielsweise auf Cecilias E-Mail zuzugreifen, folgen Sie dem Namen des Wörterbuchs in Klammern Anstatt dann den Index des Elements anzugeben , wie wir es für die Liste getan haben, schreiben Sie den Schlüssel Cecilia zwischen die Klammern Und Tara, wir haben abgerufen Cecilias E-Mail-Adresse erfolgreich aus dem Wörterbuch Als Randnotiz können wir mithilfe der G-Methode auch Elemente aus einem Wörterbuch abrufen mithilfe der G-Methode auch Elemente aus einem Wörterbuch Diese Methode verwendet einen Schlüssel als Argument und gibt den entsprechenden Wert zurück. Wie Sie sehen, müssen Sie sich bei der Verwendung eines Wörterbuchs keinen abstrakten Index merken , um auf die gewünschten Informationen zuzugreifen. Aus diesem Grund bieten Wörterbücher oft eine intuitivere Möglichkeit, Informationen zu organisieren Nachdem wir uns nun mit den Grundlagen von Wörterbüchern befasst haben , wollen wir einige Beobachtungen anstellen Erstens müssen die Schlüssel eines Wörterbuches eindeutig sein. In unserem Beispiel bedeutet dies, dass wir keine weitere E-Mail-Adresse hinzufügen konnten , die dem Schlüssel Cecilia zugeordnet Wie Sie sehen können, wird eines der beiden Schlüsselwertpaare abgelehnt, wenn derselbe Schlüssel zweimal in der Definition des Wörterbuchs enthalten ist Diese Einschränkung erstreckt sich jedoch nicht auf die Werte des Wörterbuchs. Die Werte eines Wörterbuchs können dupliziert werden. Wenn wir beispielsweise ein anderes Wörterbuch erstellen, um die physischen Adressen unserer Freunde zu speichern , zu geben ist es kein Problem, Cecilia und Wendy dieselbe Adresse Als Nächstes können verschiedene Datentypen als Schlüssel und Werte verwendet werden. Aber was Schlüssel angeht, sind Zeichenketten bei weitem der am häufigsten verwendete Datentyp. Dementsprechend werden wir in diesem Kurs nur Zeichenketten als Wörterbuchschlüssel verwenden . Was Werte anbelangt, so wird in der Praxis eine Vielzahl von Datentypen verwendet, z. B. Ganzzahlen, Gleitkommazahlen, Boolesche Werte, Listen und sogar Wörterbücher den Übungen werden Sie einige der Möglichkeiten erkunden In den Übungen werden Sie einige der Möglichkeiten erkunden können. Im nächsten Video werden wir zusätzliche Operationen und Methoden in Wörterbüchern untersuchen zusätzliche Operationen und Methoden in Wörterbüchern Darüber hinaus werden wir sehen, wie Wörterbücher zum Speichern komplexer Datenstrukturen verwendet werden können , sehr nützlich ist. Wir sehen uns dort 36. Wörterbücher geführte Beispiele: Nach einer kurzen, aber erholsamen Nacht bereiten sich Jamie und Pike darauf vor, bereiten sich Jamie und Pike den Berg wieder hinunter zu wandern Als sie gerade gehen wollen, fragt Jamie Pike, ob er ihre Heimreise dokumentieren könnte Sie möchte , dass er ihr alle 3 Meilen ein paar Fragen stellt und ihre Antworten aufzeichnet Pike stimmt begeistert zu und erstellt ein System, um Jamies Antworten in seinem Notizbuch zu organisieren Zunächst erstellt Bike Tagebucheinträge für die Meilen, auf denen er Jamie Fragen stellen muss Dann schreibt Bike unter jeden Meileneintrag die Fragen, die er Jamie stellen muss Das ist eine großartige Möglichkeit, Informationen zu organisieren. Wenn Sie genau hinschauen, werden Sie feststellen, dass das Organisationssystem von Pike offenbar über eine zentrale Wertstruktur verfügt, wenn auch mit einer zusätzlichen Schlüsselebene wenn auch mit einer zusätzlichen Schlüsselebene In diesem Szenario sind die Meilenmarkierungen offensichtlich Schlüssel, aber die Fragen scheinen auch Schlüssel zu sein Interessant, wie werden wir das in Piton darstellen? Hier ist ein Hinweis, genauso wie wir eine Liste von Listen erstellen können. Es ist auch möglich, ein Wörterbuch mit Wörterbüchern zu erstellen ein Wörterbuch mit Wörterbüchern Auf diese Weise erhalten wir die zusätzliche Schlüsselschicht . Mal sehen, wie es gemacht wird. Wir beginnen mit einem leeren Wörterbuch und definieren dann die Meilenschlüssel Als Nächstes weisen wir die Werte jedem Meilenschlüssel zugeordnet sind In der Organisationsstruktur von Pike ist der einem bestimmten Meilenschlüssel zugeordnete Wert eine Gruppe von Frage-Antwort-Paaren , die wiederum mit einem Wörterbuch dargestellt werden können mit einem Wörterbuch dargestellt werden Da wir Jamies Antworten derzeit nicht kennen, initialisieren wir die Antwort jede Frage mit einer Indem wir das Frage-Antwort-Wörterbuch für die anderen Meilenschlüssel kopieren , wir die Organisationsstruktur von Pike wieder her Diese Methode zum Erstellen eines Wörterbuch-Wörterbuches funktioniert. Aber das ganze Kopieren und Einfügen ist etwas umständlich Wenn Sie beim Programmieren mehrere Codezeilen kopieren, gibt es wahrscheinlich einen effizienteren Weg, gibt es wahrscheinlich einen effizienteren Weg zu erreichen, was Sie tun möchten Im Folgenden werden wir sehen, wie wir unser Wörterbuchwörterbuch iterativ mithilfe von vier Schleifen erstellen iterativ mithilfe von vier Aber bevor wir beginnen, müssen wir besprechen, wie ein Element zu einem bestehenden Wörterbuch hinzugefügt werden kann, da dies ein wichtiger Baustein ist Nehmen wir zum Beispiel an, wir haben ein leeres Wörterbuch mit dem Namen Mein Wörterbuch und möchten diesem das Schlüssel-Wertepaar My number three hinzufügen . Dies kann erreicht werden, indem dem neuen Schlüssel, Meine Zahl, der Wert drei zugewiesen dem neuen Schlüssel, Meine Zahl, der Wert drei Wenn Sie Ihrem Wörterbuch weitere Schlüssel-Wert-Paare hinzufügen möchten , ist das kein Problem Auf ähnliche Weise können wir dem Wörterbuch zusätzliche Schlüssel-Wert-Paare zuweisen . Okay, nachdem das geklärt ist, wollen wir sehen, wie wir das Kopieren und Einfügen reduzieren und unser Wörterbuch mithilfe einer Schleife erstellen können und Einfügen reduzieren und unser Wörterbuch mithilfe einer Schleife erstellen Wir werden in drei Schritten vorgehen. Zuerst müssen wir das leere Trilog-Wörterbuch erstellen und die Liste der Meilenmarkierungen und Fragen definieren die Liste der Meilenmarkierungen und , die wir als Schlüssel verwenden möchten Zweitens verwenden wir eine Schleife mit den ersten vier Schlüsseln , um die äußere Schlüsselschicht zu erstellen Genauer gesagt schreiben wir eine Viererschleife, die über die Meilenmarkierungen iteriert , und weisen jeder Taste ein leeres Wörterbuch zu An diesem Punkt haben wir die äußere Schlüsselschicht erstellt. Der dritte und letzte Schritt besteht darin, die innere Schlüsselschicht des Wörterbuchs zu erstellen. Dazu erstellen wir eine verschachtelte, aus vier Elementen bestehende Schleife, in der die einzelnen Punkte der Fragenliste wiederholt Im Hauptteil unserer verschachtelten Schleife weisen wir allen Frageschlüsseln zum Kilometerstand eine leere Zeichenfolge zu den Code ausführen, können wir sehen, dass wir das Originalwörterbuch tatsächlich repliziert haben tatsächlich repliziert Die Syntax der Codezeile im Hauptteil der verschachtelten Schleife funktioniert genauso wie im Kontext einer multidimensionalen Liste Genauer gesagt wählt Tra Log Miles das Wörterbuch aus, das dem aktuellen Meilennummernschlüssel zugeordnet dem aktuellen Meilennummernschlüssel Bei der ersten Iteration der äußeren Schleife bezieht sich dies beispielsweise auf das Wörterbuch für die dritte Meile Der zweite Begriff in Klammern bezog sich auf den Schlüssel des verschachtelten Wörterbuchs , dem wir die leere Zeichenfolge zuweisen möchten Dies bedeutet, dass diesem Schlüssel während der ersten Iteration der verschachtelten Schleife der ersten Iteration der verschachtelten Schleife eine leere Zeichenfolge zugewiesen wird Beachten Sie, dass wir durch die Verwendung von vier Schleifen unser Wörterbuchwörterbuch mit viel weniger Aufwand erstellt haben mit viel weniger Aufwand als wenn Sie jeden einzelnen Eintrag manuell eingeben manuell Darüber hinaus ist der Vier-Loop-Ansatz skalierbarer. Wir können unserem Wörterbuch eine weitere Meilenmarkierung oder eine andere Frage hinzufügen, ohne Änderungen an der Vierschleife Fantastisch. Jamie und Pike sind jetzt bereit, ihren Abstieg zu beginnen Nachdem sie sich durch einige steile und tückische Pfade gearbeitet haben, unsere Wanderer Direkt auf Anhieb fragt Pike Jamie, wie es ihr geht, ob sie coole Wildtiere gesehen hat und wie die Bedingungen und Jamie antwortet, dass sie sich voller Energie fühle, dass sie zwei Elche und Elche gesehen habe und dass die Wege steinig und steil waren Um unser Wörterbuch auf der Grundlage von Jamies Antworten zu aktualisieren, schreiben wir zuerst den Namen unseres Wörterbuches, gefolgt von der gefolgt Dadurch erhalten wir Zugriff auf das entsprechende Wörterbuch mit Fragen und Antworten Dann schreiben wir den Schlüssel unserer ersten Frage, für die wir die Antwort aktualisieren möchten und weisen den entsprechenden Wert zu. Wir können dann auf ähnliche Weise die Antworten auf die anderen beiden Fragen aktualisieren . die Zelle ausführen, sehen wir die aktualisierten Werte aller Fragen, die mit Meile Drei verknüpft sind. Wunderbar. Nachdem sie Jamies Antworten aufgenommen haben, die beiden Abenteurer ihre Wanderung den Pine Ridge Mountain hinunter fort ihre Wanderung den Pine Ridge Mountain hinunter Der Weg zwischen Meile drei und sechs ist viel weniger felsig und schlängelt sich durch einen dichten Wald Jamie entdeckt sogar einen großen Bären am Grund einer Schlucht. Als sie den Meilenstein von Meile sechs ihrer Wanderung überqueren, stellt Pike Jamie erneut die Fragen auf der Liste Etwas erschöpft findet Jamie immer noch die Energie, Pikes Fragen zu beantworten Jamie ließ ihn wissen, dass sie müde und hungrig ist, dass sie einen Bären gesehen hat und dass die Wege mit Wurzeln bedeckt Wie Sie wahrscheinlich bemerkt haben, separat abzutippen ist es etwas umständlich, jedes Update unseres Wörterbuches Als wir zuvor Jamies Antworten aufgezeichnet haben, haben wir drei separate Aufgaben ausgeführt Das ist in Ordnung, aber in einigen Fällen möchten wir möglicherweise mehrere Schlüssel-Wert-Paare gleichzeitig aktualisieren können mehrere Schlüssel-Wert-Paare gleichzeitig aktualisieren In solchen Situationen kann uns die Aktualisierungsmethode das Leben erleichtern. Diese Methode verwendet ein Wörterbuch mit den zu aktualisierenden Schlüssel-Wert-Paaren als Argument und ändert das Wörterbuch entsprechend die Zelle ausführen, können wir sehen, dass alle Antworten von Jamie in einer einzigen Anweisung zum Trail-Log hinzugefügt wurden in einer einzigen Anweisung zum Trail-Log hinzugefügt Sobald Jamies Antworten aufgezeichnet wurden, unsere Abenteurer ihre Wanderung fort Auf der letzten Etappe ihrer Reise Bedingungen auf den Wegen erheblich Als Bonus sieht Jamie in der Ferne zwei Bisons, als sie sich dem Ausgangspunkt nähern Als das Paar bei Meile neun das Ende des Trails erreicht, antizipiert Jamie Pikes Fragen und sagt ihm, dass Sie stellt auch fest, dass sie zwei Bisons gesehen hat und dass die Wege In unserem Code können wir erneut die Update-Methode verwenden, um diese neuen Informationen zu unserem Traillog hinzuzufügen diese neuen Informationen zu unserem Traillog Anstatt jedoch jeden Frageschlüssel manuell einzugeben, was die Möglichkeit bietet, einen Tippfehler zu machen, können wir unsere Fragenliste indexieren Das ist nicht nur weniger fehleranfällig, sondern erspart uns auch das Tippen und Ausführen der Zelle. Wir sehen, dass die Fragen, die mit der Schlüsselmeile Neun verknüpft sind, aktualisiert wurden Fantastisch. Sie wissen jetzt, wie Wörterbücher funktionieren und wie man mit ihnen interagiert In den folgenden Übungen üben Sie die Verwendung von Wörterbüchern in verschiedenen Kontexten und lernen einige weitere nützliche Methoden 37. Wörterbücher Übungen: In dieser Arbeitsmappe haben Sie praktische Erfahrungen mit der Verwendung von Wörterbüchern zur Sie haben auch untersucht, wie wirkungsvoll vier Schleifen bei der Arbeit mit Wörterbüchern sein können bei der Arbeit mit Wörterbüchern sein Lassen Sie uns nun gemeinsam die Lösungen durchgehen. In der ersten Übung, Teil A, erhielten wir Informationen über drei Kunstwerke und mussten diese Informationen in einem Wörterbuch speichern. Um das Nachschlagen von Kunstwerken anhand ihres Namens zu vereinfachen, haben wir das Wörterbuch mit den Namen der Kunstwerke als Schlüssel eingerichtet. Für jedes Kunstwerk haben wir die Künstler- und Genreinformationen hinzugefügt, indem ein verschachteltes Wörterbuch mit diesen Attributen als Werten Auf diese Weise sind alle relevanten Informationen für jedes Kunstwerk übersichtlich organisiert und leicht zugänglich In Teil B wurden uns zusätzliche Kunstwerke zur Verfügung gestellt, die wir unserem Wörterbuch hinzufügen Anstatt alle Informationen manuell abzutippen, was ziemlich mühsam wäre, haben wir zusammen mit den bereitgestellten Listen eine Vierschleife genutzt, haben wir zusammen mit den bereitgestellten Listen eine Vierschleife genutzt um die Kunstgalerie effizient und programmgesteuert aufzubauen Dieser Ansatz sparte Zeit und verringerte das Fehlerrisiko. Es gibt mindestens zwei Möglichkeiten, ein Wörterbuch aus den angegebenen Listen zu erstellen. Zunächst verwenden wir die Bereichsfunktion, die eine Zahlenfolge von Null bis zur Länge der bereitgestellten Listen generiert . Anschließend verwenden wir diese Zahlen , um sequentiell auf die Daten an den entsprechenden Indizes in den Listen zuzugreifen die Daten an den entsprechenden Indizes in den Listen Schlüsselwertpaare für unser Kunstgalerie-Wörterbuch zu erstellen Alternativ nutzten wir die ZIP-Funktion, die die drei Listen übersichtlich miteinander kombiniert Durch das Entpacken der Daten direkt in den Vier-Loop-Header konnten wir Schlüssel-Wert-Paare für unser Vier-Loop-Wörterbuch übersichtlicher und lesbarer erstellen unser Vier-Loop-Wörterbuch übersichtlicher und In Teil C erhielten wir zwei weitere Kunstwerke und mussten sie zu unserem Kunstgalerie-Wörterbuch hinzufügen Der beste Weg, dies zu tun, ist die Methode update, da wir damit einen einzigen Methodenaufruf durchführen können , um unser Wörterbuch mit beiden neuen Einträgen zu aktualisieren. Wir haben die neuen Einträge als Schlüsselwertpaare übergeben und Python hat sie zu unserem Kunstgalerie-Wörterbuch hinzugefügt. Alternativ hätten wir die Indexnotation verwenden können, um neue Einträge zu erstellen. Dieser Ansatz ist jedoch mit etwas mehr Aufwand verbunden, da wir zuerst die leeren Wörterbücher initialisieren müssen , bevor wir jeden Wert separat zuweisen Dies ist zwar eine absolut gültige Methode, die Syntax ist im Vergleich zur Aktualisierungsmethode etwas umständlicher umständlicher In Übung zwei, Teil A, hatten wir die Aufgabe, die Namen aller Kunstwerke im Wörterbuch der Kunstgalerie mit nur zwei Codezeilen zu drucken Kunstwerke im Wörterbuch der Kunstgalerie mit nur zwei Codezeilen Um dies zu erreichen, verwenden wir die Keys-Methode zusammen mit einer Vier-Schleife Die Keys-Methode gab uns Zugriff auf die Namen der Kunstwerke und wir druckten dann jeden Namen im Hauptteil der Schleife aus. diesem Ansatz wurden alle Namen der Kunstwerke effizient und mit minimalem Code angezeigt . In Teil B wurden wir gebeten, die Künstlernamen für jedes Werk auszudrucken jedes Werk indem wir die Wörterbuchwerte durchgingen Der Wert, der jedem Schlüssel im Wörterbuch der Kunstgalerie zugeordnet ist, ist ein anderes Wörterbuch Um auf den Namen des Künstlers zuzugreifen, rufen wir den Wert ab, der dem Künstlerschlüssel in diesem verschachtelten Wörterbuch zugeordnet dem Künstlerschlüssel in diesem verschachtelten Wörterbuch Auf diese Weise konnten wir die Namen der Künstler für jedes Kunstwerk effizient drucken die Namen der Künstler für jedes Kunstwerk effizient In Teil C hatten wir die Aufgabe, den Namen des Kunstwerks und des entsprechenden Künstlers zu drucken den Namen des Kunstwerks und des entsprechenden Künstlers Zu diesem Zweck verwenden wir die Methode items, um jedes Schlüsselwertpaar aus dem Wörterbuch in zwei Schleifenvariablen zu entpacken jedes Schlüsselwertpaar aus dem , eine für den Namen des Kunstwerks und eine für die Details Innerhalb der Schleife haben wir den Namen des Kunstwerks gedruckt und auf den Künstlerwert aus dem Detailwörterbuch zugegriffen den Künstlerwert aus dem , um ihn in die Ausgabe aufzunehmen. Dieser Ansatz ermöglichte es uns, jedes Kunstwerk übersichtlich zusammen mit seinem Künstler anzuzeigen Als Nächstes mussten wir in Übung drei in unserem Kunstgaleriewörterbuch nachschauen, ob es das Kunstwerk American Gothic enthielt Um festzustellen, ob American Gothic im Wörterbuch der Kunstgalerie enthalten ist, haben wir eine einfache bedingte Aussage erstellt. Der bedingte Ausdruck verwendete das Schlüsselwort in , um zu überprüfen, ob das Werk im Wörterbuch existiert. Mit diesem Bedingungsblock haben wir herausgefunden, dass American Gothic in der Kunstgalerie zu finden ist. In Übung vier, Teil A, mussten wir American Gothic aus dem Wörterbuch streichen. Dies haben wir mit der Pop-Methode erreicht, die den angegebenen Schlüssel und den zugehörigen Wert aus dem Wörterbuch entfernt . Die Zellenausgabe bestätigte, dass das American Gothic-Schlüsselwertpaar erfolgreich entfernt wurde. In Teil B mussten wir zwei Werke aus unserem Wörterbuch entfernen zwei Werke aus unserem Wörterbuch und ihre Informationen drucken. Das haben wir erreicht, indem vier Schleifen unsere Liste der ausgeliehenen Kunstwerke durchgegangen Für jedes Werk in der Liste der ausgeliehenen Kunstwerke haben wir es aus dem Wörterbuch der Kunstgalerie entfernt, indem den Werknamen als Argument an die Pop-Methode übergeben Da die POP-Methode den Wert zurückgibt , der dem entfernten Schlüssel zugeordnet ist, haben wir diesen Wert in einer Variablen namens Removed Art gespeichert Dieser Wert ist ein Wörterbuch, das die Künstler - und Genreinformationen enthält. In der Print-Anweisung haben wir den Namen des Werks mithilfe der Loop-Variablen work angezeigt und die zugehörigen Künstler- und Genreinformationen gedruckt, und die zugehörigen Künstler- und Genreinformationen gedruckt die im entfernten Kunstwörterbuch gespeichert sind. Da die entfernte Kunstvariable ein verschachteltes Wörterbuch enthält, verwenden wir die G-Methode, um gezielt auf die Künstler- und Genrewerte zuzugreifen und diese zu drucken Dieser Ansatz ermöglichte es uns, die Werke sauber zu entfernen und ihre Details anzuzeigen In Übung fünf haben wir uns schließlich mit einigen schwierigeren Problemen befasst In Teil A nutzten wir das Verständnis von Listen, um das Auffinden und Drucken aller Werke von Leonardo DaVinci in unserem Kunstgaleriewörterbuch zu vereinfachen Auffinden und Drucken aller Werke von Leonardo DaVinci in unserem Kunstgaleriewörterbuch von Leonardo DaVinci in unserem Kunstgaleriewörterbuch Lassen Sie uns aufschlüsseln, wie dieses Listenverständnis funktioniert. Erinnern Sie sich an die Struktur eines Listenverständnisses. Der erste ist der Ausdruck Dies bestimmt, was jedes Element in der resultierenden Liste sein wird. In unserem Fall ist der Ausdruck die Objektvariable, die die Namen der Kunstwerke darstellt. Zweitens definieren wir die Loop-Variablen. Dies sind die Variablen, die wir verwenden, um über die Sammlung zu iterieren Hier haben wir Stück und Details, wobei sich das Stück auf den Namen des Kunstwerks bezieht und die Details sich auf das verschachtelte Wörterbuch beziehen , das die Künstler- und Genreinformationen enthält die Künstler- und Genreinformationen Drittens sind es die Daten, über die wir iterieren. In diesem Fall sind es die Artikel im Wörterbuch der Kunstgalerie Schließlich haben wir die Bedingung, die die Artikel nach bestimmten Kriterien filtert. Wir verwenden die Schleifenvariable Details, um zu überprüfen, ob der Name des Künstlers für das aktuelle Werk Leonardo Da Vinci ist Wenn diese Bedingung erfüllt ist, wird das Werk in die endgültige Ergebnisliste aufgenommen Wenn nicht, wird sie übersprungen. Wenn die Ausführung des Listenverständnisses abgeschlossen ist, erhalten wir eine Liste aller Werke von Leonardo DaVinci Dieser präzise Ansatz reduziert die Anzahl der Codezeilen und erleichtert es, sich auf die grundlegende Logik der Aufgabe zu konzentrieren die grundlegende Logik der Aufgabe In Teil B mussten wir die Anzahl der Kunstwerke von jedem Künstler zählen, und das haben wir mit 24 Loops gemacht In der ersten Schleife haben wir die Werte des Wörterbuchs der Kunstgalerie wiederholt durchgesehen Wörterbuchs der Kunstgalerie , um den Künstler für jedes Werk zu finden Anschließend haben wir überprüft , ob der Künstler bereits im Zusammenfassungswörterbuch des Künstlers aufgeführt Wenn ja, haben wir den mit ihrem Namen verknüpften Wert um eins erhöht den mit ihrem Namen verknüpften Wert um eins erhöht Wenn dies nicht der Fall war, haben wir einen neuen Eintrag für diesen Künstler in das Übersichtswörterbuch des Künstlers aufgenommen diesen Künstler in das Übersichtswörterbuch des Künstlers und die Anzahl auf eins gesetzt In der zweiten Schleife verwenden wir die Methode items, um Schlüssel und Werte des Zusammenfassungswörterbuches des Künstlers durchzugehen Werte des Zusammenfassungswörterbuches des Künstlers Im Loop-Header haben wir die Ausgabe der items-Methode in zwei Variablen entpackt der items-Methode in zwei Variablen den Namen des Künstlers und die Anzahl der damit verbundenen Werke Anschließend druckten wir diese Informationen aus und erhielten so eine klare Zusammenfassung darüber, wie viele Kunstwerke jeder Künstler in der Sammlung hatte Fantastisch. Sie haben jetzt umfangreiche Erfahrung in der Arbeit mit Wörterbüchern gesammelt und Ihre Fähigkeiten im Umgang mit vier Schleifen Ihre Fähigkeiten im Umgang mit Im nächsten Video werden wir untersuchen, wie wir unseren Code interaktiver gestalten können, während wir uns mit dem Umgang mit Benutzereingaben befassen 38. Benutzereingaben: In diesem Kurs haben wir uns bisher darauf konzentriert, Programme zu schreiben , die nicht mit dem Benutzer interagieren, während das Programm läuft. Im Grunde haben wir Code ausgeführt und darauf gewartet, dass die Ausgabe erscheint. In der Praxis sind Benutzereingaben jedoch oft nützlich, um dynamische und reaktionsschnelle Programme zu erstellen . In diesem Video werden wir untersuchen, wie wir unser Programm durch die Integration von Benutzereingaben ansprechender gestalten können. Ich werde mit der Einführung der Eingabefunktion beginnen, die die primäre Methode ist, Benutzereingaben in PyTon anzufordern Die Aufgabe der Eingabefunktion besteht darin , den Benutzer zur Eingabe von Daten aufzufordern, die unser Programm dann verarbeiten kann Schreiben wir zum Beispiel ein einfaches Programm, in dem der Benutzer nach seinem Namen gefragt wird. Dies kann durch einfaches Aufrufen der Eingabefunktion wie folgt geschehen . Fein. Aber ohne Kontext kann es für den Benutzer schwierig sein zu verstehen, welche Informationen das Programm erwartet. Um dem Benutzer zu helfen, können wir der Eingabefunktion als Argument eine Meldung übergeben, die vor der Eingabeaufforderung angezeigt wird. Viel klarer. Sobald der Benutzer die Daten eingegeben und die Eingabetaste gedrückt hat, wird die Eingabe des Benutzers sofort an das Programm zurückgegeben und im Ausgabefeld angezeigt Das ist cool. Aber wenn wir einen Benutzer nach seiner Eingabe fragen, das wahrscheinlich daran, dass wir mit dieser Eingabe etwas in unserem Programm anfangen wollen . Um die Eingaben des Benutzers zu sammeln, weisen wir den Rückgabewert der Eingabefunktion einer Variablen zu. Von dort aus können Sie die Variable im Rest des Programms wie jede andere Variable verwenden. Großartig. Nun, da wir die grundlegenden Merkmale der Eingabefunktion kennen, lassen Sie uns einige zusätzliche Anmerkungen machen. Wenn Python die Zeile ausführt, die die Eingabefunktion enthält, pausiert das Programm zunächst die Zeile ausführt, die die Eingabefunktion enthält, und wartet auf die Eingabe des Benutzers Sobald der Benutzer seine Eingabe eingereicht hat, wird die Ausführung der verbleibenden Codezeilen fortgesetzt Zweitens empfiehlt es sich, klare und präzise Textansagen zu verfassen , damit der Benutzer weiß, welche Informationen er voraussichtlich eingeben wird Drittens gibt die Eingabefunktion unabhängig vom vom Benutzer angegebenen Wert diesen Wert immer als Zeichenfolge zurück Wenn wir zum Beispiel ein anderes Programm schreiben, den Benutzer nach seinem Alter fragt, und er eine Zahl eingibt, wird diese Zahl als Zeichenfolge zurückgegeben. Dies ist in der Praxis kein wirkliches Problem , da Zahlen, die durch Python-Strings dargestellt werden, innerhalb des Programms immer wieder in den entsprechenden Datentyp konvertiert werden können . Es ist nur etwas , worauf man achten sollte. In diesem Zusammenhang empfiehlt es sich , die Benutzereingaben sofort in den erwarteten Datentyp Auf diese Weise können wir mit Sicherheit davon ausgehen, dass die Daten im Rest des Programms vom richtigen Typ Um eine reibungslose Benutzererfahrung zu gewährleisten, empfiehlt es sich außerdem, eine Bestätigung zu geben , dass die Eingabe eingegangen ist. Großartig. Wie Sie gesehen haben, machen Benutzereingaben Programme flexibel sie es dem Benutzer ermöglichen, die Ausführung des Programms in Echtzeit zu steuern. Benutzereingaben führen jedoch manchmal zu zusätzlichen Herausforderungen bei der Programmierung. Beispielsweise können Benutzer ungeeignete Eingaben machen. Im nächsten Video werden wir untersuchen, wie wir mit diesen unerwarteten Eingaben umgehen und unsere Programme robuster machen können 39. Fehlerbehandlung: Im vorherigen Video haben wir gesehen, wie Benutzereingaben während der Ausführung eines Programms angefordert werden. In vielen Anwendungen sind Benutzereingaben erforderlich, um den Ausführungsablauf eines Programms zu bestimmen. Benutzer können jedoch alles in ein Eingabefeld eingeben, was zu unerwartetem Verhalten oder Fehlern führen kann. Um unsere Programme robuster und benutzerfreundlicher zu machen, müssen wir diese Fehler sorgfältig behandeln In diesem Video werden wir sehen, wie wir den Fehlerbehandlungsmechanismus von PyTN verwenden können, um diese Fehler effektiv zu verwalten und zu behandeln Beginnen wir mit einem einfachen Beispiel, um zu zeigen, was passiert, wenn wir Fehler nicht richtig behandeln Stellen Sie sich dieses Programm vor , das den Benutzer zur Eingabe von zwei Zahlen auffordert und deren Inhalt zurückgibt. Dieses Programm funktioniert wie vorgesehen solange der Benutzer wertvolle Wenn der Benutzer jedoch etwas Unerwartetes eingibt, stürzt das Programm ab. Wir können mit Sicherheit davon ausgehen, dass für den durchschnittlichen Benutzer die Meldung auf dem Bildschirm Kauderwelsch ist Empfang einer solchen Ausgabe führt zu einer schlechten Benutzererfahrung Um die Benutzererfahrung zu verbessern, müssen wir diese Fehler, auch Ausnahmen genannt, behandeln , damit der Benutzer verstehen kann, warum seine Eingabe falsch war. Um die SPSC-Fehler abzufangen und zu behandeln, stellt PyTon die Schlüsselwörter try und except Wir verwenden diese Schlüsselwörter wie folgt. Gemäß der try-Anweisung beabsichtigen wir, dass der Code, von dem wir betroffen sind , eine Ausnahme auslösen könnte. Wenn eine Codezeile im TR-Block einen Fehler verursacht, bewegt sich Pyton nach unten zum Except-Block, ohne den Rest des Trilocks auszuführen Im Except-Block schreiben wir Code, der entweder den Fehler behebt oder eine Anweisung für den Benutzer ausgibt Wenn andererseits bei der Ausführung des Tri-Blocks kein Fehler auftritt, wird der Except-Block übersprungen Lassen Sie uns einen Tr-Except-Block in unserem Tient Calculator-Programm implementieren Tr-Except-Block in unserem Tient Calculator-Programm Wir beginnen damit, das Schlüsselwort tri über dem potenziell problematischen Code zu schreiben dem potenziell problematischen Code und die betroffenen Zeilen einzurücken Dann schreiben wir das Schlüsselwort except auf derselben Einrückungsebene wie das Unter diesem Schlüsselwort schreiben wir den Code, den wir ausführen möchten, wenn eine Ausnahme auftritt In diesem Fall genügt es, eine einfache Erklärung auszudrucken , die den Benutzer darüber informiert, dass ein Fehler aufgetreten ist, und Anweisungen enthält, wie der Fehler behoben werden kann, wenn der Benutzer das Programm das nächste Mal ausführt Lassen Sie uns unseren modifizierten Code testen. Wenn der Benutzer Zahlen eingibt, liefert das Programm dieselbe Ausgabe wie zuvor. Wenn der Benutzer andererseits nichtnumerische Daten eingibt, behandelt das Programm den Fehler jetzt besser. Die Ausgabe des Programms teilt dem Benutzer mit, dass ein Fehler aufgetreten ist und dass er bei der nächsten Ausführung des Programms numerische Daten eingeben sollte nächsten Ausführung des Programms numerische Daten Eingabe eines Wortes anstelle einer Zahl ist jedoch nicht der einzige Fehler, den der Benutzer machen kann Wenn wir beispielsweise unser Programm erneut ausführen und Null als Nenner eingeben, gibt unser Programm dieselbe In diesem Fall sind die beiden Eingaben jedoch Zahlen. Diese Fehlermeldung ist verwirrend. Das Problem hier ist, dass wir versucht haben, 12 durch Null zu teilen. Dies führte zu einem Fehler, der dann von unserem Ausnahmeblock behandelt wurde , wiederum die Fehlermeldung auf dem Bildschirm ausgab. Wäre es nicht besser, wenn unser Programm nichtnumerische Daten und die Division durch Null getrennt behandeln könnte ? Nun, das ist möglich, verschiedene Arten von Fehlern getrennt zu erkennen und zu behandeln. Wir brauchen mehrere außer Blöcken. Für jeden Block außer Block müssen wir die Art des Fehlers angeben , den der Block behandeln soll. Um die Art eines Fehlers zu bestimmen, können wir die Ausnahme in einer anderen Zelle replizieren Der Fehler wird in der ersten Zeile der Ausgabe angegeben. In diesem Fall ist der Ausnahmetyp Value Error. Das müssen wir also in die Except-Anweisung schreiben , die diesen Ausnahmetyp behandelt. In ähnlicher Weise replizieren wir den Fehler, um den Typ der Ausnahme zu bestimmen , die mit der Division durch Null verbunden ist Wir stellen fest, dass der Ausnahmetyp ein Divisionsfehler von Null ist. Fügen wir diese Information zur zweiten Except-Anweisung hinzu und ändern wir die Nachricht im Hauptteil des Blocks, sodass sie informativer ist. Großartig. Zusammenfassend lässt sich sagen, diese neue Version unseres Programms den Benutzer sanft zur Eingabe einer Zahl auffordert, wenn er versehentlich etwas anderes eingegeben hat Darüber hinaus weist das Programm die Benutzer an, einen Nenner ungleich Null zu wählen, wenn sie Wenn der Zähler und der Nenner gültig sind, berechnet das Programm schließlich das Zelt. Diese modifizierte Version unseres Programms bietet jetzt eine viel bessere Benutzererfahrung. Großartig. Sie wissen jetzt, wie man robuste Programme schreibt , die Benutzereingaben akzeptieren. Im nächsten Video werden wir einige weitere Situationen untersuchen, in denen eine gute Fehlerbehandlung die Benutzererfahrung verbessern kann. 40. Geführte Beispiele für Benutzereingaben und Fehlerbehandlung: Die zweitägige Wanderung von Jamie und Pike war ein großer Erfolg. Klar, ich habe ein paar Tage gebraucht, um sich zu erholen. Aber jetzt, wo sie gut ausgeruht sind, sind die beiden begierig darauf, einen ehrgeizigeren Weg in Angriff zu Nachdem Pike verschiedene Optionen geprüft hat, schlägt er eine fünftägige Wanderung vor, die sie jeden Abend zu einem anderen Campingplatz Angesichts dieser abenteuerlichen Länge und der zu erwartenden Intensität muss Jimi sicherstellen , dass sie zu Beginn eines jeden Tages die richtige Menge Wasser dabei hat Beginn eines jeden Tages die richtige Menge Wasser dabei Das ist genug, um hydratisiert zu bleiben, aber nicht mehr als nötig, sonst wird sie unnötig zusätzliches Gewicht tragen Zum Glück kann Pike helfen. Er erkundigt sich nach der Dauer von Jamies Wanderung, um die benötigte Wassermenge zu berechnen In ähnlicher Weise können wir Piton verwenden, um einen Benutzer aufzufordern die Länge seiner Wanderung über die Eingabefunktion einzugeben Aus Erfahrung weiß Pike, dass Jamie für eine durchschnittliche Wanderung 24 Unzen Wasser pro Stunde benötigt Daher können wir Jamies Frage beantworten, indem wir die Benutzereingabe in eine Gleitkommazahl umwandeln, die resultierende Zahl mit 24 multiplizieren und das Ergebnis die resultierende Zahl mit 24 multiplizieren und das Ergebnis ausdrucken. Jamie teilt Pike mit , dass sie davon ausgeht, etwa 6 Stunden am Tag wandern zu müssen Pike nimmt unsere Eingaben entgegen und Hoppla, es sieht so aus, als ob Pike Jamies Antwort nicht verarbeiten kann Außerdem ist die Fehlermeldung, die Pike zurückgegeben hat, Pike zurückgegeben Dieser Kauderwelsch bedeutet ihr nichts. Ordnung. Das Berechnungsprogramm von Pike Waters geht nicht sehr gut mit Fehlern um Leider schneidet unser PTN-Programm nicht viel besser ab. Wir erhalten eine ähnliche Fehlermeldung, wenn wir den Code ausführen und dieselbe Eingabe machen Wir wissen jedoch, wie wir dieses Problem in PTN beheben können. , dass wir zur Behandlung von Ausnahmen vom Typ Value Wir wissen, dass wir zur Behandlung von Ausnahmen vom Typ Value den potenziell gefährlichen Code unter einer Try-Anweisung einrücken und dann unter einer Accept-Anweisung eine hilfreiche Fehlermeldung schreiben können den potenziell gefährlichen Code unter einer Try-Anweisung einrücken und dann unter einer Accept-Anweisung eine hilfreiche Fehlermeldung schreiben Wenn Sie die Zelle erneut ausführen und dieselbe Eingabe wie zuvor eingeben, erhalten Sie eine hilfreiche und informative Fehlermeldung In ähnlicher Weise war Pike nach ein wenig Selbstbeobachtung und Selbstverbesserung in der Lage, eine Selbstbeobachtung und Selbstverbesserung in der Lage, eine bessere Fehlerbehandlung zu implementieren Also lädt er Jamie ein, es noch einmal zu versuchen. nicht weiß, was mit unserer ersten Eingabe falsch war, Jamie nicht weiß, was mit unserer ersten Eingabe falsch war, gibt er Pike erneut dieselbe Aber jetzt, in seiner Upgrade-Abneigung, ist Pikes Fehlermeldung für Jamie viel hilfreicher Sie lernt, dass sie eine numerische Anzahl von Stunden eingeben muss eine numerische Anzahl von Stunden Mit einer wertvollen Eingabe antwortet Pike, dass Jamie 144 Unzen Wasser mitbringen muss 144 Unzen Wasser Das ist unglaublich. Jamie wird nun in der Lage sein, die Wasserberechnung an Pike zu delegieren Benutzereingaben und Fehlerbehandlung sind nützliche Tools für die Erstellung dynamischer Programme Wir haben hier zwar die Grundlagen behandelt, wie z. B. die Verwendung der Tri- und Except-Blöcke zur Verarbeitung unerwarteter Eingaben, es gibt noch viel mehr zu behandeln In den nächsten Übungen werden Sie diese Konzepte praktisch anwenden können. Für diejenigen, die mehr erfahren möchten , stehen im Anhang zusätzliche Ressourcen zur Verfügung. 41. Übungen zur Benutzereingabe und Fehlerbehandlung: In dieser Arbeitsmappe haben Sie geübt, Benutzer um Eingaben zu bitten und eventuell auftretende Fehler zu beheben Lassen Sie uns die Lösungen aufschlüsseln. In Übung eins, Teil A, mussten wir englische Wörter mithilfe des Sprachübersetzer-Wörterbuches ins Zonische übersetzen mithilfe des Sprachübersetzer-Wörterbuches ins Zonische Um dies zu erreichen, bitten wir den Benutzer zunächst , das Wort einzugeben, das er übersetzen möchte Als Nächstes versuchen wir im Tri-Block, das Wort im Wörterbuch des Sprachübersetzers zu finden Wörterbuch des Sprachübersetzers und die Übersetzung auszudrucken. Wenn die Wortsuche fehlschlägt, behandeln wir den Fehler im Except-Block. Dadurch wird sichergestellt, dass das Programm fehlende Übersetzungen reibungslos verarbeitet. Das endgültige Programm fordert den Benutzer auf, ein englisches Wort einzugeben , und liefert dann die zonische Übersetzung In Teil B haben wir uns auf die else-Klausel konzentriert und sie verwendet , um unseren Code gegenüber Teil A zu verbessern. Da die Wortsuche einen Fehler verursachen könnte, behalten wir diesen Code im Trilock Da wir nur möchten, dass die Print-Anweisung ausgeführt wird, den Else-Block, wenn die Wortsuche erfolgreich verschieben wir sie in den Else-Block, wenn die Wortsuche erfolgreich ist Denken Sie daran, dass der Else-Block sicherstellt, dass der darin enthaltene Code nur ausgeführt wird, wenn der gesamte Triblock erfolgreich In Übung zwei, Teil A, mussten wir ein Programm zur Umrechnung von Einheiten aus dem Englischen ins Zalonische erstellen Zalonische Dazu bitten wir den Benutzer, die irdische Einheit einzugeben, die er umrechnen möchte Innerhalb eines Triblocks versuchen wir , den Umrechnungsfaktor aus dem Wörterbuch des Messwertübersetzers abzurufen , indem die angegebene Einheit und den Umrechnungsfaktor für Zeichenketten als Schlüssel Wenn die Suche fehlschlägt, fangen wir den resultierenden Schlüsselfehler im Except-Block ab Da das Programm nur nach der umzurechnenden Menge fragen sollte, wenn der Benutzer eine gültige Einheit angibt, betten wir als Nächstes nur nach der umzurechnenden Menge fragen sollte, wenn der Benutzer eine gültige Einheit angibt, einen zweiten Fehlerbehandlungsblock in den ersten Else-Block ein. Der verschachtelte Except-Block behandelt den Wertfehler, auftritt, wenn die Benutzereingabe nicht in einen Float umgewandelt werden kann Schließlich berechnet der LSE-Block die Konvertierung und gibt das Ergebnis die Mengeneingabelogik hier schreiben , wird sichergestellt, dass die Umrechnungen nur dann versucht werden , wenn sowohl die Einheiten - als auch die Mengeneingabe gültig sind Das endgültige Programm fordert den Benutzer auf, eine irdische Einheit und Menge einzugeben, und gibt dann die entsprechende zalonische Umrechnung In Teil B haben wir unseren Code gegenüber Teil A verbessert, indem wir die Benutzereingaben standardisiert Wir verwenden die Methoden Lower und Strip um die Eingaben zu bereinigen und sicherzustellen, dass zusätzliche Leerzeichen oder Abweichungen in der Groß-/Kleinschreibung keine Probleme verursachen Dies macht unseren Code robuster gegen falsche Benutzereingaben und sorgt für eine reibungslosere Benutzererfahrung In Übung drei, P A, mussten wir die Entfernungen in Kilometern in ihre zalonische Entsprechung umrechnen ihre zalonische Entsprechung Um dies zu erreichen, bitten wir den Benutzer zunächst, die Anzahl der Entfernungen einzugeben, die er umrechnen möchte Wir standardisieren diese Eingabe und behandeln den Wertfehler, der bei der Ganzzahlumwandlung auftreten kann Als Nächstes betten wir den verbleibenden Code in einen Else-Block ein , um sicherzustellen, dass er nur ausgeführt wird, wenn der Benutzer eine gültige Eingabe macht Innerhalb des Else-Blocks erstellen wir eine Vier-Schleife, um durch die vom Benutzer angegebene Anzahl von Entfernungen zu iterieren Benutzer angegebene Anzahl von Entfernungen Wir geben die vorherige Eingabe des Benutzers an die Bereichsfunktion weiter, um eine Zahlenfolge von Null bis zu, aber ohne die Anzahl der Entfernungen, zu erzeugen eine Zahlenfolge von Null bis zu, aber ohne die Anzahl der Entfernungen Zusätzlich verwenden wir einen Platzhalter für die Loop-Variable, da sie im Loop-Body nicht verwendet wird. Innerhalb der Schleife fügen wir einen Fehlerbehandlungsblock ein, der den Benutzer zur Eingabe einer Entfernung auffordert und versucht, diese in einen Float umzuwandeln. Wenn die Konvertierung fehlschlägt, wird der daraus resultierende Wertfehler im Except-Block abgefangen. Wenn sie erfolgreich ist, wird die gültige Menge umgerechnet und gedruckt Das endgültige Programm fordert den Benutzer auf, die Anzahl der Entfernungen einzugeben, die er umrechnen möchte, und fragt ihn dann nach einer Entfernung, um diese Anzahl von Malen umzurechnen In Teil B haben wir unseren Übersetzer für die Sprachrichtung Englisch — Zalonisch erweitert und akzeptiert nun auch Phrasen mit mehreren Wörtern Dazu bitten wir den Benutzer zunächst, eine englische Phrase einzugeben und dann die Eingabe zu standardisieren Als Nächstes verwenden wir die Split-Methode, um die Phrase in eine Liste von einzelnen Wörtern aufzuteilen die Phrase in eine Liste von einzelnen Wörtern Dann iterieren wir diese Wortliste mit einer For-Schleife Innerhalb der Schleife versuchen wir, jedes Wort zu übersetzen und die Übersetzung an eine Übersetzungsliste anzuhängen die Übersetzung an eine Übersetzungsliste anzuhängen Wir fügen auch einen Except-Block hinzu, um den Hauptfehler zu behandeln , der auftritt, wenn ein Wort nicht im Wörterbuch gefunden wird Wenn ein Wort nicht übersetzt werden kann, bricht das Programm frühzeitig aus der Schleife , sodass die Übersetzungsliste nicht so lang ist wie die Wortliste. Deshalb müssen wir überprüfen, ob beide Listen die gleiche Länge haben. Wenn ja, bedeutet das, dass der gesamte Satz übersetzt wurde. Und wenn nicht, bedeutet das, dass mindestens ein Wort nicht übersetzt werden konnte. Dieser Ansatz gewährleistet vollständige Übersetzungen und behandelt gleichzeitig unübersetzbare Wörter effektiv Das endgültige Programm fordert den Benutzer zur einer englischen Phrase auf und gibt dann die gesamte ins Zalonische übersetzte Phrase In Übung vier haben wir einige fortgeschrittenere Konzepte gesehen. In Teil A haben wir einen Übersetzer für die Sprachrichtung Zilonisch ins Englische entwickelt. Übersetzen vom Zonischen ins Englische mit dem Sprachübersetzer-Wörterbuch ist etwas komplexer als umgekehrt Das liegt daran, dass zilonische Wörter als Werte im Wörterbuch gespeichert werden , sodass wir sie nicht direkt nachschlagen können, wie wir es bei den englischen Wörtern tun können, bei denen es sich wir es bei den englischen Wörtern tun können, bei denen Stattdessen haben wir eine Vierschleife in Kombination mit der Methode items verwendet , um alle Schlüssel-Wertepaare im Wörterbuch des Sprachübersetzers zu durchlaufen im Wörterbuch des Sprachübersetzers Bei jeder Iteration überprüft das Programm, ob der aktuelle Wörterbuchwert dem zonischen Wort übereinstimmt, das wir übersetzen möchten Wenn im Wörterbuch eine Übereinstimmung gefunden wurde, drucken wir das englische Wort aus. Dabei handelt es sich um den Wörterbuchschlüssel , der dem Zonian-Wort entspricht, was der Wörterbuchwert ist Außerdem setzen wir das Wort gefundene Variable auf true und brechen aus der Schleife Wenn eine Schleife endet, ohne dass ein passendes zonisches Wort gefunden wird, bleibt das Wort gefundene Variable falsch Wir überprüfen den Wert der Variablen „Wort gefunden“ , um festzustellen, ob die Übersetzung erfolgreich war Ist dies nicht der Fall, geben wir einen Fehler mit einem benutzerdefinierten Wert aus, fangen ihn im Except-Block ab und geben eine hilfreiche Fehlermeldung aus. Das endgültige Programm verwendet das zonische Wort als Eingabe und übersetzt es ins Englische In Teil B haben wir unseren Übersetzer für die Sprachrichtung Zonisch ins Englische verbessert unseren Übersetzer für die Sprachrichtung Zonisch ins Englische In dieser Aufgabe werden Konzepte aus Übung 3, Teil B und Teil A dieser Übung, kombiniert Teil B und Teil A dieser Übung, Wie in Übung drei, Teil B, teilen wir die eingegebene Phrase mithilfe der Split-Methode in einzelne Wörter auf und wiederholen jedes Wort in einer Schleife Innerhalb dieser Schleife schreiben wir eine weitere Schleife, um die Werte des Wörterbuches des Sprachübersetzers zu durchsuchen, ähnlich wie Teil A dieser Übung Nachdem die innere Schleife die Suche nach dem Zonian-Wort im Wörterbuch abgeschlossen hat, prüft das Programm, ob das Wort gefunden wurde Wenn das Wort nicht gefunden wurde, geben wir einen Wertfehler mit einer benutzerdefinierten Informationsmeldung Um den Fehler zu behandeln, verwenden wir die Notation as E, um die benutzerdefinierte Fehlermeldung zu erfassen und sie innerhalb des Except-Blocks auszudrucken. Wenn schließlich alle Wörter erfolgreich übersetzt wurden, drucken wir die vollständige Übersetzung. Jetzt ermöglicht uns das Programm, slonische Phrasen einzugeben und ihre englische Übersetzung zurückzugewinnen In Teil C mussten wir mehrere Messungen gleichzeitig konvertieren Dazu bitten wir den Benutzer zunächst, die Messungen als kommagetrennte Liste einzugeben Diese Eingabe teilen wir dann in eine Liste von Einzelmessungen Mithilfe von vier Schleifen iterieren wir jede Messung in der Liste Innerhalb der Schleife versuchen wir, jede Messung in ihre Menge und Einheit aufzuteilen jede Messung in ihre Menge und Einheit Als Nächstes versuchen wir, die Menge in eine Gleitkommazahl umzuwandeln und die entsprechende Einheit im Wörterbuch des Messwertumsetzers nachzuschlagen. Wenn die Einheit nicht gefunden wird, verwenden wir das Schlüsselwort rays innerhalb des Tri-Blocks, um einen benutzerdefinierten Fehler zu erzeugen. Schließlich rechnen wir die Menge von irdischen Einheiten in zonische Einheiten um und drucken die Das endgültige Programm nimmt eine Reihe von durch Kommas getrennten irdischen Messungen vor und rechnet jede einzelne in ihr zlonisches Äquivalent um Fantastisch. Jetzt haben Sie ein solides Verständnis dafür , wie Sie Benutzereingaben nutzen und mit den daraus resultierenden Fehlern umgehen können. In den kommenden Videos erfahren Sie, wie Sie mithilfe von While-Loops die Benutzerinteraktionen in Ihrem Programm weiter verbessern können. 42. While-Loops: In früheren Videos haben wir gesehen, wie leistungsfähig vier Loops sein können , um sich wiederholende Aufgaben zu automatisieren So hilfreich sie auch sind, vier Schleifen haben jedoch Einschränkungen Eine wichtige Einschränkung vier Schleifen besteht darin, dass zu dem Zeitpunkt, zu dem das Programm in die Schleife eintritt, bekannt sein muss, wie oft die Schleife ausgeführt werden soll . Leider ist es in vielen Situationen nicht möglich zu wissen, wie oft eine Schleife ausgeführt werden sollte, bevor wir den Code ausführen. In diesen Situationen sind vier Loops das falsche Tool für den Job. Zum Glück kann stattdessen eine andere Art von Schleifen, die Wil-Schleifen genannt werden, verwendet werden In diesem Video stellen wir diesen Begriff der Wild-Loops vor und besprechen, wann sie anstelle von vier Loops verwendet werden sollten Um die Beschränkung auf vier Loops zu veranschaulichen, erinnern wir uns an das Beispiel des Ladenbesitzers, der Inventarartikel rabattiert In diesem Beispiel möchte der Ladenbesitzer die Preise in einer vorher festgelegten Liste rabattieren Die Länge der Preisliste ist vor der Ausführung der Schleife bekannt und bestimmt die Anzahl der Iterationen, die die Schleife durchführt Aus diesem Grund ist die Verwendung einer Vierschleife in diesem Zusammenhang angemessen Aber lassen Sie uns dieses Beispiel jetzt leicht modifizieren. Angenommen, der Ladenbesitzer kennt die Liste der Artikel nicht , die bei der Ausführung des Programms rabattiert werden müssen bei der Ausführung des Programms rabattiert Stattdessen möchte er den Preis der Artikel, für die er einen Rabatt gewähren möchte, bei der Inventarisierung manuell eingeben den Preis der Artikel, für die er einen Rabatt gewähren möchte, bei der Inventarisierung Nehmen wir außerdem an, der Ladenbesitzer weiß nicht, wie viele Artikel er rabattieren muss. Ordnung. Mal sehen, wie wir unseren Code ändern können, um die Anforderungen des Ladenbesitzers zu erfüllen. Da der Ladenbesitzer uns keine vorab festgelegte Preisliste mehr zur Verfügung stellt, sollten wir sie aus dem Programm entfernen. Dies führt sofort zu einem Problem mit der For-Schleife. Die Iterationsliste ist nicht mehr vorhanden, sodass wir die Iterationsvariable nicht mehr verwenden können . Aber das ist okay. Wir können PyTon immer noch anweisen, einen Code zu wiederholen, indem wir unsere for-Schleife durch eine while-Schleife ersetzen Eine while-Schleife führt den Code in seinem Hauptteil wiederholt aus, solange eine im Loop-Header angegebene Kontrollbedingung wahr Lassen Sie uns abschließend die notwendigen Änderungen am Hauptteil der Schleife Denken Sie daran, dass der Ladenbesitzer die Möglichkeit haben möchte , die Preise für den Rabatt einzugeben. Schreiben wir also eine Eingabeanweisung. Toll, um uns mit der Ausführung einer Wildschleife vertraut zu machen. Lassen Sie uns unser Programm ausführen und ein paar Iterationen verfolgen. Da wir der Variablen should iterate den Wert true zuweisen, geht das Programm in den Hauptteil der Wil-Schleife über und wir werden aufgefordert, einen Preis einzugeben Wenn wir den Preis eingeben, wendet das Programm den Rabatt an und druckt den Verkaufspreis Wenn die letzte Zeile des Wil Oops-Hauptteils erreicht ist, kehrt das Programm zum Header zurück und testet, ob die Kontrollbedingung wahr ist Da der Wert der Variablen Shoot Iterate immer noch wahr ist, ist auch die Kontrollbedingung wahr, und das Programm fährt mit einer zweiten Iteration der Das erklärt, warum wir unmittelbar nach dem Absenden des ersten Preises aufgefordert wurden, einen zweiten Preis einzugeben unmittelbar nach dem Absenden des ersten Preises aufgefordert wurden, einen zweiten Preis . Das ist großartig. Sie müssen den Code nicht erneut ausführen, um zusätzliche Preise zu rabattieren. Das ist die Stärke von Y-Loops. Aber die wachsamen Augen unter Ihnen haben vielleicht bemerkt, dass es ein kleines Problem mit unserem Programm Falls es euch noch nicht aufgefallen ist, denkt kurz über die Ausführung unserer Schleife nach Wann genau wird unser Programm den Loop verlassen? Nun, da wir die Variable should iterate im Hauptteil der Schleife nicht ändern , die Kontrollbedingung im wird die Kontrollbedingung im Loop-Header immer wahr sein Das wiederum bedeutet, dass das Programm die Schleife niemals verlassen wird Oh nein, wir haben eine Endlosschleife geschaffen. Der Benutzer wird bis zum Ende der Zeit aufgefordert, Preise einzugeben . Was werden wir tun? Nun, es besteht kein Grund zur Panik. Wir müssen lediglich einen Mechanismus entwerfen , um die Variable zuzuweisen , wenn wir das Programm beenden wollen Ein üblicher Weg, dies zu erreichen, besteht darin, die Benutzer anzuweisen , eine bestimmte Eingabe einzugeben , wenn sie das Programm beenden möchten Um dies zu implementieren, testen wir zunächst, ob die Benutzereingabe diesem speziellen Wert entspricht Ist dies der Fall, weisen wir den Wert der Variablen should iterate Ist dies nicht der Fall, berechnen wir den Rabatt, geben den Preis aus und fahren der nächsten Iteration Fantastisch. Lassen Sie uns unseren Code erneut ausführen , um zu überprüfen, ob er wie beabsichtigt funktioniert Während der ersten Iteration des Wire Loop fragt unser Programm nach einem Preis Wir geben 24,58 ein und das Programm gibt den ermäßigten Preis Wenn dies der einzige Preis ist, den wir rabattieren möchten, geben wir den Ausgangswert minus eins ein und das Programm wird ordnungsgemäß Unglaublich. Die Art und Weise, wie unser Programm mit unerwarteten Benutzereingaben umgeht, ist jedoch weniger elegant. Wenn ein Benutzer beispielsweise fälschlicherweise eine Zeichenfolge eingibt, stürzt das Programm ab Oh, keine großartige Benutzererfahrung. Aber wir haben diesen Fehler schon einmal gesehen und wissen, wie man damit umgeht. Lassen Sie uns also die Benutzererfahrung verbessern indem wir den gefährlichen Code unter einem Tri-Block einrücken und den Wertfehler in einem Except-Block behandeln . Nett. Während die vorherige Version unseres Programms allergisch gegen Katzen war und keine Gnade walten ließ , wenn wir auf dieses Wort stießen, ist die neue Version unseres Codes viel nachsichtiger. Wenn der Benutzer einen Fehler macht, kann sich das Programm erholen und leitet den Benutzer weiter, eine Werteingabe in ein neues Eingabefeld einzugeben Viel besser. Lassen Sie uns zum Abschluss dieses Videos einen Schritt zurücktreten und den Unterschied zwischen vier Loops und Wild Loops in unserem Kopf zementieren . Wie Sie in diesem Video gesehen haben, eine wichtige Einschränkung vier Schleifen darin, dass wir wissen müssen wie viele Iterationen die Schleife durchführen wird , bevor ihre Ausführung beginnt Diese Bedingung ist in vielen, wenn nicht den meisten Anwendungen erfüllt vielen, wenn nicht den meisten Anwendungen Es gibt jedoch Situationen, in denen wir nicht wissen können, wie viele Iterationen der Schleife ein Programm benötigen wird Dies ist häufig bei der Arbeit mit Benutzereingaben und auch in einigen anderen Kontexten In diesen Fällen ist diese Art von Schleife aufgrund der unbestimmten Natur der Wil-Schleifeniterationen die beste Wahl Wile-Loops sind leistungsstarke Tools, die Python zum Schreiben von effizientem und einfachem Code bereitstellt Im nächsten Video werden wir ein anderes Szenario untersuchen, in dem Wil-Loops hilfreich sein können 43. While-Loops-geführte Beispiele: Jimmie und Pike sind fast bereit, sich auf ihr fünftägiges Abenteuer zu begeben Um sicherzustellen, dass ihr während der Wanderung nicht das Wasser ausgeht, beabsichtigt Jamie, sorgfältig zu verfolgen, wie viel Wasser Jedes Mal, wenn Jamie Durst hat, teilt sie Pike mit, wie viel Wasser sie trinken möchte, und Pike berechnet die verbleibende Pikes früherer Empfehlung folgend, wird sie den ersten Tag der Wanderung mit 144 Unzen Wasser beginnen wird sie den ersten Tag der Wanderung mit 144 Unzen Wasser beginnen. Lassen Sie uns ein PyTON-Programm schreiben , das Pikes Aufgabe erfüllen kann Wir beginnen damit, eine Variable zu erstellen , um die verbleibenden Unzen Wasser zu speichern und sie auf 144 zu initialisieren da dies das Wasservolumen ist, mit dem JM unsere Reise beginnt Von dort aus muss unser Programm den Benutzer nach der Menge Wasser fragen er trinken möchte, und die Unzen Wasser entsprechend anpassen Da es schwierig ist, genau vorherzusagen , wie oft der Benutzer Wasser trinken wird, ist es das Richtige, den Benutzer innerhalb einer Zeitschleife nach seiner Eingabe zu Im Moment lassen wir die Kontrollbedingung der Schleife leer, aber wir werden darauf zurückkommen, wenn wir den Hauptteil der Schleife herausgefunden haben . Sobald der Benutzer eingegeben hat wie viel Wasser er trinken möchte, befinden wir uns in einer von zwei Situationen. Eine Möglichkeit ist, dass noch genug Wasser übrig ist , um die gewünschte Menge zu trinken. In diesem Fall subtrahieren wir die eingegebene Menge, ordnen die verbleibenden Unzen neu und drucken das Ergebnis unserer Berechnung aus Ist dies nicht der Fall, kann der Benutzer höchstens die verbleibende Menge Wasser trinken Dementsprechend teilen wir dem Benutzer wie viel Wasser er tatsächlich trinken kann, teilen ihm mit, dass er jetzt kein Wasser mehr hat, und weisen den verbleibenden Unzen Null zu Fantastisch. Nachdem wir nun den Hauptteil der Schleife erstellt haben, wir zum Header der Schleife zurück um die Kontrollbedingung zu schreiben. Ich werde argumentieren, dass das Programm den Benutzer nur fragen sollte , wie viel er trinken möchte , wenn noch Wasser übrig ist. Ansonsten ist es einfach unhöflich. Dementsprechend testen wir unter kontrollierten Bedingungen, ob eine absolut positive Wassermenge übrig bleibt Solange diese Bedingung erfüllt ist, ist es sinnvoll, den Benutzer zu fragen. Wenn diese Bedingung jedoch falsch ist, ist es an der Zeit, die Schleife zu verlassen. Jetzt ist es natürlich möglich, dass der Benutzer seine Wanderung beendet bevor ihm das Wasser ausgeht. Damit der Benutzer das Programm ordnungsgemäß beenden kann, können wir ihn auffordern, den Wert minus eins einzugeben, um das Programm zu Wenn der Benutzer einen Ausgangswert eingeben darf , sollte unser Code als Erstes prüfen ob die Benutzereingabe dem Ausgangswert entspricht Ist dies der Fall, geben wir die Anzahl der verbleibenden Unzen aus und verwenden das Schlüsselwort brake, um die Schleife zu beenden Wenn nicht, führen wir den Rest des Programms wie zuvor Beachten Sie, dass eine Break-Anweisung eine bequeme Methode ist , um die Anfrage des Benutzers, das Programm zu beenden, zu bearbeiten . Aber wie wir im letzten Video gesehen haben, ist dies nicht der einzige Weg. Fantastisch. Jamie und Pike sind jetzt bereit, sich auf den Weg zu machen Ungefähr eine Stunde nach Beginn ihrer Wanderung Jamie Durst Die beiden gehen vorbei, als Jamie 19 Unzen Wasser trinkt. Wenn wir unseren Code ausführen und 19 Unzen eingeben, erhalten wir, dass noch 125 Unzen übrig sind Jamie und Pike machen sich dann wieder auf den Weg und setzen ihre Wanderung fort Unterwegs trinkt Jamie 25 Unzen an der Weggabelung, 32 Unzen an der Spitze eines steilen Anstiegs und 18 Unzen, während er über einen und 18 Ein paar Stunden nach Beginn der Wanderung machen die beiden eine Mittagspause, während der Jamie weitere 27 Unzen der knappen Flüssigkeit konsumiert. Unzen der knappen Flüssigkeit konsumiert. Etwa eine Stunde nach dem Mittagessen halten die beiden in der Nähe eines Flusses an, um sich auszuruhen Jamie erzählt Spike , dass sie beabsichtigt, 25 Unzen Wasser zu trinken Leider ist das ein bisschen mehr als das, was verfügbar ist. Infolgedessen teilte Pike ihr mit, wie viel sie tatsächlich trinken kann , und hört auf, sie nach weiteren Informationen zu fragen Zum Glück sind Jamie und Pike nur ein paar Minuten Sie können nachfüllen, wenn sie Wie Sie gesehen haben, können Wi-Loops die Benutzererfahrung bei Programmen, die Benutzereingaben verwenden, erheblich verbessern Benutzererfahrung bei Programmen, die Benutzereingaben verwenden In den folgenden Übungen haben Sie die Möglichkeit, die Verwendung von Wi-Loops zu üben, um Programme mit einer angenehmen Benutzererfahrung zu erstellen. 44. While-Loops-Übungen: In dieser Arbeitsmappe haben Sie die Verwendung von Wile-Loops in komplexeren Situationen geübt Wile-Loops in komplexeren Situationen Lassen Sie uns nun gemeinsam die Lösungen durchgehen. In Übung eins haben wir ein Programm entwickelt, das nach Benutzereingaben fragt , um die Anzahl der Äpfel im Inventar zu verfolgen . Zunächst fordert das Programm den Benutzer auf, die Anzahl der Äpfel einzugeben, die er auf den Markt gebracht hat. Die Eingabe wird dann sofort in eine Ganzzahl umgewandelt, die für zukünftige Berechnungen verwendet werden in eine Ganzzahl umgewandelt, die für zukünftige Berechnungen verwendet Das Programm wechselt dann in eine Wile-Schleife, die läuft, solange noch Äpfel übrig sind Innerhalb der Schleife wird der Benutzer aufgefordert, die Anzahl der in einer Transaktion verkauften Äpfel einzugeben Auch hier wird diese Eingabe in eine Ganzzahl umgewandelt, um sicherzustellen, dass sie für zukünftige Berechnungen verwendet werden kann. Die Variablen „Verkaufte Äpfel“ und „ Verbleibende Äpfel“ werden dann aktualisiert, um die Anzahl der im Inventar verbleibenden Äpfel widerzuspiegeln . Anschließend drucken wir den Inhalt dieser Variablen aus. Sobald keine Äpfel mehr übrig sind, wird die Wile-Schleife beendet Das endgültige Programm fordert den Benutzer auf, die Anzahl der Äpfel einzugeben, die er auf den Markt gebracht hat, und ermöglicht es ihm dann, die Anzahl der verkauften Äpfel einzugeben , bis die Äpfel ausverkauft sind In Übung zwei haben wir ein Programm geschrieben, mit dem die Menge an Weizen und Gerste nachverfolgt werden kann, bis der Benutzer jeweils 20 Einheiten hat Um die gekauften Mengen nachzuverfolgen , erstellen wir Gegenvariablen Anschließend verwenden wir eine Wile-Schleife mit den Bedingungen Weizen weniger als 20 oder Gerste weniger als 20, um sicherzustellen, dass die Schleife so lange fortgesetzt wird, wie entweder die Weizen- oder die Gerstenvariablen unter 20 liegen Innerhalb der Schleife fordern wir den Benutzer auf, die Menge an Weizen und Gerste einzugeben die Menge an Weizen und Gerste er im Rahmen einer Transaktion erworben hat In der ersten Übung konvertieren wir diese Eingaben ganze Zahlen , damit wir sie in zukünftigen Berechnungen verwenden können Die Weizen- und Gerstenzähler werden dann aktualisiert, um die neuen Gesamtwerte widerzuspiegeln, und wir drucken die aktuellen Zählungen Die Schleife endet, wenn sowohl die Weizen - als auch die Gerstenvariablen 20 oder mehr erreichen Das endgültige Programm fordert Benutzereingaben auf, um die Menge an gewonnenem Weizen und Gerste verfolgen zu können. In Übung drei, Teil A, haben wir ein Programm zur Verwaltung des Rekrutierungsprozesses für neue Gildenmitglieder geschrieben . Unser Ziel war es, drei Mitglieder zu rekrutieren, aber wir wussten nicht, wie viele Kandidaten wir bewerten müssten, um dieses Ziel zu erreichen Wir lösen dieses Problem mithilfe von verschachtelten Schleifen. Nachdem wir die Anzahl der verbleibenden Positionen auf drei initialisiert haben, geht unser Programm in eine While-Schleife über, die läuft, solange noch Positionen übrig sind In dieser Schleife legen wir zunächst Zähler für den aktuellen Kandidaten fest, ob die Prüfung bestanden wurde Als Nächstes erstellen wir eine verschachtelte Schleife mit vier verschachtelten Schleifen , um die Ergebnisse der Studie vom Benutzer anzufordern Wir verwenden die Bereichsfunktion im Loop-Header, um diese beiden Versuche zu durchlaufen In der Vorschleife bitten wir den Benutzer, das Ergebnis des Versuchs einzugeben Wenn der Kandidat die Prüfung bestanden hat, erhöhen wir den Zähler für die bestandene Prüfung Nachdem beide Studien abgeschlossen sind, testen wir, ob der Zähler für die bestandene Prüfung gleich zwei ist Ist dies der Fall, haben wir einen geeigneten Kandidaten gefunden und die Anzahl der verbleibenden Stellen wird reduziert. Andernfalls weisen wir auf einen Fehler hin, indem wir eine Nachricht drucken. Das endgültige Programm ermöglicht es dem Benutzer einzugeben, ob eine Prüfung bestanden wurde, verfolgt die Anzahl der verbleibenden Mitgliederplätze und verlässt das Programm, sobald drei Mitglieder rekrutiert wurden In Teil B haben wir unseren Kodex aus Teil A geändert, um den neuen Rekrutierungsregeln Rechnung zu tragen Unser Programm enthält jetzt eine neue Variable: Versuche, die laufende Anzahl der Versuche eines Bewerbers nachzuverfolgen . Die Variable muss für jeden neuen Kandidaten zurückgesetzt werden, also platzieren wir sie innerhalb der äußeren Schleife, aber außerhalb der inneren Schleife. Als Nächstes verwenden wir eine Wile-Schleife, um zu testen, ob der Kandidat noch Versuche bestehen muss und ob noch Versuche übrig Diese Schleife läuft, solange die Anzahl der Erfolge weniger als zwei und die Anzahl der Versuchsversuche kleiner oder gleich fünf ist Beachten Sie, dass diese While-Schleife nur zweimal oder sogar fünfmal wiederholt je nach Erfolg des Kandidaten Innerhalb der Schleife fragen wir immer noch nach dem Versuchsergebnis und erhöhen die Anzahl der bestandenen Versuche entsprechend Jetzt erhöhen wir jedoch auch die Anzahl der Versuche. Nach der inneren Schleife folgen wir derselben Logik wie in Teil A, um zu bestimmen, ob der Kandidat Gildenmitglied werden kann Das endgültige Programm wird beendet sobald zwei Mitglieder rekrutiert wurden In Übung vier haben wir uns mit Endlosschleifen befasst. In Teil A haben wir die Wil True-Syntax verwendet , um den Benutzer kontinuierlich zur Eingabe der Anzahl der verkauften Witze aufzufordern. In dieser Wile-Schleife inkrementieren wir die Variable „ Verkaufte Witze“ auf der Grundlage der Benutzereingabe und geben die laufende Anzahl aus Da es keine Ausgangsbedingung gibt, haben wir quasi eine Endlosschleife geschaffen In Teil B beheben wir dieses Endlosschleifenproblem, indem wir eine Ausgangsbedingung hinzufügen und das Schlüsselwort break verwenden. Wenn der Benutzer nun eine negative Eins eingibt, wird die Schleife unterbrochen und sofort beendet. Wenn ein Benutzer etwas anderes als eine negative Zahl eingibt, erhöhen wir trotzdem die Variable witz, wie wir es in Teil A getan haben. Das endgültige Programm fragt weiterhin nach der Anzahl der verkauften Witze, bis der Benutzer negativ eins eingibt In Übung fünf, Teil A, verwenden wir eine While-Schleife, um Artikel aus einer Inventarliste zu entfernen Das Inventar mit Schleifenzuständen ist eine Kurzform, um zu testen, ob die Liste leer ist Dies entspricht der Verwendung des längeren N-Inventars, das größer als Null ist, als Kontrollbedingung Anschließend testen wir, ob sich der Artikel im Inventar befindet. Ist dies der Fall, verwenden wir die Methode remove, um ihn zu entfernen. Ist dies nicht der Fall, benachrichtigen wir den Benutzer. Das endgültige Programm fordert den Benutzer weiterhin auf, einen Artikel einzugeben, bis keine Artikel mehr im Inventar vorhanden sind. Schließlich haben wir in Teil B zwei gleichwertige Programme entwickelt, um den Tagesgewinn des Händlergeschäfts eines Benutzers nachzuverfolgen den Tagesgewinn des Händlergeschäfts eines Benutzers Im ersten Programm testen wir anhand einer Kontrollbedingung, ob der aktuelle Gewinn unter dem Zielgewinn liegt Diese Bedingung stellt sicher , dass die Schleife nicht mehr läuft, sobald der Benutzer genug Geld für den Tag gespart hat. Innerhalb der Schleife fragen wir den Benutzer nach den Transaktionsdetails und addieren dann den Transaktionsgewinn zum aktuellen Gewinn. Nach der Aktualisierung des aktuellen Gewinns testen wir, ob er unter dem Zielgewinn liegt. Ist dies der Fall, informieren wir den Nutzer über seinen bisherigen kumulierten Gewinn und geben an, wie viel mehr noch benötigt wird , um das Ziel zu erreichen Wenn der Gewinn das Ziel erreicht oder übersteigt, benachrichtigen wir den Benutzer darüber, dass er sein Ziel erreicht hat Im zweiten Programm verwenden wir die Wild True-Syntax in Kombination mit dem Schlüsselwort break, Kombination mit dem Schlüsselwort break um dasselbe Ergebnis zu erzielen. Beide Programme fordern den Benutzer weiterhin zur Eingabe Transaktionsinformationen bis der angestrebte Gewinn erreicht ist. Großartig. Sie haben jetzt gesehen, wie Wile-Loops in Kombination mit den Konzepten verwendet werden können, die wir bisher in diesem Kurs gelernt haben In den nächsten Videos werden wir unsere Programmier-Toolbox erneut erweitern, indem mit einem der leistungsfähigsten Programmierkonzepte, den benutzerdefinierten Funktionen, benutzerdefinierten Funktionen 45. Benutzerdefinierte Funktionen: In früheren Vorlesungen haben wir mehrere der in PyTN integrierten Funktionen wie print, len und input verwendet in PyTN integrierten Funktionen wie print, len und Diese Funktionen halfen uns allgemeine Aufgaben zu erledigen, ohne den Code selbst schreiben zu müssen , und sorgten dafür unsere Programme organisiert und lesbar waren Leider wurde PTN nicht mit allen Funktionen ausgestattet, die in jeder Situation erforderlich sind Wenn Sie beispielsweise ein Architekt sind, der häufig die Fläche geometrischer Formen berechnen muss, haben Sie Pech gehabt In Bton gibt es keine eingebaute Funktion, mit der die Fläche eines Dreiecks oder eines Rechtecks berechnet werden kann Fläche eines Dreiecks oder eines Rechtecks berechnet Zum Glück ermöglicht PTN Programmierern, ihre eigenen Funktionen zu definieren, die als benutzerdefinierte Funktionen bezeichnet werden Benutzerdefinierte Funktionen sind vorkonfigurierte Codeteile, die eine bestimmte Aufgabe ausführen können, z. B. die Berechnung der Fläche eines In diesem Video erfahren Sie, wie Sie Ihre eigenen Funktionen definieren und wie diese Funktionen einem Programm einen Mehrwert verleihen können Ein Architekt hat den Grundriss eines neuen Gebäudes entworfen , das Zickzack genannt wird Er muss nun die Fläche der drei Zonen des Gebäudes berechnen , um den Bodenbelag zu ordnen Leider hat der Architekt seinen Geometriekurs nicht bestanden und nie gelernt, wie man die Fläche eines Rechtecks anhand seiner Länge und Breite berechnet Lassen Sie uns ihm bei seiner Arbeit helfen, indem wir eine Pyton-Funktion erstellen , die diese Berechnung durchführt In Pyton beginnt die Definition einer neuen Funktion mit dem Schlüsselwort death Auf dieses Schlüsselwort folgt der Name, den wir unserer Funktion geben möchten Wählen Sie bei der Benennung von Funktionen aussagekräftige Namen, die die Rolle der Funktion widerspiegeln, genau wie bei Variablen Außerdem müssen Funktionsnamen denselben Benennungsregeln folgen wie Variablen In unserem Beispiel beschreibt der rechteckige Bereich mit dem Namen, was unsere Funktion tun soll, und hält sich an die vier Benennungsregeln Also werden wir damit weitermachen. Als Nächstes folgen wir dem Namen der Funktion mit einem Paar Klammern, zwischen denen wir Variablennamen für die Eingaben angeben , die eine Funktion benötigt, um ihre Aufgabe zu erfüllen Da die Länge und Breite eines Rechtecks zur Berechnung seiner Fläche benötigt werden, schreiben wir Variablennamen für diese beiden Eingaben trennen sie durch ein Wir schließen den Header der Funktionsdefinition mit einer Spalte Als Nächstes schreiben wir in den eingerückten Hauptteil der Funktion die Operationen, die erforderlich sind, um die Fläche der Rechtecke anhand der Eingaben zu berechnen Hier multiplizieren wir die Länge mit der Breite und weisen das Ergebnis der Flächenvariablen zu Wir haben jetzt zwar die gewünschte Ausgabe unserer Funktion berechnet, sind aber noch nicht ganz fertig. Um den berechneten Bereich dem Programm, das unsere Funktion aufruft , zur Verfügung zu stellen, müssen wir eine spezielle Anweisung verwenden, die als Return-Anweisung bezeichnet wird. Diese Anweisung besteht aus dem Schlüsselwort return, gefolgt von den Daten, die wir ausgeben möchten. Ohne eine Rückgabeanweisung das Ergebnis unserer Berechnung verloren, wenn die Ausführung der Funktion abgeschlossen ist. Wir werden bald mehr darüber sagen. Fantastisch. Nachdem wir die Funktion für den rechteckigen Bereich definiert haben, können wir sie wie jede eingebaute Funktion im Rest unseres Programms verwenden . Um unsere Funktion aufzurufen, schreiben wir ihren Namen, gefolgt von Klammern, die die Länge und Breite des Rechtecks enthalten In diesem Stadium ist es wichtig, zwischen den Variablennamen im Header der Funktionsdefinition und den im Funktionsaufruf verwendeten Werten zu unterscheiden Header der Funktionsdefinition und den im Funktionsaufruf verwendeten Werten Wie Sie bereits wissen, werden die an eine Funktion übergebenen Werte Argumente genannt. In diesem Beispiel sind die Argumente 100 und 140. Die Variablennamen in der Länge und Breite der Kopfzeile werden als Funktionsparameter bezeichnet. Parameter sind Platzhaltervariablen, die die Argumentwerte erhalten , wenn die Funktion aufgerufen wird. Um es zusammenzufassen Während sich sowohl Argumente als auch Parameter auf Funktionseingaben beziehen, sind Argumente die tatsächlichen Werte, die in Funktionsaufrufen verwendet werden Als Parameter sind die Variablennamen in der Funktionsdefinition verwendet werden. Okay, jetzt, da wir die Terminologie geklärt haben, lassen Sie uns das Programm ausführen, um unsere rechteckige Flächenfunktion in Aktion zu sehen , die die Fläche von Zone eins berechnet. Wir erhalten 14.000 Quadratfuß. Das ist wahrscheinlich keine Überraschung für die Mathematiker unter Ihnen, aber für unseren mathematisch anspruchsvollen Architekten ist diese Funktion ein Lebensretter aber für unseren mathematisch anspruchsvollen Architekten ist diese Funktion ein Lebensretter ist diese Funktion Er kann jetzt problemlos die Flächen beliebiger Gebäudezonen berechnen , ohne die zugrundeliegende Mathematik zu verstehen Für den Architekten wirkt die Funktion der rechteckigen Fläche wie eine Blackbox. Eingaben werden bereitgestellt, Ausgaben werden empfangen und die internen Berechnungen bleiben unsichtbar. Wie wir bei integrierten Funktionen gesehen haben, dieses als Abstraktion bekannte Konzept ein entscheidender Vorteil der Verwendung von Funktionen Durch die Erstellung benutzerdefinierter Funktionen können wir eine Reihe von Operationen in einer einzigen wiederverwendbaren Codeeinheit Diese benutzerdefinierten Funktionen können Operationen beliebiger Komplexität kapseln, wodurch die Lesbarkeit des Codes verbessert wird und das Umschreiben gängiger Operationen entfällt das Umschreiben gängiger Einmal erstellt und getestet, können benutzerdefinierte Funktionen als Blackboxen verwendet werden , sodass sich die Benutzer auf Eingaben und Ausgaben statt auf die internen Abläufe konzentrieren Ausgaben statt müssen Programmierer jedoch diese Funktionen effektiv zu entwerfen und zu implementieren, den Funktionsausführungsprozess von Pton verstehen Funktionsausführungsprozess von Pton Dazu gehört auch, zu verstehen, wie PyTon Parameter und Variablen nicht nur während der Ausführung einer Funktion verwaltet Parameter und Variablen nicht , sondern auch Um dieses Konzept zu veranschaulichen, wollen wir den Code nachverfolgen, der die Fläche der ersten Zone berechnet Die ersten Codezeilen definieren die Funktion der rechteckigen Fläche Nach der Ausführung erkennt PyTon den rechteckigen Bereich als eine Funktion mit Wert beliebigen Stelle im nachfolgenden Code aufgerufen werden kann Das Programm ruft dann diese Funktion mit den Argumenten 100 und 140 Wenn dieser Aufruf erfolgt, erstellt PyTon zunächst zwei Variablen, Länge und Breite, und weist ihnen die Werte 100 bzw. 140 Dann führt PTN den Funktionskörper aus, multipliziert Länge mit Breite und weist das Ergebnis einem neuen Variablenbereich zu Schließlich führt PyTon die Return-Anweisung aus, übergibt den berechneten Bereich zurück an das Programm und verwirft alle in der Funktion erstellten Variablen, einschließlich übergibt den berechneten Bereich zurück an das Programm und verwirft alle in der Funktion erstellten Variablen, einschließlich der Parameter. Das ist ein wichtiger Punkt. Daher führt jeder Versuch, mit Bereichsvariablen außerhalb der Funktion auf die Länge zuzugreifen Bereichsvariablen außerhalb , zu einem Namensfehler. Das liegt daran, dass PyTon diese Variablen für nicht existent hält , sobald das Programm die Funktion beendet hat Wenn wir dagegen eine Print-Anweisung in die rechteckige Bereichsfunktion selbst aufnehmen eine Print-Anweisung in , greift PyTon erfolgreich auf den Wert der Bereichsvariablen zu und zeigt ihn an Dieses Verhalten unterstreicht ein wichtiges Konzept in der Programmierung, das als Variablenbereich bezeichnet In einer der nächsten Vorlesungen werden wir uns mit den Feinheiten des variablen Gültigkeitsbereichs befassen Aber bevor wir darauf eingehen, wollen wir uns darauf konzentrieren, mehr praktische Erfahrungen mit der Definition und Verwendung von Funktionen zu sammeln mit der Definition und Verwendung von Funktionen zu Im folgenden Video werden wir einige weitere Funktionen erstellen, um eine Vorstellung davon zu bekommen, wie und wann wir sie in unseren Programmen effektiv einsetzen 46. Benutzerdefinierte Funktionen – geführte Beispiele: Jimmy und Pike haben jetzt den ersten Tag ihrer fünftägigen Wanderung hinter Während sie sich am Lagerfeuer niederlassen, lassen sie das Abenteuer des Tages Revue passieren Jamie vertraut Pike an, dass die Tageswanderung schwieriger war als erwartet Sie verbringen deutlich mehr Zeit auf dem Trail und konsumieren mehr Nahrung, als Pike ursprünglich vorhergesagt hatte Um sicherzugehen, dass sie genug Energie und Vorräte hat , um die Reise zu beenden, würde Jimmy gerne bessere Schätzungen für den Rest ihrer Reise einholen für den Rest ihrer Reise einholen Pike möchte gerne helfen und bereitet sich darauf vor, seine Prognoseberechnungen auf der Grundlage von Jamies Angaben zu verfeinern seine Prognoseberechnungen auf der Grundlage von Jamies Während wir ihn dabei begleiten, werden wir sehen, wie Funktionen die Organisation und Lesbarkeit von Code optimieren können Code optimieren Um genauere Schätzungen zu erstellen, wird Pike Daten über die Entfernung, die Temperatur und den Schwierigkeitsgrad der Wanderung in seine Berechnungen einbeziehen Temperatur und den Schwierigkeitsgrad Beginnen wir mit der Schätzung der voraussichtlichen Dauer der Wanderung. Unter typischen Bedingungen hält Jamie ein gleichmäßiges Tempo von 3 Meilen pro Stunde ein, was als Grundlage für die Berechnung der Wanderdauer dient für die Berechnung der Wanderdauer Herausforderndes Gelände oder hohe Temperaturen können Jamies Fortschritt jedoch hohe Temperaturen können erheblich verlangsamen Um diese Variablen zu berücksichtigen, müssen wir Anpassungsfaktoren berechnen und unsere Basisschätzung ändern Lassen Sie uns nun den gesamten Kalorienverbrauch einer Wanderung berechnen . Als Ausgangswert verbrennt Jamie bei ungefähr 160 Kalorien pro typischen Wanderbedingungen ungefähr 160 Kalorien pro Stunde Allerdings erhöht das herausfordernde Gelände Jamies Energieleistung, sodass wir diese Basisrate anpassen müssen Um den Gesamtkalorienverbrauch zu berechnen, modifizieren wir zunächst die stündliche Kalorienverbrennungsrate auf der Grundlage der Geländeschwierigkeit multiplizieren diese angepasste Rate dann mit der geschätzten Wanderdauer Lassen Sie uns abschließend unsere Schätzungen in einem übersichtlichen, benutzerfreundlichen Format präsentieren . Fantastisch. Wenn wir unseren Code ausführen, generiert er genaue Schätzungen für die morgige Wanderdauer und den entsprechenden Energieverbrauch, den Jamie erwarten kann Und das ist die gewünschte Ausgabe. Das ist gut. Die derzeitige Struktur unseres Kodex lässt jedoch Verbesserungspotenzial in Bezug auf Klarheit und Organisation zu. Wir haben bereits erwähnt, dass unser Codeblock drei verschiedene Aufgaben erfüllt. Er berechnet die Dauer der Wanderung, berechnet Jamies Energieverbrauch und druckt die Ergebnisse und druckt Um die Lesbarkeit unseres Codes zu verbessern, werden wir ihn umgestalten, indem wir die drei Hauptaufgaben in separate Funktionen kapseln . Dieser modulare Ansatz wird den Ablauf des Codes verdeutlichen Beginnen wir mit der Erstellung einer Funktion namens Calc Hours, mit der die für die Wanderung benötigte Zeit geschätzt Die Funktion Calc Hours akzeptiert drei Parameter. Entfernung: Länge der Wanderung in Meilen, Temperatur, Umgebungstemperatur in Fahrenit und Schwierigkeitsgrad des Geländes, Bewertung der Terranzenschwierigkeit auf einer Skala von 1—3 Im Hauptteil der Funktionen kopieren wir die entsprechenden Codezeilen, um die Dauer der Wanderung zu berechnen In der letzten Zeile des Funktionstextes wurde ursprünglich der Variablen angepasste Stunden der Rückgabewert zugewiesen. Diese Zuweisung ist jedoch unnötig. Stattdessen können wir PyTon direkt anweisen , das berechnete Ergebnis zurückzugeben Durch den Wegfall der Zwischenvariablenzuweisung haben wir unseren Code übersichtlicher und effizienter gestaltet Wenn diese Funktion definiert ist, können wir den ersten Codeblock mit einem einzigen Aufruf der Funktion calc hours vereinfachen einem einzigen Aufruf der Funktion calc hours Beachten Sie, dass wir beim Aufruf der Funktion Calc Hours Variablen mit den Werten zehn, 75 und zwei als Argumente übergeben haben 75 und zwei als , anstatt die Werte selbst zu übergeben Wenn Variablen als Argumente verwendet werden, übergibt Biton die Werte, die die Variable enthält, an die Funktion und weist diese Werte den entsprechenden Funktionsparametern zu Hier ist es wichtig zu verstehen, dass die im Funktionsaufruf verwendeten Variablennamen nicht mit den Parameternamen in der Funktionsdefinition übereinstimmen müssen den Parameternamen in der Funktionsdefinition Wenn wir beispielsweise den Parameter temp in der Funktionsdefinition in temperature umbenennen den Parameter temp in der Funktionsdefinition in temperature , funktioniert die Funktion calc hours immer noch wie vorgesehen, wenn sie mit der Variablen temp als Argument aufgerufen wird der Variablen temp als In diesem Fall wird beim Aufruf der Funktion Calc Hours der Wert, der der Variablen temp zugeordnet ist, an die Funktion übergeben und dem Parameter temperature zugewiesen Großartig. Wir werden jetzt einen ähnlichen Ansatz für die Berechnung der verbrannten Kalorien verfolgen. Wir definieren zunächst die Kalorienfunktion, die die Dauer der Wanderung in Stunden und den Schwierigkeitsgrad des Geländes als Eingaben verwendet. Dann kopieren wir den Codeblock zur Kalorienberechnung in den Hauptteil der Funktion und schreiben die entsprechende Rückgabeanweisung. Schließlich ersetzen wir den zweiten Codeblock durch einen Aufruf der Calc-Calories-Funktion Beachten Sie, dass der Aufruf der Calc-Calories-Funktion die Ausgabe der Calc-Hours-Funktion als Eingabe verwendet Daher müssen wir die Funktion „Stunden berechnen“ aufrufen , bevor wir die Funktion „Kalorien berechnen“ aufrufen Um die Überarbeitung unseres Codes abzuschließen, erstellen wir eine dritte Funktion namens print results, die die Ausgabe anzeigt Diese Funktion verwendet die berechneten Stunden und Kalorien als Eingaben und druckt diese Mengen in einem benutzerfreundlichen Format aus. Beachten Sie, dass der einzige Zweck dieser Funktion darin besteht, die Ausgabe zu drucken, sodass wir die Funktion nicht benötigen, um einen Wert zurückzugeben. Daher lassen wir die Rückgabeerklärung weg. Schließlich ersetzen wir den Ausgabecode durch den Funktionsaufruf „Ergebnisse drucken Großartig. führen wir ihn aus, um sicherzustellen, dass wir immer noch dieselben Ausgaben erhalten Nachdem wir unseren Code überarbeitet haben, führen wir ihn aus, um sicherzustellen, dass wir immer noch dieselben Ausgaben erhalten . Und das tun wir tatsächlich Aber mit diesen Änderungen haben wir die Struktur unseres Codes erheblich verbessert. Durch die Aufteilung unserer Programmlogik in separate, fokussierte Funktionen haben wir mehrere Vorteile erzielt. Prägnanz. Der Hauptteil des Programms, Ausnahme der Funktionsdefinitionen ist erheblich kürzer. Lesbarkeit Jede Funktion hat eine klare, einzigartige Verantwortung, die unabhängig geprüft werden kann Verständlichkeit: Der gesamte Arbeitsablauf des Programms ist jetzt leichter zu In unserer neuen Codestruktur sind die drei Hauptaufgaben, die ausgeführt werden, klar abgegrenzt: die Berechnung der Wanderzeit, die Bestimmung des Energieverbrauchs und das Drucken Im Gegensatz dazu erforderte die Unterscheidung dieser Aufgaben in der Originalversion des Codes mehr Aufwand und Pike implementiert die angeforderten Änderungen an seiner Prognosefunktion Zur Zufriedenheit von Jamie wird es in Zukunft in der Lage sein, genauere Schätzungen für Dauer und Kalorienverbrauch zu liefern genauere Schätzungen für Dauer und Kalorienverbrauch In den letzten beiden Videos haben wir Situationen untersucht, in denen benutzerdefinierte Funktionen die Qualität und Struktur unseres Codes verbessert die Qualität und Struktur unseres Codes In den folgenden Übungen werden Sie zwei wichtige Fähigkeiten üben. Erstens: Identifizieren Sie Situationen, in denen benutzerdefinierte Funktionen hilfreich sind, und bestimmen Sie zweitens den Umfang und die Zuständigkeiten der von Ihnen definierten Funktionen. 47. Benutzerdefinierte Funktionen Übungen: In dieser Arbeitsmappe haben Sie mehrere benutzerdefinierte Funktionen zur Beantwortung verschiedener finanzieller Fragen erstellt mehrere benutzerdefinierte Funktionen zur Beantwortung verschiedener finanzieller Anschließend verwenden Sie diese Funktionen, um finanzielle Probleme für Kunden zu lösen Lassen Sie uns die Lösungen besprechen. In der ersten Übung wurden wir gebeten, eine Funktion zu schreiben die die monatliche Kreditzahlung anhand der Parameter, des Kreditbetrags, des jährlichen Zinssatzes und der Anzahl der Jahre für die Rückzahlung des Kredits berechnet Kreditzahlung anhand der Parameter, des Kreditbetrags, des jährlichen Zinssatzes und der Anzahl der Jahre für die Rückzahlung des Zu diesem Zweck verwenden wir die drei angegebenen Gleichungen, die drei angegebenen Gleichungen um den monatlichen Zinssatz, die Anzahl der Zahlungen und schließlich den monatlichen Zahlungsbetrag zu berechnen Anzahl der Zahlungen und schließlich den monatlichen Zahlungsbetrag den monatlichen Zahlungsbetrag Beachten Sie, dass der monatliche Zinssatz und die Anzahl der Zahlungen in der monatlichen Zahlungsgleichung verwendet werden. Sie müssen also berechnet werden, Sie müssen also berechnet werden bevor wir die monatliche Zahlung bestimmen können. Wenn wir die Funktion verwenden, um die Kreditzahlung für ein Darlehen in Höhe von 10.000$ zu einem jährlichen Zinssatz von 5% über einen Zeitraum von 30 Jahren zu berechnen , erhalten wir eine monatliche Kreditzahlung von 536,82$ In Übung zwei haben wir eine Funktion geschrieben, mit der die Ersparnisse eines Kunden bei der Pensionierung anhand des anfänglichen Sparbetrags, des jährlichen Beitrags, der jährlichen Rendite und der Anzahl der Jahre bis zur Pensionierung geschätzt Ersparnisse eines Kunden bei der Pensionierung anhand des anfänglichen Sparbetrags, des jährlichen Beitrags, der jährlichen Rendite und der Anzahl der Jahre bis zur Pensionierung In dieser Funktion erstellen wir zunächst eine neue Variable, die Gesamtersparnisse, und setzen sie den anfänglichen Ersparnissen gleich. Als Nächstes erstellen wir eine vierfache Schleife, die sich im Laufe der Jahre bis zur Pensionierung wiederholt. Dabei wird die Variable für die Gesamtersparnisse erhöht, indem den jährlichen Beitrag addieren und die Investition mit der jährlichen Rate Im Loop-Header erstellen wir einen Zahlenbereich von Null bis zum Jahresparameter Dieser Bereich stellt sicher , dass die Schleife genau einmal pro Jahr wiederholt wird, bis der Client in den Ruhestand geht Darüber hinaus verwenden wir einen Platzhalter als Iterationsvariable, da wir diesen Wert nicht im Hauptteil der Schleife verwenden werden diesen Wert nicht im Hauptteil der Innerhalb des Regelkreises erhöhen wir zunächst die Gesamtersparnisse um den jährlichen Dann erhöhen wir die Gesamtersparnisse über ein Jahr um die Rendite solche Steigerung der Altersvorsorge bedeutet, dass wir das einer Investition im Laufe der Zeit angemessen berücksichtigen Gesamtwachstum einer Investition im Laufe der Zeit angemessen berücksichtigen . Nachdem der Kreislauf abgeschlossen ist, geben wir den endgültigen Gesamtbetrag der Ersparnisse zurück , der den Wert der Ersparnisse des Anlegers zum Zeitpunkt der Pensionierung enthält . Schließlich verwenden wir die Funktion, um die Altersvorsorge eines Kunden mit einer Anfangsinvestition von 10.000$ zu berechnen eines Kunden mit einer Anfangsinvestition von 10.000$ , der in 30 Jahren in Rente gehen möchte Bei einem jährlichen Beitrag von 5.000 USD und einer erwarteten Rendite von 5% belaufen sich ihre Altersvorsorge Da wir Schlüsselwortargumente verwendet haben, konnten wir die Werte in einer anderen Reihenfolge als in der Funktion angegeben an die Funktion übergeben einer anderen Reihenfolge Dadurch ist der Funktionsaufruf besser lesbar, da wir wissen, wofür jeder Wert innerhalb der Funktion steht. In Übung drei haben wir eine Funktion geschrieben, um das Wachstum einer Investition anhand des Investitionsbetrags , der Anzahl der Jahre denen die Investition wachsen darf, und der erwarteten jährlichen Wachstumsrate zu prognostizieren. In der Kopfzeile der Funktion haben wir diese jährliche Wachstumsrate optional gemacht, haben wir diese jährliche Wachstumsrate optional gemacht indem wir einen Standardparameter verwendet haben. Dann haben wir den zukünftigen Wert der Anfangsinvestition anhand der angegebenen Gleichung berechnet . Schließlich geben wir diesen Wert zurück. Wenn wir eine Funktion ohne jährliche Rendite aufrufen, verwendet sie die Standardrate von 7%. Wenn wir jedoch eine Rate angeben, verwendet die Funktion diese Rate anstelle der Standardrate von 7%. In Übung vier mussten wir eine Funktion schreiben, die anhand der monatlichen Einnahmen und einer Liste der monatlichen Ausgaben eine Budgetanalyse durchführt einer Liste der monatlichen Ausgaben eine Budgetanalyse . Zunächst berechnet die Funktion die monatlichen Gesamtausgaben, indem sie die Elemente der Ausgabenliste summiert Dann subtrahiert sie die Gesamtausgaben von den monatlichen Einnahmen, um festzustellen, ob der Kunde einen Überschuss zu sparen hat oder ein Defizit aufweist Die Funktion gibt zwei Werte zurück Betrag der Einsparungen oder des Defizits und die Gesamtausgaben In diesem Fall ist die Rückgabe von zwei Werten angemessen, da die Werte eng miteinander verknüpft sind und sich diese Funktion auf eine einzelne Aufgabe konzentriert. Wenn Sie jedoch mehrere Werte zurückgeben , die in einer Funktion berechnet wurden, die mehrere Aufgaben ausführt, ist es besser, diese Funktion in kleinere Funktionen mit einem einzigen Zweck aufzuteilen . Wenn wir diese Funktion verwenden, um das Budget eines Kunden mit einem monatlichen Einkommen von 4.000$ und diesen Ausgaben zu analysieren , werden sowohl ein Überschuss von 1.550$ als auch ein monatlicher Ausgabenbetrag von 2.450$ zurückgegeben 1.550$ als auch ein monatlicher Ausgabenbetrag von 2.450$ In Übung fünf haben wir eine Funktion geschrieben, die eine nicht spezifizierte Anzahl von Ausgabenkategorien anhand beliebiger Schlüsselwortargumente analysiert eine nicht spezifizierte Anzahl von Ausgabenkategorien Beliebige Schlüsselwortargumente ermöglichen es dem Funktionsaufrufer, beliebig viele Schlüsselwortargumente an eine Funktion zu übergeben eine Funktion zu Diese Schlüsselwortargumente werden in einem Wörterbuch namens expenses gesammelt Das bedeutet, dass wir Wörterbuchmethoden wie Werte und Elemente verwenden können , um Operationen im Ausgabenwörterbuch durchzuführen . Innerhalb der Funktion summieren wir zunächst alle Werte im Ausgabenwörterbuch im Ausgabenwörterbuch , um die Gesamtkosten zu berechnen. Dann wiederholen wir jedes Schlüsselwertpaar und drucken den Namen der Kategorie, den Betrag und den prozentualen Anteil der Kategorien an den Gesamtausgaben aus Schließlich geben wir den Gesamtbetrag der Ausgaben für die Verwendung außerhalb der Funktion Wenn wir diese Funktion aufrufen, um die Liste der Miet-, Lebensmittel-, Nebenkosten - und Unterhaltungskosten eines Kunden zu analysieren , erhalten wir diese Aufschlüsselung der Ausgaben und die Gesamtkosten in Höhe von 950$ Schließlich verwenden wir in Übung sechs die Funktionen, die wir entwickelt haben, um einigen Kunden zu helfen In Teil A haben wir John bei der Durchführung einer Budgetanalyse geholfen. Wir haben sein monatliches Einkommen und die Liste seiner monatlichen Ausgaben an unsere analysierte Budgetfunktion weitergeleitet , die den Überschuss- oder Defizitbetrag und die monatlichen Gesamtausgaben zurückgab . John hat einen monatlichen Überschuss von 3.750$ sowie ein monatliches Einkommen von 6.000$, um seine monatlichen Ausgaben in Höhe von 2.250$ zu decken seine monatlichen Ausgaben in Höhe von 2.250$ In Teil B analysieren wir dann Johns monatliches Budget, nachdem wir Johns monatliches Budget, nachdem Hypothekenzahlungen berücksichtigt Zu diesem Zweck haben wir zunächst unsere Funktion zur Berechnung der Kreditzahlung aufgerufen und Johns Kreditdetails als Argumente übergeben Diese Funktion gibt die monatliche Kreditzahlung zurück und wir geben sie aus. Dann haben wir diese Hypothekenzahlung bei Johns monatlichen Ausgaben berücksichtigt , indem sie an die monatliche Ausgabenliste angehängt Als Nächstes haben wir unsere analysierte Budgetfunktion mit Johns monatlichem Einkommen und aktualisierten monatlichen Ausgaben aufgerufen Johns monatlichem Einkommen und aktualisierten monatlichen Diese Funktion gibt die Höhe der Ersparnisse oder des Defizits und die monatlichen Gesamtausgaben von John zurück . John hat eine monatliche Hypothekenzahlung von 432,25$. Und basierend auf seinen Einnahmen und Ausgaben hat er einen monatlichen Überschuss von 2.317,75 USD In Teil C mussten wir Maria bei der Berechnung ihrer Altersvorsorge helfen Zu diesem Zweck haben wir unsere Funktion „ Altersvorsorge berechnen“ aufgerufen und ihre Daten als Schlüsselwortargumente übergeben. Hier ermöglicht uns die Verwendung von Schlüsselwortargumenten die Argumente in beliebiger Reihenfolge zu übergeben. Auf der Grundlage von Marias Angaben zur Pensionierung gehen wir davon aus, dass sie zum Zeitpunkt ihrer Pensionierung über Ersparnisse in Höhe von 376.083,52$ verfügen wird Zeitpunkt ihrer Pensionierung über Ersparnisse in Höhe von 376.083,52$ In Teil D haben wir Lisa dabei geholfen, ihre Ausgaben nachzuverfolgen. Wir haben unsere Funktion „Ausgaben analysieren“ genannt und jede der Ausgabenkategorien von Lisa als willkürliche Schlüsselwortargumente übergeben. Wir haben jedem Argument explizit einen Namen zugewiesen, da diese Namen zu den Schlüsseln des Ausgabenwörterbuchs innerhalb der Funktion werden . Diese Funktion druckt dann die Aufschlüsselung der Ausgabenkategorien aus. Schließlich haben wir Alex in Teil E dabei geholfen, das Wachstum seines Erbes zu prognostizieren und seine Ausgaben und sein monatliches Budget zu analysieren . Zunächst haben wir die Wachstumsfunktion unseres Projekts aufgerufen, um zu berechnen, dass Alex' Erbschaft in Höhe von 10.000$ 27.590,32$ wert sein wird bei einer jährlichen Wachstumsrate von 7% in 15 Jahren Zweitens haben wir die Ausgaben von Alex analysiert, indem wir jede seiner Ausgabenkategorien als willkürliche Schlüsselwortargumente in unsere Funktion für analysierte Ausgaben unsere Funktion für analysierte Ausgaben eingegeben haben, genau wie in Teil D. Drittens, um Alex' Budget zu analysieren, haben wir unsere Funktion Analysiertes Budget aufgerufen und die monatlichen Einnahmen von Alex und die Gesamtausgaben, die wir im vorherigen Funktionsaufruf erhalten haben, übergeben monatlichen Einnahmen von Alex und die Gesamtausgaben, die wir im vorherigen Funktionsaufruf erhalten haben . Da die analysierte Budgetfunktion eine Liste von Ausgaben erwartet, haben wir die Ganzzahl der Gesamtausgaben in eine Liste umgewandelt. Schließlich haben wir Alex' Budgetanalyse angezeigt. Fantastisch. Jetzt haben Sie das Erstellen und Aufrufen von benutzerdefinierten Funktionen und mehrere andere wichtige Funktionskonzepte gelernt. Als Nächstes werden wir uns mit dem Thema Namespace und Geltungsbereich befassen und etwas mehr Übung mit benutzerdefinierten Funktionen sammeln 48. Namespace und Umfang: Nachdem wir nun etwas Übung beim Schreiben unserer eigenen benutzerdefinierten Funktionen gesammelt haben, wollen wir uns noch einmal mit einem Problem befassen, das wir zuvor beim Schreiben unserer eigenen benutzerdefinierten Funktionen gesammelt haben, wollen wir uns noch einmal mit einem Problem befassen, das kurz angesprochen Als wir dem Architekten dabei halfen, die Fläche eines Gebäudes mithilfe der Funktion für rechteckige Flächen zu berechnen , stellten wir fest, dass auf die Flächenvariable von außerhalb der Funktion, in der sie definiert ist, nicht zugegriffen werden konnte von außerhalb der Funktion, in der sie definiert ist, nicht zugegriffen werden außerhalb der Funktion, in der sie definiert ist In diesem Video erklären wir, warum wir diesen Fehler bekommen haben. Dazu müssen wir zwei neue Programmierkonzepte untersuchen: Namespaces und Scope. Diese Ideen bauen direkt auf dem Begriff der Variablen auf, den wir bereits untersucht haben. Lassen Sie uns zunächst einen kurzen Überblick über diesen Begriff geben. Beginnen wir mit einem Basisprogramm, das die Fläche eines Rechtecks berechnet , ohne eine Funktion zu verwenden Dieses Programm weist zunächst mehreren Variablen Werte zu, die die Länge, Breite und Maßeinheiten des Rechtecks darstellen , Breite und Maßeinheiten des Dann berechnet es die Fläche des Rechtecks und druckt das Ergebnis mit der richtigen Einheit Wie Sie bereits wissen, werden, wenn PyTon die ersten Zeilen dieses Programms ausführt, vier Variablen erstellt und ihnen Werte zugewiesen Hinter den Kulissen passiert jedoch noch mehr. Wenn PyTon Variablenzuweisungen ausführt, fügt es die Variable zu einer Struktur hinzu, die als globaler Namespace bezeichnet wird Sie können sich einen Namespace als einen beschrifteten Container vorstellen, der die Namen von Variablen und Funktionen enthält , die während der Ausführung erstellt wurden, sodass PyTon sie effizient verwalten und darauf zugreifen In unserem Programm für rechteckige Bereiche fungiert der globale Namespace als primärer Container, der alle Variablen enthält, die wir erstellt haben, Länge mit Einheit Auf Variablen, die im globalen Namensraum gespeichert sind, kann während der Ausführung eines Programms überall zugegriffen werden während der Ausführung eines Programms überall zugegriffen Dadurch können wir sie für Berechnungen und Ausgaben frei verwenden . In einem einfachen Programm wie diesem, das keine Funktionen verwendet, genügt es zu verstehen wie der globale Namespace funktioniert Da Programme jedoch immer komplexer werden, organisieren wir unseren Code oft in Funktionen Lesbarkeit und Wiederverwendbarkeit zu verbessern Die Einführung benutzerdefinierter Funktionen verändert die Art und Weise, wie auf Variablen zugegriffen und sie in einem Programm verwaltet werden zugegriffen und sie in einem Programm verwaltet Sehen wir uns an, wie durch die Nachverfolgung der Ausführung dieses Programms, wenn die erste Codezeile ausgeführt wird, der Variableneinheit der Wert Fuß zugewiesen wird Da diese Zuweisung innerhalb des Hauptprogramms erfolgt , die Variableneinheit wie zuvor im globalen Namensraum mit einem Stern In der folgenden Codezeile stößt PTN auf die Definition der Funktion für rechteckige Bereiche Bei der Ausführung wird der Name der Funktion im globalen Namespace gespeichert Da die Funktion für den rechteckigen Bereich nun Teil des globalen Namespaces ist , kann auf diese Funktion, wie auf die Unit-Variable, wie auf die Unit-Variable, für den Rest der Ausführung überall im Programm zugegriffen werden für den Rest der Ausführung überall im Programm Ein erster Funktionsaufruf folgt der Definition der Funktion Ganz zu Beginn dieses Funktionsaufrufs weist PyTon den Variablen land und width den Wert 100 bzw. 140 zu Okay. Aber wo im Namensraum wird PyTon diese beiden Variablen speichern Hier wird es interessant. Wenn Variablen innerhalb einer Funktion erstellt werden, speichert PyTon sie nicht im globalen Namespace Nein, stattdessen erstellt PTN einen neuen Namespace, der der Funktion zugeordnet ist, der als lokaler Namespace der Funktion bezeichnet wird . Im lokalen Namespace der Funktionen werden die Variablen Länge und Wie wir gleich sehen werden, trägt diese Trennung der Namensräume dazu bei, Namenskonflikte zu vermeiden und ermöglicht es Funktionen, ihre eigenen privaten Variablen zu haben Sobald die Argumente zugewiesen wurden, berechnet PTN die Fläche des Rechtecks Da Piton gerade den Hauptteil der Funktion ausführt, die privaten Variablen length und width zugänglich Das Ergebnis der Berechnung wird dann dem variablen Bereich zugewiesen Da die Zuweisung nun im Hauptteil der Funktion für den rechteckigen Bereich erfolgt , wird der Variablenbereich auch dem lokalen Namespace der Funktion hinzugefügt und nicht dem globalen Namespace Das wird später wichtig. Bei der Ausführung der letzten Zeile des Funktionstextes druckt PyTon den Inhalt der Variablen area und unit Denken Sie daran, dass auf Variablen im globalen Namespace von überall im Programm zugegriffen werden kann, auch während der Ausführung eines Funktionsaufrufs Nachdem nun alle Codezeilen der Funktion ausgeführt wurden, schließt das Programm die Ausführung des Funktionsaufrufs ab, indem es den lokalen Namensraum zusammen mit seinem Inhalt verwirft und zum Hauptprogramm zurückkehrt Zu diesem Zeitpunkt enthält der globale Namensraum des Programms nur die Variableneinheit und den rechteckigen Bereich der Funktion Genau aus diesem Grund erhielten wir im vorherigen Video eine Fehlermeldung, als wir versuchten, den Bereich mit den Rechtecken von außerhalb der Funktion zu drucken Wie Sie sehen können, wurde zu diesem Zeitpunkt der Codeausführung der Variablenbereich verworfen, sodass wir ihn nicht verwenden können Wenn unser Programm den zweiten Funktionsaufruf ausführt, wiederholt Python dieselben Schritte wie zuvor Zunächst wird ein neuer lokaler Namespace erstellt. Als Nächstes werden die Argumente den entsprechenden Variablen zugewiesen Die Berechnung wird durchgeführt und die Ausgabe wird gedruckt. Schließlich wird der lokale Namensraum wieder verworfen. Fantastisch. Nachdem wir das Konzept der Namensräume eingeführt haben, wollen wir nun etwas mehr Terminologie hinzufügen. Variablen, die im globalen Namensraum gespeichert sind , werden globale Variablen genannt. Variablen, die in einem lokalen Namespace gespeichert sind, werden dagegen als lokale Variablen bezeichnet. Da globale Variablen überall in einem Programm zugänglich sind , sagen wir, dass sie einen globalen Gültigkeitsbereich haben. Andererseits sind lokale Variablen nur innerhalb der Funktion zugänglich , in der sie definiert sind. Wir sagen also, dass sie einen lokalen Geltungsbereich haben. Die Begriffe Namespaces und Geltungsbereich sind zugegebenermaßen abstrakter als die anderen Programmierkonzepte, die wir bisher in diesem Kurs behandelt haben Im nächsten Video werden wir versuchen, diese Begriffe anhand einiger Beispiele zu konkretisieren . 49. Namespace und gelenkte Beispiele: Am Ende des zweiten Tages ihrer fünftägigen Wanderung stoßen Jamie und Pike auf eine kleine rechteckige Lichtung im Wald Jamie erwägt, dort ihr Lager aufzuschlagen, macht sich aber Sorgen, dass es nicht genug Freiraum zum Entspannen geben wird, sobald sie ihr Zelt aufgeschlagen und ein Lagerfeuer angezündet ihr Lager aufzuschlagen, macht sich aber Sorgen, dass es nicht genug Freiraum zum Entspannen geben wird haben. Angesichts der Sorge um den Platz bittet Jamie Pike, herauszufinden, ob die Lichtung die 40 Quadratfuß an freiem Platz bietet, die sie benötigen Um Jamies Frage in bTon zu beantworten, erstellen wir zunächst eine Funktion, die die Fläche eines Rechtecks anhand seiner Länge und Breite berechnet . Mit dieser Funktion können wir dann die Fläche der Lichtung und die Fläche des Zeltes berechnen Lichtung und die Fläche des Zeltes Als Nächstes erstellen wir eine weitere Funktion, die die Fläche eines Kreises anhand seines Radius berechnet Wir rufen dann diese Funktion auf, um die Fläche des Lagerfeuers zu berechnen Schließlich subtrahieren wir von der berechneten Fläche die Zeltfläche und die Lagerfeuerfläche , um den verbleibenden freien Platz zu ermitteln, und drucken das Ergebnis aus Das ist alles gut. Beachten Sie jedoch, dass wir den Bereich für Variablennamen verwendet haben, um die Ergebnisse unserer Berechnungen in beiden Funktionen zu speichern . Können wir das wirklich tun? Kann derselbe Variablenname in zwei verschiedenen Funktionen verwendet werden oder könnte dies zu Konflikten bei der Ausführung führen? Lassen Sie uns die Ausführung des Programms verfolgen , um zu sehen, ob dies zu einem Problem führt. Wenn die erste Codezeile ausgeführt wird, liest PyTon die Definition der rechteckigen Bereichsfunktion und fügt den Namen der Funktion dem globalen Namespace hinzu PyTon liest dann die Definition der Kreisflächenfunktion und fügt sie auch dem globalen Namespace hinzu Nach der Definition unserer beiden Funktionen geht BTN zum ersten Funktionsaufruf für rechteckige Bereiche über Wie Sie bereits wissen, erstellt PTN beim Aufruf der Funktion für rechteckige Bereiche einen lokalen Namensraum, Aufruf der Funktion für rechteckige Bereiche einen lokalen Namensraum, in dem die Argumente zehn und 12 den Parametern length bzw. width zugewiesen werden den Parametern length bzw. width Darüber hinaus weist Biton während der Ausführung der Funktionen das Ergebnis der Flächenberechnung dem variablen Bereich im lokalen Namensraum der Funktion zu variablen Bereich im lokalen Namensraum der Funktion Der Funktionsaufruf endet damit, dass der Wert des Variablenbereichs an den aufrufenden Punkt zurückgegeben der Wert des Variablenbereichs an den aufrufenden Da es in jedem der Namensräume nur eine Bereichsvariable gibt, besteht keine mögliche Verwirrung darüber, welche Bereichsvariable zurückgegeben werden soll. Sobald die Return-Anweisung ausgeführt wurde, werden alle Variablen im Namensraum des rechteckigen Bereichs gelöscht und ein neuer globaler Variablen-Löschbereich wird erstellt, in dem der Rückgabewert der Funktion gespeichert wird. Bei der Ausführung des nächsten Funktionsaufrufs für rechteckige Bereiche erstellt Biton einen neuen Namespace für rechteckige Bereiche der die Funktionsparameter enthält Die Fläche des Zeltes wird dann berechnet und in einer neuen Flächenvariablen gespeichert Dann gibt Python den Wert der Bereichsvariablen zurück. Da es in jedem der Namensräume wieder nur eine Bereichsvariable gibt, besteht keine mögliche Verwirrung darüber welche Bereichsvariable zurückgegeben werden soll. So weit, so gut. Wenn die Funktion zurückkehrt, alle Variablen im Namespace des werden alle Variablen im Namespace des rechteckigen Bereichs zerstört und eine neue globale Variable tent area wird erstellt, um den Rückgabewert der Funktion zu speichern Schließlich ruft Piton die Funktion „Kreisfläche“ auf, um die Fläche des Lagerfeuers zu berechnen Hier wird ein neuer lokaler Namensraum für eine Kreisflächenfunktion mit dem Umkreisradius erstellt PyTon berechnet dann die Fläche des Kreises und weist sie einer neuen lokalen Variablenfläche zu Wenn Pyton am Ende der Ausführung der Funktion die berechnete Fläche zurückgibt , gibt es wieder nur einen Variablennamenbereich in einem der Namensräume Somit besteht keine mögliche Verwirrung darüber, welcher Wert an das Programm zurückgegeben werden soll Die Quintessenz hier ist dies. Bei der Definition von Funktionen können wir dieselben Variablennamen problemlos wiederverwenden. Lokale Variablen befinden sich in ihrem Funktionsnamensraum und sterben, wenn die Ausführung abgeschlossen ist. Dies garantiert, dass es nicht zu Namenskonflikten kommt, wenn wir dieselben Variablennamen in mehreren Funktionen verwenden . Beachten Sie, dass dieses Prinzip auch für Parameternamen gilt. Wir können Parameternamen für mehrere Funktionen wiederverwenden. In den Übungen werden wir sicherstellen, dass die Wiederverwendung von Parameternamen keine Probleme in unserem Code verursacht Verlassen Sie sich vorerst einfach auf mein Wort. Fantastisch. Nachdem wir diese Beobachtung hinter uns haben, beenden wir die Suche nach dem Code. Wenn die Funktion Circle Area zurückkehrt, wird ihr Namensraum zerstört und der Rückgabewert wird in der globalen Variablen campfire area gespeichert der globalen Variablen campfire Schließlich berechnet PyTon anhand der drei Bereichsvariablen den freien Speicherplatz und gibt das Großartig. Wenn Jamie und Pike ihr Zelt und ihr Lagerfeuer auf dieser Lichtung aufstellen, haben sie fast 49 Quadratfuß Freiraum, was mehr als genug ist Während sie Cam aufstellen, um sich nach einem anstrengenden Wandertag zu entspannen, werden wir im Laufe der Zeit daran arbeiten, unser Verständnis von Namenskonflikten zu vertiefen Wie wir gerade gesehen haben, können verschiedene Funktionen problemlos dieselben lokalen Variablennamen verwenden , da jeder Funktionsaufruf seinen eigenen Namespace erstellt Wir haben jedoch nicht besprochen, was passiert , wenn eine globale Variable denselben Namen wie eine lokale Variable hat denselben Namen wie eine lokale Variable Lassen Sie uns zum Beispiel die Variable Clearing Area im Hauptprogramm in Area umbenennen . Dieser Bereich existiert sowohl als lokale als auch als globale Variable Wie wird sich PyTN verhalten? Um das herauszufinden, verfolgen wir die Ausführung unseres Codes. Wie zuvor beginnt PyTN damit, die Funktionsdefinitionen zu lesen und die Funktionsnamen im globalen Namespace zu speichern die Funktionsnamen im globalen Namespace Dann führt es den ersten Funktionsaufruf aus und erstellt den rechteckigen Bereich, den lokalen Namespace Innerhalb der Funktion für den rechteckigen Bereich berechnet PyTon die Fläche und speichert die Berechnung innerhalb des lokalen Variablenbereichs. Der Wert der Bereichsvariablen wird dann an der Stelle zurückgegeben, an der die Zu diesem Zeitpunkt gibt es in jedem der Namensräume nur eine Bereichsvariable, sodass kein potenzieller Konflikt besteht Wenn die Funktion zurückkehrt, alle Variablen im Namensraum des werden alle Variablen im Namensraum des rechteckigen Bereichs gelöscht, und es wird ein neuer globaler Variablenbereich erstellt, in dem der Rückgabewert der Funktion gespeichert wird. Interessanterweise haben wir jetzt eine globale Variable mit dem Namen Area. Ich wette, Sie können sehen, wohin sich die Dinge entwickeln. Bei der Ausführung des nächsten Funktionsaufrufs für rechteckige Bereiche erstellt PyTon einen neuen Namespace für rechteckige Bereiche der die Funktionsparameter enthält PyTon berechnet dann die Fläche und speichert das Ergebnis der Berechnung im lokalen Variablenbereich im Lassen Sie uns hier für eine Sekunde innehalten , um die Namensräume zu untersuchen. Zwei Variablen mit dem Namen area existieren jetzt in unterschiedlichen Namensräumen: eine lokale Variable, existieren jetzt in unterschiedlichen Namensräumen: eine lokale Variable, die den im aktuellen Funktionsaufruf berechneten Spannungsbereich enthält, und eine globale Variable die den im vorherigen Funktionsaufruf berechneten Bereich der der beiden Variablen gibt PyTon zurück, wenn PyTon am Ende des aktuellen Funktionsaufrufs aufgefordert wird , den Wert von area zurückzugeben? Da derselbe Variablenname verwendet wird , um auf zwei verschiedene Werte zu verweisen, benötigt PyTon eine Möglichkeit, herauszufinden, welcher Wert zurückgegeben werden soll In der Pyton-Sprache besteht die Regel darin, die lokale Version der Variablen zu verwenden die lokale Version der , wenn ein potenzieller Konflikt besteht In diesem Beispiel bedeutet dies, dass PyTon den lokalen Variablenbereich zurückgibt, der in der Funktion rechteckiger Bereich erstellt wurde , und nicht den globalen Variablenbereich den wir am Ende unseres vorherigen Funktionsaufrufs zugewiesen haben Wenn die Ausführung der Funktionen abgeschlossen ist, wird der lokale Namespace verworfen Dann ruft PyTon die Funktion Circle Area und ein neuer lokaler Namespace Während der Ausführung der Funktionen berechnet Piton die Lagerfeuerfläche und weist das Ergebnis der lokalen Variablen area weist das Ergebnis der Auch hier gibt es zwei Bereichsvariablen im Namensraum Eine ist lokal. Der andere ist global. Daher gibt Pyton am Ende der Funktionsausführung die lokale Version der Bereichsvariablen zurück der Funktionsausführung die lokale Version Ende der Funktionsausführung die lokale Version der Bereichsvariablen Wenn die Funktion zurückkehrt, alle Variablen im Namensraum des werden alle Variablen im Namensraum des rechteckigen Bereichs zerstört und der Wert der lokalen Variablen wird der globalen Variablen Campfire Area zugewiesen In der nächsten Codezeile verwendet Pyton den Variablenbereich, um den verbleibenden freien Speicherplatz zu berechnen Zu diesem Zeitpunkt existiert nur die globale Version der Bereichsvariablen, und es besteht keine Mehrdeutigkeit Schließlich druckt PTN das Berechnungsergebnis, das dem identisch ist, was wir in unserem ersten Überblick über den Code erhalten haben in unserem ersten Überblick über den Code erhalten In den letzten beiden Videos haben Sie gesehen, wie PTN Namensräume verwaltet , während es , zwischen globalen und lokalen Namensräumen zu unterscheiden Beim Schreiben benutzerdefinierter Funktionen ist es wichtig In der folgenden Übung werden Sie diese Fähigkeit üben 50. Namensraum- und Umfangübungen: In dieser Arbeitsmappe können Sie vier verschiedene Programme nachverfolgen, um deren Ausgabe zu ermitteln Lassen Sie uns die einzelnen Programme aufschlüsseln, um ihre Namensräume zu veranschaulichen und zu verstehen, wie Logik, Variablen und Funktionen zusammenwirken, um die endgültige Ausgabe zu erzeugen In Übung eins erinnern wir uns daran, dass wenn eine Variable nicht lokal definiert ist, Python, wenn eine Variable nicht lokal definiert ist, den globalen Namespace durchsucht, um sie zu finden Um die Ausgabe dieses Programms zu verstehen, wollen wir sie verfolgen und den Namespace Schritt für Schritt erstellen Zunächst liest Python die beiden Variablenzuweisungen und die Funktionsdefinition fügt dem globalen Namespace die Namen length, width und calc wrecked area hinzu Als Nächstes führt Python den Funktionsaufruf Calc wrecked area aus und erstellt so einen lokalen erstellt so einen Innerhalb der Funktion wird die variable Breite zum lokalen Namensraum hinzugefügt Wenn Python die Berechnung von Länge mal Breite erreicht hat, muss es bestimmen, welche Werte verwendet werden sollen. Da es eine lokale Breitenvariable gibt, verwendet Python diese anstelle der globalen Breite. Da es jedoch keine lokale Längenvariable gibt, erweitert Python seine Suche auf den globalen Namespace und findet sie dort Denken Sie daran, dass Python auf die globale Variable zurückgreift , wenn keine lokale Option verfügbar ist. Daher verwendet die Berechnung Länge gleich fünf und Breite gleich zwei, und Breite gleich zwei, was eine Fläche von zehn ergibt Wenn die Funktion zurückkehrt, wird der lokale Namespace zerstört und zehn wird an den Aufrufpunkt zurückgegeben In Übung zwei haben wir gelernt, dass Funktionsparameter innerhalb ihrer jeweiligen Funktionen als lokale Variablen agieren innerhalb ihrer jeweiligen Funktionen als lokale Variablen Selbst wenn verschiedene Funktionen dieselben Parameternamen verwenden, verursacht dies keine Probleme, da jede Funktion ihren eigenen unabhängigen lokalen Gültigkeitsbereich hat. Um die Ausgabe dieses Programms zu verstehen, sollten wir sie verfolgen und den Namespace Schritt für Schritt erstellen Zunächst liest Python beide Funktionsdefinitionen und fügt sie dem globalen Namespace Als Nächstes führt Python den Funktionsaufruf Elk Triangle Area Dadurch wird ein lokaler Namespace für die Funktion erstellt und ihm die Parameter base und height hinzugefügt die Parameter base und height Während der Berechnung existieren in diesem lokalen Namensraum nur eine Basis - und eine Höhenvariable Da kein Konflikt mit anderen Variablennamen besteht, wird die Fläche als halb mal fünf mal drei berechnet , was 7,5 ergibt. Nach der Rückkehr der Funktion wird der lokale Namespace gelöscht, aber der Rückgabewert 7.5 wird an das Hauptprogramm zurückgegeben und angezeigt Dann führt Python den Funktionsaufruf Calc wret area aus , der auch seinen eigenen lokalen Namespace erstellt und ihm die Parameter base und height hinzufügt Nach wie vor gibt es im lokalen Gültigkeitsbereich der Funktion nur eine Basis- und eine Höhenvariable Ohne Namenskonflikte wird die Fläche als fünf mal drei berechnet , was 15 ergibt. Der Wert 15 wird an das Hauptprogramm zurückgegeben und angezeigt der lokale Namensraum der Funktion . Anschließend wird der lokale Namensraum der Funktion gelöscht. In Übung drei haben wir gelernt, dass Python, wenn ein Perimeter und eine globale Variable denselben Namen haben, ein Perimeter und eine globale Variable denselben Namen haben, den lokalsten Namen innerhalb des aktuellen Gültigkeitsbereichs verwendet lokalsten Namen innerhalb des aktuellen Gültigkeitsbereichs Lassen Sie uns das Programm nachverfolgen, um den Namespace in diesem Fall zu verstehen Zunächst liest Python die globale Unit-Variable und die Funktionsdefinition Elk Square Area in den globalen Namespace Als Nächstes führt es den Funktionsaufruf Calk Square Area aus, erstellt den lokalen Namespace der Funktion und übergibt die Werte Vier und Meter als Argumente an die Längen Die Funktion gibt dann eine Zeichenfolge zurück die die quadratische Länge und die Einheit enthält Derzeit gibt es zwei Unit-Variablen, eine im globalen Namespace und eine im lokalen Namespace der Funktionen Da Python bei einem Namenskonflikt immer die lokalste Variable verwendet , wählt es die Einheitsvariable aus dem lokalen Gültigkeitsbereich der Funktion aus, der die Wertezähler enthält. Wenn die Funktion zurückkehrt, beträgt die Ausgangsleistung daher 16 Meter. In Übung vier haben wir gelernt, dass Konflikte auch entstehen können, wenn eine globale Variable, ein Funktionsparameter und eine lokale Variable denselben Namen haben. In solchen Fällen wird immer der lokalste Name verwendet. Lassen Sie uns dies bestätigen, indem wir das Programm verfolgen. In der dritten Übung liest Python zunächst die globale Einheitsvariable und die Funktionsdefinition Elk Square Area in den globalen Namespace Dann führt es den Funktionsaufruf Kelc Square Area aus, erstellt den lokalen Namespace der Funktion und übergibt vier und Meter als Argumente an die Innerhalb der Funktion wird die Einheitsvariable dann Yards neu zugewiesen, wobei der Parameterwert Meter außer Kraft gesetzt wird. An diesem Punkt besteht ein Namenskonflikt zwischen der lokalen Einheitsvariablen und der globalen Einheitsvariablen Wie wir jedoch in Übung drei gelernt haben, verwendet Python immer die lokalste Version einer Variablen. Da in diesem Fall die lokale Einheit nun den Wert Yards enthält, wird dieser Wert bei der Konstruktion der Rückgabezeichenfolge verwendet Wenn die Funktion zurückkehrt, beträgt die Ausgabe also 16 Yards Fantastisch. Jetzt haben Sie ein solides Verständnis dafür wie Namespaces und Scope in Python funktionieren Jetzt ist es an der Zeit, sich mit dem letzten Kernthema dieser Kursmodule und Bibliotheken zu befassen dem letzten Kernthema dieser Kursmodule 51. Module und Bibliotheken: In früheren Vorlesungen haben wir gesehen, dass wir, wenn die eingebauten Funktionen von Bton für eine bestimmte Aufgabe nicht ausreichen, immer das erreichen können, was wir wollen, indem unsere eigenen benutzerdefinierten Funktionen erstellen Das ist großartig. Aber das Schreiben unserer eigenen Funktionen ist zeitaufwändig und wir können Fehler machen. Zum Glück gibt es in vielen Fällen eine andere Option In der Tat bietet PTN ein riesiges Ökosystem von Modulen und Bibliotheken mit vorgefertigtem und getestetem Code, der eine Vielzahl von Aufgaben ausführen kann In diesem Video erfahren wir, wie wir diese leistungsstarken PTN-Bibliotheken in unsere Programme integrieren und verwenden Wir werden langsam beginnen, indem wir die Bibliotheken anhand einer Analogie vorstellen die Bibliotheken anhand einer Analogie Stellen Sie sich vor, PyTN funktioniert wie die Bücher in Ihrem persönlichen Bücherregal Diese Bücher sind, genau wie die integrierten Funktionen , sofort zugänglich, aber in ihrer Anzahl begrenzt Wenn das Buch, das Sie benötigen , zu Hause nicht gefunden werden kann, können Sie es möglicherweise in Ihrer Stadtbibliothek finden . In unserer Analogie fungieren PyTON-Bibliotheken als das Programmieräquivalent zu Stadtbibliotheken Sie erweitern den Funktionsumfang , wenn die integrierten Funktionen von Pton nicht ausreichen PTN bietet ein riesiges Ökosystem von Bibliotheken, jeweils unterschiedliche Programmieranforderungen erfüllen Unter diesen sticht die PyTN Standard Library als eine der wichtigsten hervor Hier werden wir also unsere Erkundung von Bibliotheken beginnen. So wie eine Stadtbibliothek in Abschnitte unterteilt ist, in denen jeweils Bücher desselben Genres gruppiert sind, ist die PyTN Standard Library in Module unterteilt, die jeweils verwandte Funktionen gruppieren Die Bton Standard Library verfügt beispielsweise über ein Mathematikmodul, das Funktionen enthält, die mathematische Operationen wie Bilden der Quadratwurzel oder des Logarithmus Die Bibliothek umfasst auch ein Zufallsmodul, das Funktionen zur Generierung von Zufallszahlen bereitstellt, was für Simulationen nützlich ist, und ein Statistikmodul, das Funktionen zur Berechnung gängiger Statistiken wie Mittelwert und Median bereitstellt gängiger Statistiken wie Mittelwert und Median Da der Zugriff auf die Bücher in der Stadtbibliothek jedoch mehr Aufwand erfordert als auf die Bücher, die Sie zu Hause haben, sind die Funktionen der PTN-Standardbibliothek nicht so leicht verfügbar wie die integrierten Funktionen von PTN Um eine Funktion aus einem Modul der Standardbibliothek verwenden zu können, müssen wir zuerst die Funktion aus der Bibliothek auschecken , indem wir sie in unser Programm importieren Um beispielsweise die Quadratwurzelfunktion SQRT aus dem MAT-Modul zu importieren , schreiben wir aus MAT Import square root In dieser Anweisung weist der fra Mat-Teil Piton an, dass wir eine Funktion aus dem MT-Modul abrufen wollen eine Funktion aus dem MT-Modul abrufen Der SQRT-Teil für den Import gibt an , welche Funktion wir aus diesem Modul importieren möchten Nach dem Import können wir die Quadratwurzelfunktion in unserem Programm so oft verwenden die Quadratwurzelfunktion in unserem Programm so , wie wir benötigen, genau wie jede eingebaute Funktion Neben der Quadratwurzelfunktion enthält das MT-Modul viele weitere hilfreiche Funktionen. Zum Beispiel berechnet die PD-Funktion das Produkt der Elemente in einer Liste Diese Funktion könnte hilfreich sein, um anhand einer Liste der jährlichen Wachstumsraten die kumulative Wachstumsrate einer Volkswirtschaft in den letzten fünf Jahren zu berechnen einer Volkswirtschaft in den letzten fünf Jahren Liste der jährlichen Wachstumsraten die kumulative Wachstumsrate einer Volkswirtschaft in den letzten fünf Jahren zu Die Verwendung der Pd-Funktion ist in diesem Fall natürlich nicht erforderlich Wir könnten die Antwort finden, indem wir vier Schleifen verwenden die Elemente der Liste nacheinander durchgehen, um das kumulative Produkt der Wachstumsraten zu berechnen Aber warum das Rad neu erfinden, wenn der Import der Prod-Funktion Neben dem MT-Modul die PyTN Standard-Bibliothek enthält die PyTN Standard-Bibliothek viele weitere nützliche Module, von denen Sie einige in den Übungen kennenlernen werden Leider können wir in diesem Kurs nicht allen Funktionen der PyTN Standard-Bibliothek gerecht in diesem Kurs nicht allen Funktionen der PyTN Standard-Bibliothek Es gibt einfach zu viele. Aus diesem Grund gibt es auf der Git-Up-Seite dieses Kurses einen Link zur Dokumentation der PTN Standard Library, gibt es auf der Git-Up-Seite dieses Kurses einen Link zur Dokumentation der PTN Standard Library wo Sie eine Liste der Funktionen finden , die in diesem Modul enthalten sind können diese Ressource jederzeit aufrufen , wenn Sie nach einer bestimmten Funktion suchen oder die Funktionen eines bestimmten Moduls in der PyTN Standard Library erkunden eines bestimmten Moduls in der PyTN Standard So umfassend sie auch ist, die PTN-Standardbibliothek hat jedoch auch Grenzen So wie Ihre Stadtbibliothek nicht alle Bücher enthält, die jemals geschrieben wurden, die PTN-Standardbibliothek auch keine Funktionen für alle möglichen Programmieranforderungen Zum Glück gibt es andere Bibliotheken, sogenannte externe Bibliotheken, die in solchen Situationen helfen können Externe Bibliotheken wurden von der PTN-Community erstellt, um spezifische Programmieranforderungen zu erfüllen, die von Datenanalyse und maschinellem Lernen bis hin zu Webentwicklung, Datenvisualisierung und mehr Um Zugriff auf diese externen Bibliotheken zu erhalten, müssen Sie zunächst einen Bibliotheksausweis erwerben, indem Sie sie installieren. In einer interaktiven Notebook-Umgebung wie Google Colab können Sie diesen Bibliotheksausweis mit dem von PTN bevorzugten Installationsprogramm, auch bekannt als PIP, abrufen mit dem von PTN bevorzugten Installationsprogramm, auch bekannt als PIP, , um ein externes Ausrufezeichen vom Typ Bibliothek, PIP install, gefolgt vom Namen der Bibliothek, die Sie installieren möchten, in einer Codezelle zu Diese Codezeile weist PyTN an, die MTPLTLib-Bibliothek zu installieren, ein beliebtes Tool zur Datenvisualisierung in PTN PyTN an, die MTPLTLib-Bibliothek zu installieren, ein beliebtes Tool zur Datenvisualisierung in PTN. Es ist erwähnenswert, dass Google Colab mit vielen gängigen Bibliotheksausweisen vorausgestattet ist . Zum Beispiel ist Matpltib eine dieser vorinstallierten Bibliotheken in Colab, da die Ausgabemeldung „Anforderung bereits erfüllt“ anzeigt, wann wir den wann Die Neuinstallation einer vorinstallierten Bibliothek schadet nicht, ist aber nicht notwendig und kann Nach der Installation einer Bibliothek können wir die Punktnotation verwenden, um bestimmte Funktionen in unser Programm zu importieren Hier importieren wir die Plotfunktion aus dem PyPlot-Modul in die MatplotLib-Bibliothek Wir sollten wissen, dass wir beim Import der PD-Funktion aus dem MAT-Modul der PyTon-Standardbibliothek den Namen der Bibliothek nicht angegeben haben Die BTN-Standardbibliothek ist die Ausnahme. Für diese Bibliothek und nur für diese Bibliothek müssen wir den Namen der Bibliothek nicht angeben , bevor wir auf ihr Modul zugreifen Für alle anderen Bibliotheken, einschließlich MatplotLib, müssen wir den Bibliotheksnamen angeben bevor wir auf ihre Module zugreifen Sobald eine Funktion aus einer externen Bibliothek importiert wurde, kann sie wie jede andere Funktion im Programm verwendet werden wie jede andere Nehmen wir zum Beispiel an, wir haben eine Liste von Zahlen, X, die wir mit einer anderen Zahlenliste vergleichen wollen , y? Dies kann mit einem Aufruf der Plot-Funktion geschehen, wobei X und Y als Argumente übergeben werden. Wenn wir die Zelle ausführen, erhalten wir ein Diagramm unserer Daten. Fantastisch. Aber in diesem Stadium fragen Sie sich vielleicht, wie ich feststellen kann , ob es eine externe Bibliothek gibt , die mir bei der Lösung einer bestimmten Programmieraufgabe helfen kann ? Da es derzeit Tausende von externen Bibliotheken gibt und ständig weitere eingeführt werden, ist es nicht die Lösung, zu merken sich die Liste der verfügbaren Bibliotheken Der beste Weg, um herauszufinden, ob es eine externe Bibliothek gibt, die Ihnen helfen kann, ist stattdessen ob es eine externe Bibliothek gibt, die Ihnen helfen kann, ist eine Google-Suche oder eine Abfrage nach Ihrem bevorzugten großen Sprachmodell wie Chat GPT Sobald Sie eine Bibliothek gefunden haben , die für Ihre Aufgabe nützlich sein könnte, sollten Sie deren Dokumentation nachschlagen, um das spezifische Modul zu finden , in dem sich die Funktionen befinden, an denen Sie interessiert sind Eine Google-Suche ist im Allgemeinen alles, was benötigt wird, um die Dokumentation zu finden. In den Übungen und im Abschlussprojekt werden Sie einige der beliebtesten externen Bibliotheken von PTN im Detail erkunden beliebtesten externen Bibliotheken von PTN im und sich mit diesem Entdeckungsprozess vertraut machen Zusammenfassend lässt sich sagen, dass, wenn die in PyTN eingebaute Funktion und die Standardbibliothek nicht ausreichen, externe Bibliotheken eine große Anzahl zusätzlicher Funktionen bieten eine große Anzahl zusätzlicher Um auf diese Funktionen zugreifen zu können, müssen wir jedoch zuerst die Bibliothek installieren, die die gewünschte Funktion enthält , und sie dann in unser PTN-Programm importieren Die umfangreiche Sammlung von Bibliotheken, die in PTN verfügbar sind , ist eine der größten Stärken der Sprache Durch die Nutzung des globalen Wissens der PyTON-Community können Benutzer wie Sie auf den Schultern von Giganten stehen und komplexe Aufgaben mit bemerkenswerter Effizienz bewältigen Aber verlassen Sie sich nicht auf mein Wort. Der beste Weg, die Leistungsfähigkeit von PyTON-Bibliotheken zu schätzen , besteht darin, sie in Aktion zu sehen Im nächsten Video werden wir gemeinsam einige Anwendungsfälle untersuchen 52. Geführte Beispiele für Module und Bibliotheken: Seit wir Jamie und Pike das letzte Mal getroffen haben, haben sie ihre herausfordernde fünftägige Wanderung erfolgreich abgeschlossen ihre herausfordernde fünftägige Zu Hause fühlt sich Jamie stolz und Sie möchte ihr Abenteuer gerne mit Freunden und Familie teilen und beschließt , dass eine visuelle Darstellung unseres täglichen Fortschritts helfen würde, die Geschichte zu erzählen Obwohl Pike nicht von Natur aus zeichnen kann, weiß er genau, wo er die richtigen Werkzeuge findet, um die Figur zu kreieren, die Jamie So wie Pike sich beim Zeichnen eines Diagramms auf externe Tools verlassen muss , werden wir uns auf externe Bibliotheken verlassen eine schöne Figur zu erstellen Genauer gesagt werden wir die Matpltib-Bibliothek verwenden. Wie wir in einem früheren Video erwähnt haben, ist die Matpltib-Bibliothek bereits in Colab installiert, sodass wir die Installation in dieser Arbeitsmappe überspringen können Wie wir gesehen haben, kann die Plotfunktion des Pilotmoduls Zahlen erzeugen, also importieren wir Wir werden auch die Show-Funktion importieren , um PyTon anzuweisen, den von uns erstellten Plot anzuzeigen Sie können die Show-Funktion zwar importieren indem Sie eine separate Importanweisung wie diese schreiben, es gibt auch eine prägnantere Methode, dies zu tun Tatsächlich ermöglicht uns PTN, mehrere Funktionen aus demselben Modul zu importieren , indem wir die zu importierenden Funktionen nach dem Schlüsselwort import auflisten Funktionen nach dem Schlüsselwort import Fantastisch. Lassen Sie uns nun Listen erstellen, die die Informationen enthalten, die wir plotten möchten. Die erste Liste, die wir erstellen, enthält die Tage der Wanderung, und die zweite Liste enthält die entsprechenden Meilen, die wir an jedem dieser Tage Dann rufen wir die Plotfunktion mit der Tagesliste als X-Achsenwert und der Liste der gewanderten Kilometer als Y-Achsenwert auf Schließlich weisen wir Bton an, die Zahl anzuzeigen, indem wir die Show-Funktion aufrufen die Zelle ausführen, erhalten wir ein Diagramm der an jedem Tag zurückgelegten Meilen Das ist in Ordnung, aber Sie werden mir sicherlich zustimmen, dass diese Handlung ziemlich einfach ist. Insbesondere gibt es keinen Titel und die Achsen sind nicht beschriftet. Lass uns das beheben. Um einem Diagramm einen Titel und Achsenbeschriftungen hinzuzufügen, müssen wir die Funktionen Titel, X-Label und Y-Label importieren . Dann rufen wir jede Funktion übergeben den gewünschten Titel oder die gewünschte Bezeichnung als Argument. Ordentlich. Wenn wir unseren Code erneut ausführen, erhalten wir ein Diagramm mit einem aussagekräftigen Titel und einer richtig beschrifteten Achse Dies sind jedoch bei weitem nicht die einzigen Anpassungsoptionen, die uns zur Verfügung stehen Nehmen wir zum Beispiel an, Jamie möchte in der Grafik eine horizontale Linie zeichnen , die die durchschnittliche tägliche Meile darstellt, die sie in den fünf Tagen gewandert Dies kann mit der AxhLine-Funktion in zwei Schritten erfolgen. Im ersten Schritt berechnen wir die durchschnittlich täglich gewanderten Meilen Im zweiten Schritt übergeben wir den Durchschnitt als Argument der AxhLine-Funktion Nachdem wir unseren Code ausgeführt haben, erhalten wir ein aktualisiertes Diagramm, in dem die durchschnittlichen täglichen Meilen durch eine horizontale Linie dargestellt werden durch eine horizontale Linie dargestellt Mit dieser neuen Linie, die dem Diagramm hinzugefügt wurde, ist es jetzt leicht zu erkennen, an welchen Tagen Jamie mehr als der Durchschnitt gewandert Und das hat zur Folge, dass unsere Grafik immer informativer wird Dennoch stehen uns zahlreiche zusätzliche Optionen zur Verfügung, um die visuelle Attraktivität und Effektivität unserer Grafik zu verbessern . Beispielsweise stellt MtlTib Daten standardmäßig als dünne blaue Linie ohne Markierungen für einzelne Datenpunkte dar dünne blaue Linie ohne Markierungen für einzelne Wir können jedoch die Sichtbarkeit unserer Daten verbessern, indem wir in der Plotfunktion einen Markerstil angeben Plotfunktion einen Markerstil Die Übergabe der Zeichenfolge Oh weist PyTon an, kreisförmige Markierungen um die Datenpunkte herum hinzuzufügen und dabei die Verbindungslinien zwischen ihnen beizubehalten Beim Ausführen des Codes stellen wir fest, dass Datenpunktmarkierungen entsprechend hinzugefügt wurden. Das ist großartig. Lassen Sie uns nun unser Diagramm interessanter gestalten, indem unterschiedliche Linienfarben für jede Datenreihe unterschiedliche Linienfarben und -stile verwenden. Nehmen wir zum Beispiel an, dass unsere durchschnittliche Meilenlinie gestrichelt und orange sein soll Dies kann mit den Schlüsselwortargumenten AxH-Linien, Farbe und Linienstil geschehen Schlüsselwortargumenten AxH-Linien, Farbe und Linienstil Durch die Ausführung der Zelle wird unser Diagramm mit den neuesten Änderungen aktualisiert . Ziemlich richtig. Als letzten Schliff fügen wir unserer Figur eine Legende hinzu. Dazu benötigen wir die Legendenfunktion. Meiner Meinung nach besteht die bequemste Art, die Legendenfunktion zu verwenden , darin, zunächst Beschriftungen für jede Zeile in unserem Diagramm zu erstellen. Rufen Sie dann einfach die Legendenfunktion ohne Argument auf. Standardmäßig verwendet die Legendenfunktion die bereitgestellten Beschriftungen , um die Legende zu erstellen. Wunderbar. Nun, das ist eine professionell aussehende Grafik. Wie Sie sehen können, bietet das Piplot-Modul leistungsstarke Funktionen zur Datenvisualisierung Tatsächlich enthält das Piplot-Modul so viele Funktionen , dass es umständlich sein kann, sie alle einzeln zu importieren sein kann, sie alle einzeln Zum Glück bietet PyTon einen effizienteren Ansatz. Das heißt, wir können das gesamte Modul auf einmal importieren , indem wir die folgende Syntax verwenden Importieren Sie Matplotlib dot Pilot. Wenn wir das gesamte Modul auf diese Weise importieren, können wir mithilfe der Punktnotation auf die Modulfunktion zugreifen mithilfe der Punktnotation auf die Modulfunktion Wie Sie sehen, kann die wiederholte Eingabe des vollständigen Modulnamens umständlich sein. unseren Code zu rationalisieren, verwenden wir daher beim Import ganzer Module häufig Aliase Wir erstellen einen Alias, indem wir das Schlüsselwort hinzufügen gefolgt von einer kurzen beschreibenden Bezeichnung nach der Für das Pipelot-Modul ist PLT ein üblicher Alias auf diese Weise einen Alias definieren, können wir in unserem gesamten Code die kürzere PLT anstelle von matplotlib dot piePLT verwenden Code die kürzere PLT anstelle von matplotlib dot Fantastisch. Jamie ist begeistert von der Grafik , die Pike gezeichnet Sie veröffentlicht es in den sozialen Medien und erhält jede Menge Likes. Während wir uns darauf vorbereiten, das Abschlussprojekt dieses Kurses in Angriff zu nehmen, verabschieden wir uns vorerst von Jamie und Pike Wir sehen uns auf den Trails, Jamie und Pike. Wie Sie sehen können, ist Matpltlib eine mächtige Bibliothek. Wir werden sie in den Übungsbüchern genauer untersuchen genauer Neben Mat Plutlb können Sie in den Übungsbüchern auch mehrere andere sehr nützliche PyTON-Bibliotheken erkunden andere sehr 53. Python Standardbibliothek-Übungen: In dieser Arbeitsmappe haben Sie sich mit den mathematischen Zufalls - und Statistikmodulen aus der Python-Standardbibliothek befasst Lassen Sie uns die Lösungen durchgehen. In der ersten Übung haben wir das Mathe-Modul untersucht. In Teil A erhielten wir eine Liste der Bevölkerungsdichten und wurden gebeten, für jeden Wert in der Liste die Quadratwurzel zu berechnen Dazu wenden wir die SQRT-Funktion des Mathematik-Moduls an und fügen jedem Element zehn hinzu, indem wir entweder eine Viererschleife oder ein Listenverständnis verwenden entweder eine Viererschleife oder ein Listenverständnis Beide Methoden geben uns die Größe des Schutzgebiets berechnet anhand der Anzahl der Hirsche in jeder Herde, aber die Liste ist prägnanter In Teil B wurden wir gebeten, die Wachstumsrate der Froschpopulation anhand der bereitgestellten Wachstumsgleichung und der bereitgestellten Daten zu berechnen Froschpopulation anhand der bereitgestellten Wachstumsgleichung und der bereitgestellten Daten Um diese Gleichung in Python zu implementieren, verwenden wir die Funktionen EXP und Log aus dem Mathematikmodul Die EXP-Funktion berechnet die natürliche Exponentialzahl und erhöht E auf die Potenz ihres Arguments, während die Log-Funktion den natürlichen Logarithmus berechnet , wenn sie aufgerufen wird ohne eine andere Basis als Argument anzugeben Wir berechnen die wöchentliche Wachstumsrate der Froschpopulationen auf 111,47%. In Teil C erhielten wir eine Liste des täglichen Futterbedarfs für mehrere Arten und wurden gebeten, ihren Gesamtnahrungsbedarf für die Wintersaison von 120 Tagen zu berechnen ihren Gesamtnahrungsbedarf für die Wintersaison von 120 Tagen Entscheidend ist, dass wir vor der Berechnung der Gesamtaufnahme über die einhundertzwanzig Tage jeden Wert aufrunden mussten, über die einhundertzwanzig Tage jeden Wert aufrunden mussten, da die Notnahrung nur in ganzen Einheiten verfügbar ist Zu diesem Zweck wenden wir die SEL-Funktion aus dem Mathematikmodul auf jedes Element der täglichen Nahrungsaufnahmeliste ein Listenverständnis verwenden Als Nächstes multiplizieren wir jeden gerundeten Wert mit 120 Tagen, um den Gesamtbedarf an Nahrung für die Wintersaison Wie Sie sehen können, führt das Versäumnis, die täglichen Aufnahmemengen vor der Multiplikation aufzurunden , zu merklich unterschiedlichen Gesamtwerten Alternativ können wir dasselbe Ergebnis erzielen , indem wir anstelle eines Listenverständnisses vier Schleifen verwenden anstelle eines Listenverständnisses vier Schleifen In Übung zwei haben wir das Statistikmodul verwendet, um den Mittelwert, den Median und den Modus der angegebenen Anzahl an Elchpopulationen zu berechnen Median und den Modus der angegebenen Anzahl an Elchpopulationen Das Statistikmodul nimmt uns die Arbeit ab, indem es die Funktionen Mittelwert, Median und Modus bereitstellt Wir übergeben einfach die Liste der Bevölkerungszahlen an jede der Funktionen und geben die Ergebnisse aus Schließlich haben wir uns in Übung drei mit dem Zufallsmodul befasst In Teil A wurden wir gebeten, die einheitliche Funktion der Zufallsmodule zu verwenden , um die potenzielle Restlebensdauer jedes Kaninchens, das wir beobachten, zu modellieren die potenzielle Restlebensdauer jedes Kaninchens, das wir beobachten und die voraussichtliche Gesamtlebensdauer zu berechnen Wir beginnen mit einem Listenverständnis mit der Funktion Uniform, die eine Gleitkommazahl zwischen zwei angegebenen Werten generiert In unserem Beispiel generiert unser Listenverständnis bei einem Kaninchen, das heute 8 Jahre alt ist, generiert unser Listenverständnis eine zufällige Gleitkommazahl von 0-12 minus acht, was vier ist, um die verbleibende potenzielle Lebensdauer zu modellieren Mithilfe des Listenverständnisses berechnen wir die prognostizierte Lebenserwartung für jedes Kaninchen in unserer Liste mit dem Alter von Kaninchen wir die prognostizierte Lebenserwartung für jedes Kaninchen in unserer Liste mit dem Alter von Kaninchen . Um dann die Gesamtlebensdauer für jedes Kaninchen zu berechnen, verwenden wir ein anderes Listenverständnis Die ZIP-Funktion verknüpft das Alter jedes Kaninchens mit entsprechenden prognostizierten verbleibenden Lebensdauer Wir addieren das aktuelle Alter jedes Kaninchens zu seiner voraussichtlichen verbleibenden Lebensdauer um die voraussichtliche Gesamtlebensdauer zu berechnen Schließlich verwenden wir vier Schleifen, um die Ergebnisse auszugeben. In Teil B erhielten wir die Wahrscheinlichkeiten verschiedener Wetterereignisse und wurden die Wahrscheinlichkeiten verschiedener gebeten, das Wachstum der Kaninchenpopulation in den nächsten 12 Monaten zu modellieren das Wachstum der Kaninchenpopulation in den nächsten , um ihre Größe in einem Jahr prognostizieren zu können. Wir haben dafür die Funktion zur Auswahl zufälliger Module verwendet. Wir geben die Bevölkerungswachstumsraten als die Werte ein, aus denen nach dem Zufallsprinzip ausgewählt werden soll, die Wetterwahrscheinlichkeiten als Gewichte, die die Funktion verwenden sollte, und K ist gleich 12, was der Funktion mitteilt, dass sie 12 zufällige Bevölkerungswachstumsraten auswählt 12 zufällige Bevölkerungswachstumsraten Dieser Aufruf führt zu einer Liste von 12 simulierten Bevölkerungswachstumsraten, eine für jeden der nächsten Anschließend wenden wir diese Raten in vier Schleifen auf die Kaninchenpopulation an, wenden wir diese Raten in vier Schleifen auf die Kaninchenpopulation an deren Wachstum in den nächsten 12 Monaten kumulativ zunimmt Schließlich geben wir die prognostizierte Kaninchenpopulation für ein Jahr In Teil C haben wir unsere Simulation dahingehend erweitert, dass sie mehrere 12-Monats-Populationsprognosen gleichzeitig Wir betten unseren Code aus Teil B in eine Vierschleife ein , die zehnmal ausgeführt wird. Dabei fügen wir das Ergebnis jeder Simulation an die Liste der simulierten Pops Wenn die Schleife nicht mehr läuft, geben wir die Liste mit zehn simulierten Bevölkerungsprognosen aus In Teil D verwenden wir das Statistikmodul, um die Liste von zehn Bevölkerungsprognosen zu analysieren , die wir in Teil C erstellt haben. Insbesondere berechnen wir die mittlere Standardabweichung und die Quartile unserer Wie in der zweiten Übung stellt das Statistikmodul alle erforderlichen Funktionen bereit, sodass wir einfach die Funktionen für die mittlere Standardabweichung und die Quantile aufrufen die mittlere Standardabweichung und die Quantile Standardmäßig berechnet die Quantilfunktion Quartile, aber sie ermöglicht es Ihnen auch, den N-Parameter anzupassen, um die Daten bei Bedarf in mehrere Abschnitte zu unterteilen die Daten bei Bedarf in Schließlich haben wir in Teil E die CD-Funktion Random Modules verwendet, um unsere Zufallswerte reproduzierbar zu machen Der Startwert muss gesetzt werden, bevor Zufallswerte generiert Dadurch wird sichergestellt, dass alle von der Choices-Funktion erzeugten Werte zufällig sind , aber in zukünftigen Durchläufen reproduziert werden können. Das Setzen eines Startwerts wird häufig zum Testen oder Debuggen von Code verwendet , bei dem Zufallswerte verwendet werden Großartig. Wie Sie gesehen haben, ist die Python-Standardbibliothek ein leistungsstarker Satz integrierter Tools, die bei der Lösung vieler Arten von Problemen helfen können . Aber wie wir in früheren Videos erwähnt haben, gibt es viele andere externe Bibliotheken, die von der Python-Community bereitgestellt werden und die uns zur Verfügung stehen. In den nächsten Videos haben Sie die Möglichkeit, mehrere dieser Bibliotheken zu erkunden. 54. Matplotlib-Übungen: In dieser Arbeitsmappe haben Sie gelernt, wie Sie mit dem verschiedene grundlegende Typen von Diagrammen und Grafiken erstellen können Matplotlib-Bibliothek Lassen Sie uns die Lösungen aufschlüsseln. In der ersten Übung erhielten wir eine Liste mit Verkaufsdaten und nutzten ein Liniendiagramm, um sie zu visualisieren. MatplotLib ermöglicht es uns, ein Liniendiagramm zu erstellen, indem wir hier die Plotfunktion mit einer Liste von X-Koordinaten, dem Tagesbereich und einer Liste von Y-Koordinaten, den Verkaufsdaten, aufrufen hier die Plotfunktion mit einer Liste von X-Koordinaten, dem Tagesbereich und einer Liste von Y-Koordinaten, den Verkaufsdaten, Darüber hinaus können wir das Liniendiagramm anpassen , indem wir eine Farbe, einen Markerstil, eine Linienbreite und eine Markierungsgröße angeben Markerstil, eine Linienbreite und eine Markierungsgröße Dann fügen wir einen Titel, X-Label und ein Y-Label hinzu, indem wir die entsprechenden Funktionen aufrufen. Schließlich fügen wir ein Raster hinzu und zeigen das Diagramm an. In Übung zwei erhielten wir Listen mit Kategorien und Verkaufsdaten und erstellten ein Balkendiagramm das die Umsatzverteilung der drei Kategorien zeigt. Dazu verwendeten wir die Balkenfunktion und übergaben die Warenkategorien als X-Variable und die Verkaufsdaten als Y-Variable. Zusätzlich haben wir eine Liste mit Farben zur Anpassung der Diagrammbalken übergeben eine Liste mit Farben zur Anpassung der und einen Titel und Beschriftungen für die X- und Y-Achse hinzugefügt . Um dann die Verkaufsdaten am oberen Rand jedes Balkens hinzuzufügen , haben wir eine Libs-Textfunktion mit vier Schleifen und Matplot verwendet Diese Funktion verwendet X- und Y-Koordinaten für die Beschriftungen als erste beiden Argumente, gefolgt von dem anzuzeigenden Text und der horizontalen Ausrichtung Schließlich zeigen wir das Diagramm an. In Übung drei erhielten wir den Prozentsatz der Kunden in verschiedenen Altersgruppen und erstellten ein Kreisdiagramm, um die Daten zu visualisieren. Wir haben mit der Pi-Funktion von Matplotlib ein Kreisdiagramm erstellt dabei die Prozentliste als Daten und die Altersgruppenliste als Beschriftungen übergeben Daten und die Altersgruppenliste Darüber hinaus verwendet die Pi-Funktion das Labelformat „Slice Percentage“ und die Liste mit Keilfarben als Schlüsselwortargumente Als Nächstes fügen wir unserem Diagramm einen Titel und eine Legende hinzu. Die Legendenfunktion verwendet die anzuzeigenden Daten als beliebige Argumente und andere Formatierungsfunktionen wie Titel und Position als beliebige Schlüsselwortargumente. Schließlich zeigen wir das Diagramm mit der Show-Funktion an. Schließlich erhielten wir in der vierten Übung Daten zu den Werbeausgaben und den daraus resultierenden Verkäufen und erstellten ein Streudiagramm, um die Beziehung zwischen den beiden Variablen zu visualisieren Zu diesem Zweck haben wir die Streufunktion aufgerufen die Daten zu Werbeausgaben und Verkäufen weitergegeben Wir haben die Farbe und Größe unserer Streupunkte mit zwei zusätzlichen Argumenten angepasst Größe unserer Streupunkte mit und dem Diagramm die Beschriftungen Titel X und Y hinzugefügt Diagramm die Beschriftungen Titel X und Y Schließlich haben wir das Diagramm mit der Show-Funktion angezeigt. Großartig. Sie haben jetzt Erfahrung mit der Erstellung von Linien -, Balken- und Kreisdiagrammen sowie Streudiagrammen mit MtPotIB Wir haben jedoch gerade erst begonnen, sein Potenzial auszuloten. Matplotlib ist ein unverzichtbares Tool für die Datenvisualisierung in Python, und ich ermutige Sie, seine Funktionen weiter zu erkunden , um Ihre Fähigkeiten zur Problemlösung in Zukunft zu verbessern Ihre Fähigkeiten zur Problemlösung in 55. Pandas-Übungen: In dieser Arbeitsmappe haben Sie die Pandas-Bibliothek untersucht, um Flugdaten zu analysieren und zu manipulieren Lassen Sie uns die Lösungen besprechen. In Übung eins, Teil A, haben wir die angegebenen Flugdaten in einen Datenrahmen geladen. Dazu haben wir einfach unsere Daten an die Dataframe-Funktion übergeben unsere Daten an die Dataframe-Funktion Wenn wir dann unsere Daten ausgeben, sie als gut formatierter Datenrahmen angezeigt In Teil B mussten wir die ersten beiden Flüge in unserem Fluginformationsdatenrahmen anzeigen die ersten beiden Flüge in unserem Fluginformationsdatenrahmen DataFrames haben eine Methode namens head, die eine ganze Anzahl von Zeilen benötigt , um sie als Argument anzuzeigen Die Ausgabe dieses Methodenaufrufs mit dem Argument two sind die ersten beiden Zeilen unseres Fluginformationsdatenrahmens In Teil C mussten wir zusammenfassende Statistiken über unseren Fluginformationsdatenrahmen erstellen . DataFrames bieten eine Methode namens describe , mit der verschiedene nützliche Statistiken wie Mittelwert und Standardabweichung berechnet wie Mittelwert In Übung zwei haben wir gelernt, wie wir unseren Datenrahmen auf der Grundlage bestimmter Bedingungen filtern Grundlage In Teil A haben wir einen Datenrahmen erstellt, der nur Flüge nach LAX enthält Zu diesem Zweck verwendeten wir zunächst einen bedingten Ausdruck, der identifizierte , welche Werte in der Zielspalte unseres Datenrahmens LAX entsprachen Dadurch wurde eine Reihe von Booleschen Werten erstellt , mit denen wir unseren Datenrahmen filtern Der resultierende Datenrahmen enthält nur die Flüge, die für LAX bestimmt sind In Teil B haben wir unseren Fluginformationsdatenrahmen so gefiltert, dass nur Flüge mit einer Ankunftsverzögerung von mehr als 20 Minuten angezeigt einer Ankunftsverzögerung von mehr als 20 Wie in Teil A haben wir einen Ausdruck angegeben, um Flüge mit Ankunftsverspätungen von weniger als oder gleich 20 Minuten herauszufiltern Flüge mit Ankunftsverspätungen . Der resultierende Datenrahmen enthält nur Flüge mit Verspätungen von mehr als 20 Minuten. In Übung drei haben wir Berechnungen mit Datenrahmenspalten durchgeführt . In Teil A haben wir eine neue Spalte für die Gesamtverspätung hinzugefügt , um die gesamten An- und Abflugverspätungen für jeden Flug nachzuverfolgen . Um diese Spalte zu erstellen, haben wir die Werte in den Spalten Abflugverzögerung und Ankunftsverzögerung summiert und Python angewiesen , diese Daten in einer neuen Spalte namens Gesamtverzögerung zu speichern einer neuen Spalte namens Gesamtverzögerung Wenn wir den aktualisierten Datenrahmen anzeigen, sehen wir, dass unsere neue Spalte für die Gesamtverzögerung hinzugefügt wurde In Teil B haben wir die durchschnittliche Gesamtverspätung aller Flüge berechnet . Da wir die Spalte für die Gesamtverspätung bereits in Teil A berechnet haben, rufen wir in der Spalte für die Gesamtverspätung einfach die Mittelwertmethode von Panda auf. Das Ergebnis zeigt uns, dass die durchschnittliche Gesamtverspätung bei allen Flügen 35 Minuten beträgt. In Teil C haben wir die durchschnittliche Gesamtverspätung für Flüge nach ORD berechnet . Zu diesem Zweck haben wir zunächst den Fluginformationsdatenrahmen gefiltert , wie wir es in Übung zwei getan haben. Dann wenden wir die Mittelwertmethode auf die Spalte mit der Gesamtverzögerung des Datenrahmens an, der die für ORD bestimmten Flüge enthält Wir ermitteln, dass die durchschnittliche Verspätung für Flüge nach RD 46,25 Minuten beträgt Schließlich haben wir in Übung vier gelernt, wie man Datenrahmen sortiert In Teil A haben wir den Fluginformationsdatenrahmen nach der Gesamtverzögerung in absteigender Reihenfolge sortiert den Fluginformationsdatenrahmen Gesamtverzögerung in absteigender Reihenfolge Pandas bietet die Methode zum Sortieren von Werten, an die wir die Spalte übergeben , nach der sortiert werden soll, und ob die Reihenfolge aufsteigend oder absteigend sein soll Dieser Methodenaufruf erzeugt einen Datenrahmen, in dem die Flüge nach der Gesamtverspätung in absteigender Reihenfolge sortiert werden Gesamtverspätung in absteigender Reihenfolge Schließlich sortieren wir in Teil B unseren Fluginformationsdatenrahmen nach Abflugverzögerung in aufsteigender Reihenfolge Wie in Teil A verwenden wir die Methode „Werte sortieren“ und geben die Spalte an, Methode „Werte sortieren“ und geben die nach der sortiert werden soll, und zwar in aufsteigender Reihenfolge Dieser Methodenaufruf gibt einen Datenrahmen aus, in dem die Flüge nach der Abflugverspätung in aufsteigender Reihenfolge sortiert sind Fantastisch. Pandas ist eine leistungsstarke Python-Bibliothek für Datenmanipulation und -analyse, die flexible Datenstrukturen wie Datenrahmen für den effizienten Umgang mit strukturierten Daten bietet Datenrahmen für den effizienten Umgang mit strukturierten Daten Sie können sie in Ihren eigenen Projekten verwenden, um die Datenbereinigung, -transformation und -visualisierung sowie die Bearbeitung großer Datensätze und die Durchführung von Analysen zu vereinfachen und -visualisierung sowie großer Datensätze und die Durchführung von Analysen 56. Sprachübersetzer-App-Projekt-Intro: Gratulation. Nach viel harter Arbeit hast du es zum Kursprojekt geschafft Ihre Aufgabe besteht nun darin, eine Sprachübersetzungsanwendung zu erstellen , die Text zwischen verschiedenen Sprachen übersetzen und eine Sammlung von Lieblingsübersetzungen verwalten kann Text zwischen verschiedenen Sprachen übersetzen . Sie müssen Konzepte wie While-Schleifen, Bibliotheken, Wörterbücher, Bedingungen und mehr verwenden Bibliotheken, Wörterbücher, Bedingungen und mehr In diesem Projektmodul finden Sie detaillierte Textanweisungen, finden Sie detaillierte Textanweisungen Sie durch die Erstellung Ihrer Anwendung führen Darüber hinaus haben wir den Text einer Beispielinteraktion mit dem Programm bereitgestellt den Text einer Beispielinteraktion , um Ihnen eine bessere Vorstellung davon zu geben , wie die Menüs und Funktionen funktionieren. Im Rest dieses Videos werde ich in einer kurzen Demo zeigen, werde ich in einer kurzen Demo zeigen wie die endgültige Anwendung funktionieren wird. Wenn ein Benutzer Ihre Anwendung startet, wird ihm ein Menü mit Übersetzungsoptionen angezeigt. Option eins ist Quick Translate. Diese Option übersetzt ein Wort, das der Benutzer unter Verwendung der Standardsprache von und nach Sprachen Option zwei ist das Drucken verfügbarer Sprachen. Dadurch wird eine Liste aller verfügbaren Sprachen in der Übersetzerbibliothek angezeigt aller verfügbaren Sprachen in , die Sie installieren müssen. Option drei ist das Ändern der Standardsprachen. Diese Funktion ermöglicht es dem Benutzer, Standardsprachen für die Übersetzung festzulegen sowohl die Quell - als auch die Zielsprache für die zukünftige Verwendung anzugeben . Die anfänglichen Standardsprachen sind Englisch und Spanisch, aber Benutzer können jede Sprache wählen, die sie bevorzugen. Option vier ist das Übersetzen und Erkennen der Ausgangssprache. Hier muss der Benutzer nur die Zielsprache angeben und eine Phrase eingeben. Die Anwendung erkennt automatisch die Ausgangssprache und übersetzt die Phrase entsprechend. Option fünf ist das Übersetzen und Spezifizieren von Sprachen. Diese Option fordert den Benutzer auf, sowohl die Ausgangs - als auch die Zielsprache auszuwählen , bevor er einen zu übersetzenden Satz eingibt Und schließlich gibt es bei Option sechs die Option „Verwaltete Favoriten“. Dadurch gelangt der Benutzer zu einem Untermenü, in dem er ein Wörterbuch mit seinen Lieblingsübersetzungen verwalten kann. Wenn wir Option eins wählen, verwendet die Anwendung die Standardquellsprache Englisch und die Standardzielsprache Spanisch, um den von uns eingegebenen Ausdruck zu übersetzen. Wenn wir Option zwei wählen, listet die Anwendung alle Sprachen auf, die über das Google Translator-Modul verfügbar sind . Jede Sprache wird von einer Abkürzung begleitet , die anstelle des vollständigen Sprachnamens verwendet werden kann . Als Nächstes wählen wir Option vier und geben die Zielsprache zusammen mit dem zu übersetzenden Wort ein. Die Anwendung erkennt automatisch die Ausgangssprache und führt die Übersetzung durch. Wenn wir schließlich Option sechs wählen, rufen wir ein Untermenü zur Verwaltung bevorzugter Übersetzungen auf, in dem vier zusätzliche Optionen verfügbar sind. Wenn wir Option eins wählen, können wir einen Favoriten hinzufügen. Wir können die Lieblingsphrase zusammen mit der Quell - und Zielsprache eingeben . Dann werden diese Informationen im Favoriten-Wörterbuch gespeichert. Benutzer können so viele Favoriten hinzufügen, wie sie möchten. Mit Option vier können wir unser Favoriten-Wörterbuch einsehen. Hier sehen wir, dass alle Übersetzungen zusammen mit ihren Quell- und Zielsprachen gespeichert wurden . Wenn wir zu den Übersetzeroptionen zurückkehren möchten , geben wir Null ein. Und wir können das Programm komplett beenden , indem wir erneut Null eingeben. Großartig. Jetzt ist es Zeit für dich, das Projekt zu starten. Denken Sie daran, dass in diesem Modul detaillierte Anweisungen Schritt für Schritt sowie ein Beispiel für eine Interaktion verfügbar sind . Viel Glück und viel Spaß beim Programmieren. 57. Sprachübersetzer-App-Projektlösungen: Willkommen zum Video von Language Translators Solutions. Sie sich keine Sorgen, wenn Sie hier sind, weil Sie sich auf einer Stufe festgefahren fühlen . Wir werden die Lösung Schritt für Schritt durchgehen. Sie können weitermachen, bis Sie den Teil erreichen, der Ihnen Probleme bereitet. Und wenn Sie hier sind , weil Sie das Projekt bereits abgeschlossen haben , herzlichen Glückwunsch Sie haben viel harte Arbeit geleistet. Lassen Sie uns jetzt eintauchen und Ihre Antworten überprüfen. Im ersten Schritt beginnen wir mit der Initialisierung des Projekts. Als erstes müssen wir eine Kopie des mitgelieferten Notizbuchs erstellen Als Nächstes installieren wir die Deep Translator-Bibliothek, indem einfach den Befehl PIP install Deep Translator ausführen In Schritt A schreiben wir die Funktion „Hauptmenü anzeigen“, die die Standardsprache von und zu Sprachen als Argumente Die Print-Anweisungen zeigen das Hauptmenü des Programms an. In Schritt zwei B definieren wir zwei globale Variablen, Standard von und Standard zwei. Diese werden für die Schnellübersetzungsfunktion verwendet. Die Standardvariable „Von“ legt die Ausgangssprache während die Standardvariable „Zwei “ die Standardzielsprache festlegt. In Schritt zwei C aktualisieren wir das Hauptprogramm, um die Funktion „Hauptmenü anzeigen“ aufzurufen Funktion „Hauptmenü anzeigen die globalen Variablen, die wir in Schritt zwei B definiert haben , als Argumente zu übergeben. In Schritt drei A fordern wir den Benutzer mit einem Aufruf der Eingabefunktion zur Wahl der Übersetzungsoption auf. In Schritt drei B erstellen wir einen bedingten Block, entscheidet, welche Aktion auf der Grundlage der Benutzereingabe entscheidet, welche Aktion ausgeführt werden soll. Schließlich werden wir jede Print-Anweisung durch den entsprechenden Funktionsaufruf der Aktion ersetzen jede Print-Anweisung durch . Aber vorerst werden wir Print-Anweisungen als Platzhalter verwenden Print-Anweisungen als Platzhalter Wenn ein Benutzer eine Option auswählt, die nicht existiert, wird eine Fehlermeldung angezeigt In Schritt vier A definieren wir die globale Variable, mit der wir die Hauptprogrammschleife steuern. Dann erstellen wir in Schritt vier B die Hauptprogrammschleife. Damit der Benutzer so viele Übersetzungen machen kann, wie er möchte, verwenden wir eine Wile-Schleife, die von der globalen Variablen gesteuert wird, die wir zuvor festgelegt haben Anschließend verschieben wir den Code, der das Hauptmenü anzeigt, Wahl des Benutzers erfasst und die entsprechende Aktion innerhalb der While-Schleife bestimmt innerhalb der While-Schleife bestimmt Schließlich entfernen wir die Print-Anweisung für Option Null und setzen stattdessen die Variable should continue auf False. Wenn der Benutzer nun Null eingibt, wird das Programm beendet. In Schritt fünf A schreiben wir die Übersetzungsfunktion. Diese Funktion benötigt drei Parameter die Ausgangssprache, die Zielsprache und den zu übersetzenden Text. Innerhalb der Funktion verwenden wir das Google Translator-Modul und seine Übersetzungsmethode, um diese Übersetzung zu verarbeiten. Nun mag es etwas seltsam erscheinen, eine Methode wie translate für etwas aufzurufen eine Methode wie translate wie eine Funktion aussieht, aber das liegt daran, dass Google Translate tatsächlich ein Objekt erstellt. Das Konzept eines Objekts ist ein Begriff der objektorientierten Programmierung, den wir in diesem Kurs nicht behandelt haben . Aber mach dir keine Sorgen. ist nicht notwendig, objektorientierte Programmierung zu verstehen , um die Bibliothek für einfache Übersetzungen zu verwenden , wie wir es hier tun. Wir geben einfach das Ergebnis der Übersetzungsmethode zurück , das den übersetzten Text enthält. In Schritt fünf B schreiben wir die Funktion Quick Translate. Die Funktion verwendet die Quell - und Zielsprache als Parameter und fordert den Benutzer dann auf, den Text einzugeben, den er übersetzen möchte Um die Übersetzung durchzuführen, rufen wir die zuvor erstellte Übersetzungsfunktion übergeben die Ausgangssprache, Zielsprache und den Text des Benutzers als Argumente Schließlich erfassen wir den übersetzten Text , der von der Übersetzungsfunktion zurückgegeben wird, und zeigen ihn an. In Schritt fünf C aktualisieren wir den Bedingungsblock des Hauptprogramms, um die Schnellübersetzungsfunktion aufzurufen die Schnellübersetzungsfunktion wenn der Benutzer Option eins auswählt. Wir übergeben die Standardvariablen von und zu den Sprachvariablen als Argumente. Die einzige Eingabe, die der Benutzer für diese Option machen muss, ist also der Text, den er übersetzen möchte. In Schritt sechs A schreiben wir eine Funktion zum Drucken der verfügbaren Sprachen im Google Translator-Modul. Diese Funktion benötigt keine Parameter. Innerhalb der Funktion rufen wir die Methode für unterstützte Sprachen von G auf und fordern die Rückgabe der Ergebnisse als Wörterbuch an. Dann durchgehen wir das Wörterbuch und drucken jede Sprache zusammen mit der entsprechenden Abkürzung aus. In Schritt 6 B aktualisieren wir den Bedingungsblock im Hauptprogramm, aktualisieren wir den Bedingungsblock im Hauptprogramm um die Funktion Verfügbare Sprachen drucken aufzurufen , wenn Option zwei ausgewählt ist. In Schritt 7 A schreiben wir eine Funktion, um die Standardsprachen festzulegen , die das Programm während der Schnellübersetzungsfunktion verwenden soll. Diese Funktion benötigt keine Parameter. Innerhalb der Funktion fordern wir den Benutzer auf, eine neue Standardquellsprache und dann eine neue Standardzielsprache einzugeben eine neue Standardquellsprache und . Danach drucken wir eine Bestätigungsnachricht, die den Benutzer darüber informiert, dass die Sprachen erfolgreich aktualisiert wurden. Schließlich geben wir sowohl die Ausgangs- als auch die Zielsprache zurück. In Schritt 7 B aktualisieren wir den Bedingungsblock im Hauptprogramm, aktualisieren wir den Bedingungsblock im um die Funktion „ Standardsprachen festlegen“ aufzurufen . Da diese Funktion die neuen Quell- und Zielsprachen als Tupel zurückgibt , entpacken wir diese Werte direkt in die globalen Standardsprachvariablen In Schritt acht A schreiben wir die Funktion translate detect source lang, die eine Phrase in eine bestimmte Zielsprache übersetzt und dabei automatisch die Ausgangssprache erkennt Diese Funktion benötigt keine Parameter. Innerhalb der Funktion fordern wir den Benutzer auf, die Zielsprache einzugeben. Dann rufen wir die Schnellübersetzungsfunktion , die wir zuvor für die Übersetzung definiert haben. Um die Ausgangssprache automatisch zu erkennen, übergeben wir die Zeichenfolge auto als erstes Argument. Die vom Benutzer angegebene Zielsprache wird als zweites Argument übergeben. Da die Schnellübersetzungsfunktion den Benutzer sowohl zur Eingabe auffordert als auch den übersetzten Text ausgibt, müssen wir diese Aktionen in dieser Funktion nicht duplizieren diese Aktionen in dieser Funktion In Schritt 8 B aktualisieren wir den Bedingungsblock im Hauptprogramm, um die Quellsprachenfunktion „Translate Detect“ aufzurufen Quellsprachenfunktion „Translate Detect In Schritt neun A schreiben wir die endgültige Übersetzungsfunktion, translate specify angs. Bei dieser Funktion muss der Benutzer sowohl die Quell - als auch die Zielsprache angeben Sobald diese bereitgestellt sind, wird die Funktion Quick Translate aufgerufen, die den Benutzer zur Eingabe des zu übersetzenden Textes auffordert und dann die Übersetzung durchführt In Schritt neun B aktualisieren wir den Bedingungsblock im Hauptprogramm, um die Funktion Translate specify Lang aufzurufen Funktion Translate specify Lang In Schritt zehn A schreiben wir die Funktion zur Anzeige des Favoritenmenüs. Diese Funktion benötigt keine Eingaben und zeigt dem Benutzer einfach das Menü an. In Schritt zehn B schreiben wir die Funktion, die das Favoriten-Wörterbuch verwaltet. Diese Funktion verwendet das Favoriten-Wörterbuch als Eingabe. Innerhalb der Funktion definieren wir eine neue Loop-Control-Variable, um einen Wile-Loop zu verwalten, sodass die Benutzer so oft mit dem Menü des Favoriten interagieren können, wie sie möchten Innerhalb der Schleife zeigen wir das Favoritenmenü an und fordern den Benutzer auf, eine Option auszuwählen Da wir diese Funktionen noch nicht geschrieben haben, verwenden wir Print-Anweisungen als Platzhalter Wenn der Benutzer Null eingibt, setzen wir die Loop-Control-Variable auf False, wodurch die Favoriten-Verwaltungsschleife verlassen und zum Hauptprogrammmenü zurückkehrt In Schritt zehn C definieren wir zunächst eine neue globale Variable, um das Favoriten-Wörterbuch zu speichern. das Favoriten-Wörterbuch zu einer globalen Variablen machen , wird sichergestellt, dass es nicht jedes Mal zurückgesetzt wird, wenn der Benutzer auf das Favoritenmenü zugreift Wir aktualisieren auch den Bedingungsblock des Hauptprogramms , um die Funktion „Verwaltete Favoriten“ aufzurufen die Funktion „Verwaltete Favoriten das globale Favoriten-Wörterbuch zu übergeben Schließlich aktualisieren wir das globale Favoriten-Wörterbuch mit dem Rückgabewert der verwalteten Favoritenfunktionen. In Schritt 11 A schreiben wir die Funktion „ Favoriten hinzufügen“. Zunächst fordert diese Funktion den Benutzer auf, den Text einzugeben, den er als Favorit speichern möchte. Als Nächstes bitten wir den Benutzer, die Ausgangssprache des Originaltextes einzugeben , gefolgt von der Zielsprache, in die er ihn übersetzen möchte. Dann rufen wir die in Schritt 5 A definierte Übersetzungsfunktion auf, um die Übersetzung zu bearbeiten, wobei wir den Text, die Ausgangssprache und die Zielsprache des Benutzers als Argumente übergeben. Das Übersetzungsergebnis wird in der Übersetzungsvariablen erfasst. Anschließend erstellen wir einen neuen Eintrag im Favoriten-Wörterbuch , wobei der zu favorisierte Text als Schlüssel und ein Wörterbuch, das die Ausgangssprache, die Zielsprache und den übersetzten Text als Wert enthält , verwendet wird. Schließlich geben wir eine Bestätigungsnachricht aus, die den Benutzer darüber informiert , dass sein Favorit erfolgreich zum Wörterbuch hinzugefügt wurde , und geben das Wörterbuch zurück. In Schritt 11 B aktualisieren wir den bedingten Block in der Funktion Favoriten verwalten, den bedingten Block in der Funktion Favoriten verwalten um die Funktion zum Hinzufügen von Favoriten auszuführen wenn der Benutzer Option eins auswählt. Wir aktualisieren auch das Favoriten-Wörterbuch mit dem Rückgabewert des Funktionsaufrufs. In Schritt 12 A schreiben wir die Funktion zum Entfernen von Favoriten, die das Favoriten-Wörterbuch als Parameter verwendet. Zunächst fordert die Funktion den Benutzer auf, den Favoriten einzugeben, den er entfernen möchte Als Nächstes prüfen wir, ob die Eingabe des Benutzers im Favoriten-Wörterbuch vorhanden Ist dies der Fall, entfernen wir den Eintrag und drucken eine Bestätigungsnachricht aus. Wenn die Eingabe nicht existiert, zeigen wir stattdessen eine Fehlermeldung an. Schließlich geben wir das Favoriten-Wörterbuch zurück. In Schritt 12 B aktualisieren wir den bedingten Block in der Funktion „Verwaltete Favoriten , um die Funktion zum Entfernen von Favoriten auszuführen wenn der Benutzer Option zwei wählt. In Schritt 13 A schreiben wir die Funktion „ Favorit bearbeiten“. Zunächst fordert die Funktion den Benutzer auf, den Favoriten einzugeben, den er bearbeiten möchte Als Nächstes wird geprüft, ob der Favorit im Wörterbuch existiert. Ist dies der Fall, wird der Benutzer nach einer neuen Zielsprache gefragt , in die der Favorit übersetzt werden soll. Dann rufen wir die Übersetzungsfunktion übergeben die ursprüngliche Ausgangssprache, die neue Zielsprache und den zu übersetzenden Text. Dadurch wird der ursprüngliche Satz zurückgegeben der in die neue Sprache übersetzt wurde. Wir aktualisieren das Favoriten-Wörterbuch mit der neuen Zielsprache und der aktualisierten Übersetzung und drucken anschließend eine Bestätigungsnachricht aus. Wenn der Benutzer einen Favoriten eingegeben hat, der nicht existiert , wird eine Fehlermeldung angezeigt. Schließlich geben wir das Favoriten-Wörterbuch zurück. In Schritt 13 B aktualisieren wir den bedingten Block in der Funktion „Favoriten verwalten um die Funktion „Favoriten bearbeiten“ auszuführen wenn der Benutzer Option drei auswählt. In Schritt 14 A schreiben wir eine Funktion zum Drucken des aktuellen Favoriten-Wörterbuchs. Zunächst prüft die Funktion ob das Wörterbuch Einträge enthält. Wenn ja, verwenden wir eine Vierschleife, um über alle Schlüssel und Werte im Wörterbuch zu iterieren und sie in einer klaren und gut formatierten Zeichenfolge auszudrucken Wenn das Wörterbuch leer ist, zeigen wir einfach eine Fehlermeldung an In Schritt 14 B aktualisieren wir den bedingten Block in der Funktion „Verwaltete Favoriten“, um die Funktionalität des Druckfavoriten auszuführen falls der Benutzer Option vier wählt. Schließlich machen wir in Schritt 15 unser Programm robuster, indem Fehler behandeln, die durch ungültige Benutzereingaben entstehen können. Wir beginnen mit der Änderung der Hauptschleife unseres Programms. Wenn wir den Benutzer zur Eingabe auffordern, schließen wir den Code, der die Eingabe in eine Ganzzahl umwandelt, in einen Triblock Wenn der Benutzer nicht numerischen Text eingibt und die Umwandlung fehlschlägt, fangen wir den resultierenden Wertfehler im Except-Block ab, wo wir dem Benutzer eine informative Fehlermeldung anzeigen Außerdem verwenden wir das Schlüsselwort continue, um den Rest der aktuellen Iteration zu überspringen und die nächste zu starten, um sicherzustellen, dass das Programm nicht abstürzt Wenn die Umwandlung erfolgreich ist, der usblock ausgeführt und die endgültige formatierte Zeichenfolge Wir wenden den gleichen Ansatz zur Fehlerbehandlung auf die Funktionsschleife der verwalteten Favoriten Hier verpacken wir die Benutzereingabe in einen Triblock. Wenn die Umwandlung fehlschlägt, fangen wir den Fehler im Accept-Block ab, zeigen eine Fehlermeldung an und fahren mit der nächsten Iteration Wenn sie erfolgreich ist, wird der se-Block wie erwartet ausgeführt. Großartig. Sie haben jetzt gesehen, wie Sie eine App für Sprachübersetzungen mithilfe der Deep Translator-Bibliothek eine App für Sprachübersetzungen erstellen, die Funktionen wie schnelle Übersetzungen, anpassbare Standardsprachen und Fehlerbehandlung bietet. Fühlen Sie sich frei, die App weiter zu verfeinern und zu Ihrer eigenen zu machen. Erforsche und baue weiter. Es gibt immer mehr zu lernen.