Coding for KidsCoding for Kids
Креативни НиваПредизвикателстваРъководство за Учители
Гласувайте за функции
Курс по усъвършенствано разработване с Python
Глава
>
Ниво

Математически модули
Операторен модул

Цел

Потвърдете и разпределете новите поръчки за строителни материали за развитието на земеделска земя, като използвате модула operator.

На горния етаж на анекса има няколко офиса, в които се съхраняват записи на наличности и поръчки за строителните материали, необходими за новото развитие на земята. Съществува различни инструменти, които могат да бъдат използвани за проверка и изчисляване на материалите, така че да могат да бъдат използвани при строителството, освен модула math и статистика, може да използваме и модула operator.

Този модул, import operator, може да се използва за опростяване на операторните изчисления и удобно опаковане в функции. Можете да използвате тези функции както за оптимизация, така и за генериране на стойности, без да е необходимо да създавате обект за съхранение на стойностите за изчисленията.

  • operators.eq(): Приема два аргумента, проверява дали аргументите са равни.
  • operators.lt(): Приема два аргумента, проверява дали първият аргумент е по-малък от втория.
  • operators.gt(): Приема два аргумента, проверява дали първият аргумент е по-голям от втория.
  • operators.floordiv(): Приема два аргумента, дели първия аргумент на втория и прилага еквивалента на math.floor(), закръгляйки резултата надолу.
  • operators.mod(): Приема два аргумента, връща остатъка от делението между двата аргумента.
  • operators.contains(): Функцията се използва със списък, приема два (2) аргумента, като първият аргумент е списък, а вторият е стойност, за която искате да проверите дали се съдържа в списъка. Връща: true или false в зависимост от това дали стойността е налична или не.
  • operators.concat(): Приема два списъчни аргумента, комбинира двата списъка заедно чрез една чиста функция, като може да бъде по-бърза от други методи.
  • operators.countOf(): Приема два аргумента, списък и стойност, за да провери колко пъти тази стойност се среща в списъка. Връща броя на срещанията на стойността.

За начало, преминете към тъмния X, маркиращ над червения, синьия и зеления килим. Има шест (6) константи: red_order, blue_order, green_order, които са поръчки за материали и: red_req, blue_req, green_req, които са изискуемите количества за строителството.

На тъмния X, маркиращ над червения килим, използвайте функцията read(), за да проверите изискуемото количество материали. Създайте променлива с името red_verification и използвайте функцията operator.eq() с константите red_order и red_req, по следния начин: red_verification = operator.eq(red_order,red_req). С помощта на предварително написаната функция write() използвайте red_verification за показване на резултата.

На сините и зелените X марки повторете същия процес, използвайте функцията read() и създайте променливите: blue_verification и green_verification. За синята променлива съхранете стойността на operator.lt(), използвайки константите blue_order и blue_req, за да проверите дали поръчката е по-малка от изискуемото количество. За зелената променлива съхранете стойността на operator.gt(), използвайки константите green_order и green_req, за да проверите дали поръчката е по-голяма от необходимите материали. Използвайте предварително написаните функции write() с подходящите функции за валидация, съответстващи на оцветените килими.

След това преминете към светлия X и върху бюрото използвайте функцията read(), за да проверите поръчките, които вече са направени и са в път. В книгата с поръчки ще намерите стойностите на две променливи константи: main_order и sub_order, както и колко секции трябва да се разделят материалите. След като прочетете книгата с поръчки, създайте променлива с името allocations и съхранете стойността на operator.floordiv(), за да разделите стойността на main_order на броя на секциите, описани в книгата, по следния начин: allocations = operator.floordiv(main_order, -add sections-) това разделя поръчката и закръгля резултата надолу. Използвайте предварително написаната функция write() с променливата allocations, за да запишете резултата.

Преминете към златния X и създайте променлива с името remainder, съхранете резултата от operator.mod() и съберете и двете константи main_order и sub_order, за да получите остатъка от двете поръчки. Върху бюрото използвайте предварително написаната функция write() и добавете променливата remainder, за да запишете резултата.

Намерете път към тъмния X, маркиращ над лилавия килим, тук ще проверим дали е доставен необходимият инструмент за строителството. Имаме две списъчни константи, delivery_1 и delivery_2, и ще проверим дали инструментите са доставени при първата доставка. Създайте променлива с името tools и съхранете резултата от operator.contains(), за първия аргумент добавете списъка delivery_1 и за втория аргумент добавете низа “tools”. Това ще провери дали инструментите са налични в доставката, по следния начин: tools = operator.contains(delivery_1,"tools"). След като това е направено, върху бюрото, използвайте предварително написаната функция write() с променливата tools, за да запишете дали инструментите са били успешно доставени.

Следва проверка на всички доставки, преминете към тъмния X, маркиращ над белия килим, и създайте списък с име materials. Използвайте го, за да съхраните стойността на operator.concat(), като използвате списъците delivery_1 и delivery_2 като аргументи. Каквото и да прави това, то бързо обединява двата списъка в единен списък. Върху бюрото използвайте предварително написаната функция write() с променливата materials, за да отбележите всички материали, които вече са доставени за строителството.

Накрая, преминете към тъмния X, маркиращ над оранжевия килим, тук има някои предпоставки, написани за стартиране на строителството, една от основните бележки е колко дърва са необходими в началото по тонове. Проверете колко дърва са доставени в цялата доставка и го обявете, използвайте функцията speak() с функцията operator.countOf(). За първия аргумент добавете списъка materials, който създадохте, последван от низа “wood”, това ще върне колко пъти дърво е налично в списъка materials. Това илюстрира как операторните функции могат да се използват самостоятелно, без да се създава обект за съхранението им, по следния начин: player.speak(operator.countOf(materials,"wood")). Това ще завърши нивото.

Книга с Код