Coding for KidsCoding for Kids
Креативні РівніВикликиПосібник для Вчителів
Голосувати за функції
Поглиблений курс розробки на Python
Розділ
>
Рівень

Математичні модулі
Модуль операторів

Мета

Перевірте та розподіліть замовлення на будівництво нових земельних територій, використовуючи модуль operator.

На верхньому поверсі анексу знаходяться декілька офісів, де зберігаються записи інвентарю та замовлення на будівельні матеріали, необхідні для розвитку нової території. Існує безліч різних інструментів, які можна використовувати для перевірки та розрахунку матеріалів, щоб вони могли бути використані для будівництва, окрім модуля математики та статистики, ми можемо скористатися модулем 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")). Це завершить рівень.

Книга Коду