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

Liste Avansate
Hărți, Filtrare, Reducere

Obiectiv

Termină amestecarea și producerea înghețatei folosind Map, Filter și Reduce.

Unele dintre aromele de înghețată sunt mici sau goale, dar avem suficiente materiale pentru a compensa și a crea mai multă înghețată. Pentru a face acest lucru, trebuie să folosești Map, un instrument puternic care îți permite să minimizezi cantitatea de cod pe care trebuie să o scrii prin condensarea buclelor și a ramificărilor de cod. Funcțiile Filter și Reduce completează funcția Map și oferă versatilitatea necesară codului tău.

Pentru început, trebuie să imporți Reduce din biblioteca functools pentru a putea utiliza funcția, adăugând acest cod la începutul programului: from functools import reduce. Funcțiile Map și Filter sunt încorporate în Python și nu trebuie importate.

Mai întâi, trebuie să iei niște ingrediente din congelatorul walk-in, să mergi la semnul X auriu, să te întorci spre ușă și să o deschizi folosind funcția open(). Ia toate borcanele de "cream" din congelator, apoi mergi la semnul X luminos de deasupra covorului verde.

Există trei constante de tip listă pe teren, denumite: vanilla, strawberry și chocolate. Fiecare constantă are o combinație de ingrediente care constituie aroma înghețatei. La semnul X verde, verifică conținutul constantei de listă strawberry. Mai întâi, folosește funcția place() pentru a depune "cream" pe care ai luat-o anterior și utilizează funcția speak() pentru a verifica conținutul constantei de listă strawberry.

Odată ce ai verificat, este timpul să folosești funcția Map cu constanta de listă strawberry, deoarece toate elementele din listă sunt decimale. Folosind funcția map(), poți rotunji toate elementele dintr-o listă, eliminând necesitatea de a itera fiecare element într-o buclă pentru a le rotunji pe rând. Pentru a face acest lucru, creează o listă numită map1 și folosește funcția map() împreună cu lista strawberry și funcția round(), astfel: map1 = list(map(round, strawberry)). După ce termini, folosește funcția speak() cu map1 pentru a verifica rezultatul.

După ce ai finalizat acest pas, trecem la Filter, care funcționează similar cu Map, dar necesită utilizarea unei funcții în asociere. În partea de sus a editorului vei avea o funcție presetată denumită main_ingredients, folosită pentru a determina dacă un număr este mai mare decât 25.

def main_ingredients(value): return value > 25

În loc să parcurgi o buclă, poți folosi această funcție împreună cu funcția filter() pentru a compune o listă nouă cu elementele care sunt peste 25, acestea fiind ingredientele principale. Creează o listă nouă numită filter1 și aplică funcția filter() cu main_ingredients și map1 pentru a determina toate ingredientele principale găsite în lista generată cu Map, astfel: filter1 = list(filter(main_ingredients, value)). După ce termini, folosește funcția speak() cu filter1 pentru a verifica rezultatul.

Acum trecem la Reduce, care este folosită similar cu Filter, dar, în schimb, o poți utiliza pentru a colapsa sau reduce o listă la o singură unitate. La fel ca Filter, folosește o funcție personalizată, de data aceasta denumită custom_sum, care adună dinamic două numere împreună.

def custom_sum(first, second): return first + second

Creează o variabilă numită reduce1 și folosește funcția reduce() împreună cu funcția custom_sum și filter1 pentru a consolida toate elementele într-o singură unitate, astfel: reduce1 = reduce(custom_sum, filter1). După ce termini, folosește funcția speak() cu reduce1 pentru a verifica rezultatul.

Acum că ai completat ciclul Map, Filter, Reduce, repetă același ciclu la semnele X luminoase de pe covoarele roșu și albastru. Pe covorul roșu, folosește constanta de listă vanilla și creează map2, filter2 și reduce2. Pe covorul albastru, folosește constanta de listă chocolate și creează map3, filter3 și reduce3.

Mergi la ultimul semn X luminos situat deasupra covorului mov, adună reduce1, reduce2 și reduce3, reunind ingredientele principale ale aromelor de vanilla, strawberry și chocolate. Creează o variabilă numită neapolitan și adună toate rezultatele din Reduce, astfel: neapolitan = reduce1+reduce2+reduce3. Folosește funcția speak() cu combinația pentru a o verifica și utilizează funcția place() cu aceasta pentru a crea înghețata Neapolitan și a finaliza nivelul.

Carte de Cod