Coding for KidsCoding for Kids
Niveluri CreativeProvocăriGhid pentru Profesori
Votează pentru funcții
Curs Avansat de Dezvoltare Python
Capitolul
>
Nivel

Funcții avansate
Funcții Lambda

Obiectiv

Folosește funcții lambda pentru a documenta unele consumabile astfel încât să poată fi colectate pentru expediere ulterior.

O parte din fructele și fructele de pădure din câmp sunt aproape gata de cules, astfel încât pot fi depozitate, expediate și vândute. Ar fi o idee bună să înregistrezi articolele care sunt aproape gata, astfel încât să ai o estimare a numărului de produse din acest câmp care sunt ambalate și expediate.

Pentru a optimiza codul, poți folosi funcții lambda, o altă modalitate de a crea funcții personalizate, însă este mai rapidă atunci când funcțiile pe care le creezi sunt mai simple.

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

În exemplul de mai sus ai două funcții, o funcție personalizată și o funcție lambda. Deși sunt scrise diferit, ele sunt funcțional la fel; funcția lambda este doar mai ușor de folosit și poate fi configurată rapid, la momentul necesar, în mijlocul codului. Totuși, metoda normală de definire a funcțiilor este încă foarte utilă pentru secvențe complexe de cod.

Există două (2) tipuri de articole care pot fi categorisite în câmp: "fruits" și "berries". Din aceste două (2) tipuri, există trei (3) fructe: apples, pears și oranges; și există trei (3) fructe de pădure: red, blue și purple.

Mai întâi, configurează funcția lambda ilustrată anterior, numită calculate; aceasta ne va permite să obținem numărul de articole prezise pentru sezon prin adunarea a trei articole și înmulțirea rezultatului cu doi (2). Creează o altă funcție lambda numită estimate pentru a estima articolele care vor fi colectate, ca o funcție de comunicare personalizată. În final, configurează o funcție lambda numită total care adună două valori și scade o a treia valoare numită loss.

# 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)

Creează variabile pentru fiecare dintre cele trei (3) fructe și însumează numărul fiecăruia din câmp. Mergi la crucea X întunecată și folosește funcția lambda calculate() cu toate cele trei variabile ale fructelor, și salvează valoarea într-o variabilă personalizată numită fruit_number, astfel: fruit_number = calculate(orange,pear,apple). Urmează apoi folosirea funcției lambda estimate() folosind fruit_number ca număr și "fruits" ca nume, astfel: estimate(fruit_number, "fruits" ).

După ce ai terminat cu fructele, mergi la crucea X luminoasă și procedează la fel cu fructele de pădure. Configurează variabile pentru cele trei (3) fructe de pădure cu numărul de tufe pe care le numești în câmp, apoi configurează funcția lambda la fel cum ai procedat cu fructele, astfel: berry_number = calculate(red,blue,purple). Folosește funcția lambda estimate cu berry_number și "berries" ca argumente.

Există o constantă numită doc care deține estimările din luna trecută pentru produsele pierdute. Mergi la depozit, îndreaptă-te spre crucea X aurie și folosește funcția speak() cu constanta pentru a citi un document de pe masă, astfel încât să poți determina cifrele din luna trecută.

Odată ce cifrele din luna trecută sunt cunoscute, mergi la crucea X întunecată de pe covorul mov, apleacă-te spre masă pentru a determina totalurile pentru această lună. Creează o variabilă numită season pentru a calcula totalurile sezonului, folosește fruit_number și berry_number ca numere, iar cifra determinată din constanta doc ca argument pentru pierderi, astfel: season = total(berry_number,fruit_number, number found in doc constant)

Urmează apoi folosirea funcției lambda estimate() folosind variabila season ca argument pentru număr și "products" ca argument pentru nume, pentru a finaliza nivelul.

Carte de Cod