Fortgeschrittener Python-Entwicklungskurs
Kapitel
>
Stufe
Fortgeschrittene Funktionen
Polymorphe Funktionen
In diesem Kapitel werden wir neue Arten von Funktionen, verschiedene Anwendungsmöglichkeiten und wie man sie beim Programmieren in Python optimal einsetzt, erkunden.
In diesem Level beginnen wir mit polymorphen Funktionen; das heißt, es gibt Funktionen, die mit einer Vielzahl unterschiedlicher Datentypen verwendet werden können. Das ist, als würde man dieselbe Funktion für verschiedene Aufgaben verwenden, eine universelle Funktion.

Ziel
Überprüfe den Zustand der Pflanzen und Ferkel und bestätige Lieferungen mithilfe polymorpher Funktionen.
In Kürze wird es einige Pflanzen geben, die geerntet werden müssen, damit sie versendet und verkauft werden können. Die Ferkel müssen zudem mit Futter beliefert werden, daher wäre es sinnvoll, zu prüfen, wie viel Futter bestellt werden muss. Um diese Aufgaben zu erfüllen, kannst du polymorphe Funktionen verwenden, in diesem Fall verwenden wir die len()-Funktion.
Polymorphe Funktionen sind Funktionen, die mit mehreren verschiedenen Datentypen verwendet werden können. Zum Beispiel wird die len()-Funktion genutzt, um die Länge von Objekten zu berechnen, wobei diese Objekte verschiedene Datentypen wie Listen, Dictionaries und sogar Strings sein können. Beginne damit, die Zählung an den unteren X-Markierungen im Feld vorzunehmen, bevor du zu den höheren X-Markierungen im Schuppen übergehst.
Es gibt mehrere Ferkel in einem Gehege an der Straße, ihre Namen sind "Peggle", "Peter", "Piper", "Pedro". Lege ihre Namen in eine Liste, damit du sie zählen kannst. So: piglets = ["Peggle", "Peter", "Piper", "Pedro"]. Erstelle eine Variable namens number, um die Länge der Liste mit der len()-Funktion zu speichern, also: number = len(piglets).
Sobald du die Liste und Variable eingerichtet hast, gehe zur dunklen X-Markierung vor dem Ferkelgehege, wende dich zum Gehege und benutze die speak()-Funktion, um die Ferkel zu zählen. Verwende die Variable number, um das Ergebnis zu erhalten, so: player.speak("There are d% Piglets" % (number) )
Nachdem du die Ferkel überprüft hast, gehe zur hellen X-Markierung am Feld, wende dich den Pflanzen zu und zähle sie. Es gibt drei (3) verschiedene Arten von Pflanzen: "Tomatoes", "Pumpkins", "Eggplant". Zähle, wie viele Pflanzen von jeder Art wachsen, und speichere sie in einem Dictionary, wie folgt:
crops = {} crops["Tomato"] = number of tomato crops crops["Pumpkin"] = number of Pumpkin crops crops["Eggplant"] = number of Eggplant crops
Sobald du das Dictionary mit den korrekten Werten gefüllt hast, benutze die speak()-Funktion in Verbindung mit der len()-Funktion, um die Anzahl der verfügbaren Pflanzen zu zählen, so: player.speak("There are d% types of crops" % ( len(crops) ) ) .
Nachdem du sowohl die Ferkel als auch die Pflanzen gezählt hast, gehe zur dunklen X-Markierung auf der lila Matte, um die Bestellungen für den Versand der Pflanzen zu überprüfen. Es gibt eine konstante Variable namens order, die einen String mit den Bestellungen für die zu versendenden Pflanzen enthält. Wir müssen herausfinden, was die Bestellungen sind und wie viele Bestellungen wir haben. Das können wir erreichen, indem wir die speak()-Funktion verwenden und den String entpacken sowie die len()-Funktion einsetzen.
player.speak( [*order] ) player.speak("There are d% orders of crops going out" % ( len(order) ) )
Indem du die String-Variable in Klammern und mit einem * versiehst, aktivierst du einen Operator, der den String entpackt, zum Beispiel: [*string]. Dabei wird der String in einzelne Zeichen aufgespalten, die in einer Liste abgelegt werden. Ein Beispiel: [*string] gibt eine Liste ['s', 't', 'r', 'i', 'n', 'g'] aus. Wird len() auf einen String angewendet, zählt es, wie viele Zeichen der String enthält.
Zum Abschluss der Übung, gehe zur goldenen X-Markierung auf der rechten Seite des Schuppens und bestimme, wie viele Pfund Futter für die Ferkel geliefert werden müssen. Erstelle eine Variable namens food, und verwende als Wert die Variable number, die du zuvor erstellt hast, multipliziere sie mit 35, um die Menge in Pfund zu berechnen, so: food = number * 35.
Während du dem Schuppen zugewandt bist, verwende die speak()-Funktion zusammen mit der Variable food, um die Menge an Futter zu ermitteln, die geliefert wird, so: player.speak("There are d% pounds of food coming in" % (food) ) .