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 Parțiale

Obiectiv

Ambalează și plasează materialele de construcție care au fost livrate la doc folosind funcții parțiale.

Unele provizii tocmai au fost livrate la un doc, ele trebuie ambalate și depozitate pentru a putea fi folosite ca materiale de construcție. Materialele trebuie înfășurate în pânză și legate cu ață. Este important să cântăriți toate obiectele în momentul ambalării pentru a putea fi transportate eficient ulterior. Pentru a facilita acest lucru putem optimiza acest proces folosind Funcții Parțiale.

O Funcție Parțială este o funcție personalizată care este prescurtată prin faptul că nu este nevoie să adăugați valori pentru argumente care sunt în mare parte constante. Acest lucru vă permite să folosiți funcții care iau mai multe argumente și să le executați cu doar un singur argument sau cu orice număr doriți.

from functools import partial

Pentru început trebuie să importați partial din modulul cunoscut sub numele de functools, acest lucru vă va permite să creați Funcții Parțiale. Codul de import se plasează întotdeauna în partea de sus a editorului de cod.

Configurați o funcție denumită weight și setați-o să primească trei (3) argumente: thread, cloth și material. Această funcție vă va permite să calculați greutatea materialelor ambalate, iar noi putem optimiza acest proces și mai mult canalizându-l printr-o funcție parțială.

def weight(thread, cloth, material): return 2 * thread + 5 * cloth + material * 10 package = partial(weight, 4, 2)

Creați o Funcție Parțială denumită package, aceasta fiind configurată similar cu funcțiile lambda. Folosiți partial() pentru a popula funcția și adăugați numele funcției, precum și valorile fixe pentru argumentele pe care doriți să le atribuiți.

Orice argumente din funcția originală pe care nu le atribuiți vor deveni argumentele care trebuie specificate prin Funcția Parțială. În cazul funcției Funcției Parțiale package(), este argumentul material.

Mergeți la marcajele X închise din fața cutiilor pentru a lua materialele de ambalare. Pe marcajul X de pe covorul galben, utilizați funcția collect() pentru a obține "thread" și mergeți la marcajul X de pe covorul mov și utilizați funcția collect() pentru a obține "cloth". Aceste obiecte vor fi folosite pentru ambalarea materialelor.

Traversați docul și adunați toate materialele de construcție, acestea fiind: bricks, planks, red_bricks și wood. După ce le colectați, adăugați numărul de unități colectate pentru fiecare la o variabilă denumită după material, de exemplu: bricks = 3.

După aceea, mergeți la marcajele X luminoase din fața cutiilor și calculați greutatea fiecărui material de construcție înainte de a-l depozita. Utilizați funcția speak() împreună cu Funcția Parțială package() pentru a calcula greutatea. Folosiți variabilele materialelor ca argumente pentru funcția package(), de exemplu:

player.speak("Package weighs %s pounds" % package(bricks)) player.place(package(bricks))

Continuați folosind funcția place() pentru a depozita materialul în interiorul cutiilor, realizând acest lucru și prin utilizarea funcției package(), ca în exemplul de mai sus.

La marcajul X luminos de pe covorul red cântăriți și depozitați bricks. La marcajul X luminos de pe covorul blue cântăriți și depozitați planks. La marcajul X luminos de pe covorul orange cântăriți și depozitați red_bricks. La marcajul X luminos de pe covorul green cântăriți și depozitați wood. Depozitați și cântăriți toate cele patru materiale în cutiile corecte pentru a finaliza nivelul.

Carte de Cod