Coding for KidsCoding for Kids
Kreative LevelHerausforderungenLehrerhandbuch
Für Funktionen abstimmen
Fortgeschrittener Python-Entwicklungskurs
Kapitel
>
Stufe

Erweiterte Funktionen
Lambda-Funktionen

Ziel

Verwenden Sie Lambda-Funktionen, um einige Verbrauchsgüter zu dokumentieren, damit sie später für den Versand gesammelt werden können.

Einige der Früchte und Beeren auf dem Feld sind fast reif zum Pflücken, damit sie gelagert, versendet und verkauft werden können. Es wäre eine gute Idee, die Artikel, die fast bereit sind, aufzuschreiben, damit Sie eine Schätzung haben, wie viele Produkte von diesem Feld verpackt und versendet werden.

Um Ihren Code zu optimieren, können Sie Lambda-Funktionen verwenden, eine weitere Möglichkeit, benutzerdefinierte Funktionen zu erstellen, dies geht jedoch schneller, wenn die von Ihnen erstellten Funktionen einfacher sind.

# Normal Custom Function def calculate(x , y , z) : return( (x+y+z) *2 ) # Lambda Function calculate = lambda x,y,z : (x + y + z) * 2

Im obigen Beispiel haben Sie zwei Funktionen, eine benutzerdefinierte Funktion und eine Lambda-Funktion. Obwohl sie unterschiedlich geschrieben sind, sind sie funktional identisch. Die Lambda-Funktion ist nur einfacher zu verwenden und kann schnell in der Mitte des Codes eingerichtet werden. Allerdings ist die normale Methode zur Definition von Funktionen nach wie vor sehr nützlich für komplexe Code-Sequenzen.

Im Feld gibt es zwei (2) Arten von Artikeln, die kategorisiert werden können: "fruits" und "berries". Von diesen beiden (2) Arten gibt es drei (3) Früchte: apples, pears und oranges; und es gibt drei (3) Beeren: red, blue und purple.

Richten Sie zunächst die oben dargestellte Lambda-Funktion namens calculate ein, mit der wir die für die Saison ausgeschätzte Anzahl von Artikeln ermitteln können, indem wir drei Artikel addieren und mit zwei multiplizieren. Erstellen Sie eine weitere Lambda-Funktion namens estimate, um die zu sammelnden Artikel als benutzerdefinierte Sprechfunktion zu schätzen. Schließlich richten Sie eine Lambda-Funktion namens total ein, die zwei Werte addiert und einen dritten Wert namens loss subtrahiert.

# Calculate items calculate = lambda x,y,z : (x + y + z) * 2 # Estimate items estimate = lambda number , name : player.speak( "I estimate %d %s this season" % (number,name) ) # Total all items total = lambda num1, num2, loss : ( (num1 + num2) - loss)

Erstellen Sie Variablen für jede der drei (3) Früchte und addieren Sie die Anzahl der jeweiligen im Feld vorhandenen Stücke. Gehen Sie zum dunklen X-Zeichen und verwenden Sie die Lambda-Funktion calculate() mit allen drei Fruchtvariablen und speichern Sie den Wert in einer benutzerdefinierten Variable namens fruit_number, so: fruit_number = calculate(orange,pear,apple). Fahren Sie fort, indem Sie die estimate() Lambda-Funktion mit fruit_number als Zahl und "fruits" als Bezeichnung verwenden, so: estimate(fruit_number, "fruits" ).

Sobald Sie mit den Früchten fertig sind, gehen Sie zum hellen X-Zeichen und machen dasselbe bei den Beeren. Richten Sie Variablen für die drei (3) Beeren ein, wobei Sie die Anzahl der Sträucher im Feld berücksichtigen, und richten Sie dann die Lambda-Funktion genauso ein wie bei den Früchten, so: berry_number = calculate(red,blue,purple). Verwenden Sie die estimate Lambda-Funktion mit berry_number und "berries" als Argumente.

Es gibt eine Konstante namens doc, die die Schätzungen für verlorene Produkte des letzten Monats enthält. Begeben Sie sich zum Lagerhaus, gehen Sie in Richtung des goldenen X-Zeichens und verwenden Sie die speak()-Funktion mit der Konstante, um ein Dokument auf dem Tisch zu lesen, damit Sie die Zahlen des letzten Monats ermitteln können.

Sobald Ihnen die Zahlen des letzten Monats bekannt sind, gehen Sie zum dunklen X-Zeichen über dem violetten Teppich, stellen Sie sich dem Tisch zu, damit Sie die Gesamtsummen für diesen Monat ermitteln können. Erstellen Sie eine Variable namens season, um die Gesamtsummen der Saison zu berechnen. Verwenden Sie fruit_number und berry_number als Zahlen und nutzen Sie die Zahl, die Sie aus der doc-Konstante ermittelt haben, als Verlustwert, so: season = total(berry_number,fruit_number, number found in doc constant)

Fahren Sie fort, indem Sie die estimate() Lambda-Funktion mit der Variablen season als Zahl-Argument und "products" als Name-Argument verwenden, um das Level abzuschließen.

Codebuch