Fortgeschrittener Python-Entwicklungskurs
Kapitel
>
Stufe
Mathematische Module
Operator Modul
Ziel
Überprüfen und verteilen Sie die neuen Bestellungen für Baustoffe für die Ackerbau-Flächennutzung mithilfe des Operator-Moduls.
Im Obergeschoss des Nebengebäudes befinden sich Büros, in denen Protokolle des Lagerbestandes und Bestellungen für die Baustoffe aufbewahrt werden, die für die neue Landerschließung benötigt werden. Es gibt eine Vielzahl unterschiedlicher Werkzeuge, mit denen die Materialien überprüft und berechnet werden können, damit sie für den Bau verwendet werden können. Neben dem Mathematik- und Statistikmodul können wir das Operator-Modul verwenden.
Dieses Modul, import operator, kann verwendet werden, um Operator-Berechnungen zu vereinfachen und bequem in Funktionen zu verpacken. Diese Funktionen können sowohl zur Optimierung als auch zur Erzeugung von Werten verwendet werden, ohne ein Objekt zur Speicherung der Berechnungswerte erstellen zu müssen.
operators.eq(): Nimmt zwei Argumente, überprüft, ob die Argumente gleich sind.operators.lt(): Nimmt zwei Argumente, überprüft, ob das erste Argument kleiner ist als das zweite Argument.operators.gt(): Nimmt zwei Argumente, überprüft, ob das erste Argument größer ist als das zweite Argument.operators.floordiv(): Nimmt zwei Argumente, teilt das erste Argument durch das zweite und wendet das Äquivalent zumath.floor()an, wobei das Ergebnis abgerundet wird.operators.mod(): Nimmt zwei Argumente und gibt den Rest der Division der beiden Argumente zurück.operators.contains(): Diese Funktion wird mit einer Liste verwendet, nimmt zwei Argumente, wobei das erste eine Liste ist und das zweite ein Wert, den Sie überprüfen möchten, ob er in der Liste enthalten ist. Gibttrueoderfalsezurück, je nachdem, ob der Wert vorhanden ist.operators.concat(): Nimmt zwei Listen als Argumente und kombiniert diese beiden Listen mithilfe einer einzigen, sauberen Funktion. Kann schneller sein als andere Methoden.operators.countOf(): Nimmt zwei Argumente, eine Liste und einen Wert, um zu ermitteln, wie oft dieser Wert in der Liste vorkommt. Gibt die Anzahl der Vorkommen des Wertes zurück.
Begeben Sie sich zu Beginn zu den dunklen X-Markierungen auf den rot, blau und grün gefärbten Teppichen. Es gibt sechs (6) Konstanten: red_order, blue_order, green_order, welche die Bestellungen für Materialien darstellen, und: red_req, blue_req, green_req, welche die erforderlichen Mengen für den Bau angeben.
An der dunklen X-Markierung auf dem roten Teppich verwenden Sie die Funktion read(), um die erforderliche Menge an Materialien zu überprüfen. Erstellen Sie eine Variable namens red_verification und verwenden Sie die Funktion operator.eq() mit den Konstanten red_order und red_req, zum Beispiel so: red_verification = operator.eq(red_order,red_req). Verwenden Sie die vorgefertigte Funktion write() mit red_verification, um das Ergebnis anzuzeigen.
An den blauen und grünen X-Markierungen wiederholen Sie denselben Vorgang: Verwenden Sie die Funktion read() und erstellen Sie die Variablen blue_verification und green_verification. Speichern Sie für die blaue Variable den Wert von operator.lt() unter Verwendung der Konstanten blue_order und blue_req, um zu prüfen, ob die Bestellung geringer ist als die benötigte Menge. Speichern Sie für die grüne Variable den Wert von operator.gt() unter Verwendung der Konstanten green_order und green_req, um zu überprüfen, ob die Bestellung größer ist als die benötigten Materialien. Verwenden Sie die vorgefertigten write()-Funktionen mit den jeweils entsprechenden Prüfvariablen der farbigen Teppiche.
Gehen Sie als Nächstes zur hellen X-Markierung und verwenden Sie auf dem Schreibtisch die Funktion read(), um bereits aufgegebene und sich auf dem Weg befindliche Bestellungen zu überprüfen. Im Bestellbuch finden Sie die Werte von zwei variablen Konstanten: main_order und sub_order sowie die Anzahl der Abschnitte, in die die Materialien aufgeteilt werden müssen. Nachdem Sie das Bestellbuch gelesen haben, erstellen Sie eine Variable namens allocations und speichern den Wert von operator.floordiv(), um den Wert von main_order durch die im Buch angegebene Anzahl der Abschnitte zu teilen, zum Beispiel so: allocations = operator.floordiv(main_order, -add sections-). Dies teilt die Bestellung und rundet das Ergebnis ab. Verwenden Sie die vorgefertigte write()-Funktion mit der Variable allocations, um das Ergebnis festzuhalten.
Gehen Sie zur goldenen X-Markierung und erstellen Sie eine Variable namens remainder. Speichern Sie das Ergebnis von operator.mod() und addieren Sie dabei die Konstanten main_order und sub_order, um den Rest der beiden Bestellungen zu ermitteln. Verwenden Sie auf dem Schreibtisch die vorgefertigte write()-Funktion und fügen Sie die Variable remainder hinzu, um das Ergebnis festzuhalten.
Begeben Sie sich zur dunklen X-Markierung auf dem violetten Teppich. Hier überprüfen wir, ob die für den Bau benötigten Werkzeuge geliefert wurden. Es gibt zwei Listen-Konstanten, delivery_1 und delivery_2, und wir prüfen, ob die Werkzeuge in der ersten Lieferung enthalten sind. Erstellen Sie eine Variable namens tools und speichern Sie das Ergebnis von operator.contains(). Für das erste Argument fügen Sie die Liste delivery_1 hinzu und für das zweite Argument den String “tools”. Dies überprüft, ob die Werkzeuge in der Lieferung vorhanden sind, so: tools = operator.contains(delivery_1,"tools"). Sobald dies erledigt ist, verwenden Sie auf dem Schreibtisch die vorgefertigte write()-Funktion mit der Variable tools, um festzuhalten, ob die Werkzeuge erfolgreich geliefert wurden.
Als Nächstes sollen alle Lieferungen überprüft werden. Begeben Sie sich zur dunklen X-Markierung auf dem weißen Teppich und erstellen Sie eine Liste namens materials. Verwenden Sie diese, um den Wert von operator.concat() zu speichern, wobei Sie die Listen delivery_1 und delivery_2 als Argumente verwenden. Dies führt dazu, dass die beiden Listen schnell zu einer einzigen Liste zusammengeführt werden. Verwenden Sie auf dem Schreibtisch die vorgefertigte write()-Funktion mit der Variable materials, um alle bereits für den Bau gelieferten Materialien festzuhalten.
Zum Schluss gehen Sie zur dunklen X-Markierung auf dem orangefarbenen Teppich. Hier stehen einige Voraussetzungen für den Baubeginn, eine der Hauptangaben ist, wie viel Holz zu Beginn in Tonnen benötigt wird. Überprüfen Sie, wie viel Holz in der gesamten Lieferung angekommen ist, und geben Sie es bekannt, indem Sie die Funktion speak() mit der Funktion operator.countOf() verwenden. Fügen Sie als erstes Argument die von Ihnen erstellte Liste materials hinzu, gefolgt von dem String “wood”. Dies gibt zurück, wie oft Holz in der Liste materials vorkommt. Dies zeigt, wie Operator-Funktionen eigenständig verwendet werden können, ohne dass ein Objekt zur Speicherung benötigt wird, zum Beispiel so: player.speak(operator.countOf(materials,"wood")). Damit ist das Level abgeschlossen.